From ea7eeada77a52fd58a9e1a949a39eccc7bce955a Mon Sep 17 00:00:00 2001 From: kim Date: Mon, 13 Oct 2025 16:49:53 +0200 Subject: [chore] update dependencies (#4495) - github.com/coreos/go-oidc/v3: v3.15.0 -> v3.16.0 - github.com/go-playground/form/v4: v4.2.1 -> v4.3.0 - github.com/go-swagger/go-swagger: v0.32.3 -> v0.33.1 - golang.org/x/crypto: v0.42.0 -> v0.43.0 - golang.org/x/image: v0.31.0 -> v0.32.0 - golang.org/x/net: v0.45.0 -> v0.46.0 - golang.org/x/oauth2: v0.31.0 -> v0.32.0 - golang.org/x/sys: v0.36.0 -> v0.37.0 - golang.org/x/text: v0.29.0 -> v0.30.0 - modernc.org/sqlite: v1.39.0 -> v1.39.1 (w/ concurrency workaround) Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4495 Co-authored-by: kim Co-committed-by: kim --- go.mod | 47 +- go.sum | 108 +- vendor/github.com/bytedance/gopkg/LICENSE | 201 + .../bytedance/gopkg/lang/dirtmake/bytes.go | 43 + vendor/github.com/bytedance/sonic/README.md | 2 +- vendor/github.com/bytedance/sonic/README_ZH_CN.md | 2 +- vendor/github.com/bytedance/sonic/ast/api.go | 65 +- .../github.com/bytedance/sonic/ast/api_compat.go | 14 +- vendor/github.com/bytedance/sonic/ast/decode.go | 17 +- vendor/github.com/bytedance/sonic/ast/encode.go | 10 +- vendor/github.com/bytedance/sonic/ast/node.go | 4 +- vendor/github.com/bytedance/sonic/ast/parser.go | 16 +- vendor/github.com/bytedance/sonic/ast/stubs.go | 3 - vendor/github.com/bytedance/sonic/ast/visitor.go | 5 +- vendor/github.com/bytedance/sonic/compat.go | 2 +- .../bytedance/sonic/decoder/decoder_compat.go | 4 +- .../bytedance/sonic/decoder/decoder_native.go | 4 +- .../bytedance/sonic/encoder/encoder_compat.go | 2 +- .../bytedance/sonic/encoder/encoder_native.go | 11 +- vendor/github.com/bytedance/sonic/go.work | 1 + vendor/github.com/bytedance/sonic/go.work.sum | 10 +- .../bytedance/sonic/internal/compat/warn.go | 2 +- .../sonic/internal/decoder/api/decoder_amd64.go | 4 +- .../sonic/internal/decoder/api/decoder_arm64.go | 2 +- .../bytedance/sonic/internal/decoder/api/stream.go | 22 +- .../decoder/jitdec/asm_stubs_amd64_go121.go | 2 +- .../decoder/jitdec/assembler_regabi_amd64.go | 17 +- .../decoder/jitdec/generic_regabi_amd64.go | 2 +- .../decoder/jitdec/generic_regabi_amd64_test.s | 2 +- .../sonic/internal/decoder/optdec/helper.go | 17 +- .../sonic/internal/encoder/alg/mapiter.go | 109 +- .../sonic/internal/encoder/alg/primitives.go | 104 - .../bytedance/sonic/internal/encoder/alg/spec.go | 11 +- .../sonic/internal/encoder/alg/spec_compat.go | 2 +- .../bytedance/sonic/internal/encoder/compiler.go | 6 + .../bytedance/sonic/internal/encoder/encoder.go | 3 +- .../sonic/internal/encoder/prim/primitives.go | 105 + .../sonic/internal/encoder/vars/errors.go | 40 +- .../bytedance/sonic/internal/encoder/vm/stbus.go | 3 +- .../bytedance/sonic/internal/encoder/vm/vm.go | 13 +- .../internal/encoder/x86/asm_stubs_amd64_go121.go | 4 +- .../internal/encoder/x86/assembler_regabi_amd64.go | 15 +- .../sonic/internal/encoder/x86/debug_go117.go | 4 +- .../bytedance/sonic/internal/encoder/x86/stbus.go | 3 +- .../bytedance/sonic/internal/native/avx2/f32toa.go | 2 +- .../bytedance/sonic/internal/native/avx2/f64toa.go | 2 +- .../sonic/internal/native/avx2/get_by_path.go | 2 +- .../sonic/internal/native/avx2/get_by_path_subr.go | 20 +- .../internal/native/avx2/get_by_path_text_amd64.go | 12348 ++++---- .../sonic/internal/native/avx2/html_escape.go | 2 +- .../bytedance/sonic/internal/native/avx2/i64toa.go | 2 +- .../sonic/internal/native/avx2/lookup_small_key.go | 4 +- .../bytedance/sonic/internal/native/avx2/lspace.go | 2 +- .../sonic/internal/native/avx2/native_export.go | 2 +- .../internal/native/avx2/parse_with_padding.go | 4 +- .../native/avx2/parse_with_padding_text_amd64.go | 42 +- .../bytedance/sonic/internal/native/avx2/quote.go | 2 +- .../sonic/internal/native/avx2/skip_array.go | 2 +- .../sonic/internal/native/avx2/skip_array_subr.go | 20 +- .../internal/native/avx2/skip_array_text_amd64.go | 8197 +++--- .../sonic/internal/native/avx2/skip_number.go | 2 +- .../sonic/internal/native/avx2/skip_object.go | 2 +- .../sonic/internal/native/avx2/skip_object_subr.go | 20 +- .../internal/native/avx2/skip_object_text_amd64.go | 8197 +++--- .../sonic/internal/native/avx2/skip_one.go | 2 +- .../sonic/internal/native/avx2/skip_one_fast.go | 2 +- .../internal/native/avx2/skip_one_fast_subr.go | 20 +- .../native/avx2/skip_one_fast_text_amd64.go | 1657 +- .../sonic/internal/native/avx2/skip_one_subr.go | 20 +- .../internal/native/avx2/skip_one_text_amd64.go | 7400 ++--- .../bytedance/sonic/internal/native/avx2/u64toa.go | 2 +- .../sonic/internal/native/avx2/unquote.go | 2 +- .../sonic/internal/native/avx2/unquote_subr.go | 20 +- .../internal/native/avx2/unquote_text_amd64.go | 1014 +- .../sonic/internal/native/avx2/validate_one.go | 2 +- .../internal/native/avx2/validate_one_subr.go | 20 +- .../native/avx2/validate_one_text_amd64.go | 8197 +++--- .../sonic/internal/native/avx2/validate_utf8.go | 2 +- .../internal/native/avx2/validate_utf8_fast.go | 2 +- .../sonic/internal/native/dispatch_arm64.go | 8 +- .../bytedance/sonic/internal/native/f32toa.tmpl | 2 +- .../bytedance/sonic/internal/native/f64toa.tmpl | 2 +- .../sonic/internal/native/fastfloat_test.tmpl | 2 +- .../sonic/internal/native/fastint_test.tmpl | 2 +- .../sonic/internal/native/get_by_path.tmpl | 2 +- .../sonic/internal/native/html_escape.tmpl | 2 +- .../bytedance/sonic/internal/native/i64toa.tmpl | 2 +- .../sonic/internal/native/lookup_small_key.tmpl | 4 +- .../bytedance/sonic/internal/native/lspace.tmpl | 2 +- .../sonic/internal/native/native_export.tmpl | 2 +- .../sonic/internal/native/native_test.tmpl | 4 +- .../sonic/internal/native/neon/f32toa_arm64.go | 2 +- .../sonic/internal/native/neon/f32toa_arm64.s | 2 +- .../sonic/internal/native/neon/f64toa_arm64.go | 2 +- .../sonic/internal/native/neon/f64toa_arm64.s | 2 +- .../internal/native/neon/get_by_path_arm64.go | 2 +- .../sonic/internal/native/neon/get_by_path_arm64.s | 5679 ++-- .../internal/native/neon/get_by_path_subr_arm64.go | 2 +- .../internal/native/neon/html_escape_arm64.go | 2 +- .../sonic/internal/native/neon/i64toa_arm64.go | 2 +- .../sonic/internal/native/neon/lspace_arm64.go | 2 +- .../internal/native/neon/native_export_arm64.go | 2 +- .../native/neon/parse_with_padding_arm64.s | 1066 +- .../sonic/internal/native/neon/quote_arm64.go | 2 +- .../sonic/internal/native/neon/skip_array_arm64.go | 2 +- .../sonic/internal/native/neon/skip_array_arm64.s | 2894 +- .../internal/native/neon/skip_number_arm64.go | 2 +- .../internal/native/neon/skip_object_arm64.go | 2 +- .../sonic/internal/native/neon/skip_object_arm64.s | 2894 +- .../sonic/internal/native/neon/skip_one_arm64.go | 2 +- .../sonic/internal/native/neon/skip_one_arm64.s | 521 +- .../internal/native/neon/skip_one_fast_arm64.go | 2 +- .../internal/native/neon/skip_one_fast_arm64.s | 409 +- .../sonic/internal/native/neon/u64toa_arm64.go | 2 +- .../sonic/internal/native/neon/unquote_arm64.go | 2 +- .../internal/native/neon/validate_one_arm64.go | 2 +- .../internal/native/neon/validate_one_arm64.s | 2894 +- .../internal/native/neon/validate_utf8_arm64.go | 2 +- .../native/neon/validate_utf8_fast_arm64.go | 2 +- .../sonic/internal/native/parse_with_padding.tmpl | 4 +- .../bytedance/sonic/internal/native/quote.tmpl | 2 +- .../sonic/internal/native/recover_test.tmpl | 2 +- .../sonic/internal/native/skip_array.tmpl | 2 +- .../sonic/internal/native/skip_number.tmpl | 2 +- .../sonic/internal/native/skip_object.tmpl | 2 +- .../bytedance/sonic/internal/native/skip_one.tmpl | 2 +- .../sonic/internal/native/skip_one_fast.tmpl | 2 +- .../bytedance/sonic/internal/native/sse/f32toa.go | 2 +- .../bytedance/sonic/internal/native/sse/f64toa.go | 2 +- .../sonic/internal/native/sse/get_by_path.go | 2 +- .../sonic/internal/native/sse/get_by_path_subr.go | 20 +- .../internal/native/sse/get_by_path_text_amd64.go | 12335 ++++---- .../sonic/internal/native/sse/html_escape.go | 2 +- .../bytedance/sonic/internal/native/sse/i64toa.go | 2 +- .../sonic/internal/native/sse/lookup_small_key.go | 4 +- .../bytedance/sonic/internal/native/sse/lspace.go | 2 +- .../sonic/internal/native/sse/native_export.go | 2 +- .../internal/native/sse/parse_with_padding.go | 4 +- .../native/sse/parse_with_padding_text_amd64.go | 42 +- .../bytedance/sonic/internal/native/sse/quote.go | 2 +- .../sonic/internal/native/sse/skip_array.go | 2 +- .../sonic/internal/native/sse/skip_array_subr.go | 20 +- .../internal/native/sse/skip_array_text_amd64.go | 8032 +++--- .../sonic/internal/native/sse/skip_number.go | 2 +- .../sonic/internal/native/sse/skip_object.go | 2 +- .../sonic/internal/native/sse/skip_object_subr.go | 20 +- .../internal/native/sse/skip_object_text_amd64.go | 8032 +++--- .../sonic/internal/native/sse/skip_one.go | 2 +- .../sonic/internal/native/sse/skip_one_fast.go | 2 +- .../internal/native/sse/skip_one_fast_subr.go | 20 +- .../native/sse/skip_one_fast_text_amd64.go | 1884 +- .../sonic/internal/native/sse/skip_one_subr.go | 20 +- .../internal/native/sse/skip_one_text_amd64.go | 7332 ++--- .../bytedance/sonic/internal/native/sse/u64toa.go | 2 +- .../bytedance/sonic/internal/native/sse/unquote.go | 2 +- .../sonic/internal/native/sse/unquote_subr.go | 20 +- .../internal/native/sse/unquote_text_amd64.go | 705 +- .../sonic/internal/native/sse/validate_one.go | 2 +- .../sonic/internal/native/sse/validate_one_subr.go | 20 +- .../internal/native/sse/validate_one_text_amd64.go | 8032 +++--- .../sonic/internal/native/sse/validate_utf8.go | 2 +- .../internal/native/sse/validate_utf8_fast.go | 2 +- .../sonic/internal/native/traceback_test.mock_tmpl | 4 +- .../bytedance/sonic/internal/native/u64toa.tmpl | 2 +- .../bytedance/sonic/internal/native/unquote.tmpl | 2 +- .../sonic/internal/native/validate_one.tmpl | 2 +- .../sonic/internal/native/validate_utf8.tmpl | 2 +- .../sonic/internal/native/validate_utf8_fast.tmpl | 2 +- .../bytedance/sonic/internal/resolver/fields.go | 388 + .../bytedance/sonic/internal/resolver/resolver.go | 8 + .../sonic/internal/resolver/stubs_go120.go | 51 - .../sonic/internal/resolver/stubs_go123.go | 51 - .../sonic/internal/resolver/stubs_latest.go | 59 - .../bytedance/sonic/internal/rt/base64_amd64.go | 2 +- .../bytedance/sonic/internal/rt/base64_compat.go | 2 +- .../github.com/bytedance/sonic/internal/rt/gcwb.go | 2 +- .../sonic/internal/rt/map_nosiwss_go124.go | 4 +- .../bytedance/sonic/internal/rt/map_siwss_go124.go | 4 +- .../bytedance/sonic/internal/rt/stubs.go | 3 - .../bytedance/sonic/internal/utils/skip.go | 10 +- .../bytedance/sonic/loader/funcdata_compat.go | 4 +- .../bytedance/sonic/loader/funcdata_go123.go | 4 +- .../bytedance/sonic/loader/funcdata_latest.go | 4 +- .../sonic/loader/internal/abi/abi_regabi_amd64.go | 2 +- .../sonic/loader/internal/iasm/expr/errors.go | 2 +- .../sonic/loader/internal/iasm/x86_64/program.go | 4 +- vendor/github.com/bytedance/sonic/sonic.go | 5 +- .../github.com/bytedance/sonic/unquote/unquote.go | 4 + .../bytedance/sonic/unquote/unquote_fallback.go | 206 + vendor/github.com/bytedance/sonic/utf8/utf8.go | 3 + .../bytedance/sonic/utf8/utf8_fallback.go | 37 + .../github.com/cloudwego/base64x/.licenserc.yaml | 4 +- vendor/github.com/coreos/go-oidc/v3/oidc/jwks.go | 10 +- .../gabriel-vasile/mimetype/CODE_OF_CONDUCT.md | 76 - .../gabriel-vasile/mimetype/CONTRIBUTING.md | 12 - .../github.com/gabriel-vasile/mimetype/README.md | 35 +- .../mimetype/internal/charset/charset.go | 230 +- .../gabriel-vasile/mimetype/internal/csv/parser.go | 125 + .../mimetype/internal/json/parser.go | 30 +- .../mimetype/internal/magic/document.go | 47 +- .../mimetype/internal/magic/magic.go | 81 +- .../mimetype/internal/magic/ms_office.go | 31 +- .../mimetype/internal/magic/netpbm.go | 111 + .../gabriel-vasile/mimetype/internal/magic/text.go | 146 +- .../mimetype/internal/magic/text_csv.go | 80 +- .../gabriel-vasile/mimetype/internal/magic/zip.go | 186 +- .../mimetype/internal/markup/markup.go | 103 + .../gabriel-vasile/mimetype/internal/scan/bytes.go | 213 + vendor/github.com/gabriel-vasile/mimetype/mime.go | 26 +- .../gabriel-vasile/mimetype/supported_mimes.md | 22 +- vendor/github.com/gabriel-vasile/mimetype/tree.go | 62 +- vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md | 101 - vendor/github.com/go-jose/go-jose/v4/README.md | 76 +- vendor/github.com/go-jose/go-jose/v4/crypter.go | 20 +- vendor/github.com/go-jose/go-jose/v4/jwk.go | 59 +- vendor/github.com/go-jose/go-jose/v4/shared.go | 33 +- vendor/github.com/go-jose/go-jose/v4/signing.go | 44 +- vendor/github.com/go-jose/go-jose/v4/symmetric.go | 5 +- .../go-jose/go-jose/v4/symmetric_go124.go | 28 - .../go-jose/go-jose/v4/symmetric_legacy.go | 29 - vendor/github.com/go-playground/form/v4/Makefile | 2 +- vendor/github.com/go-playground/form/v4/README.md | 66 +- vendor/github.com/go-playground/form/v4/cache.go | 2 +- vendor/github.com/go-playground/form/v4/decoder.go | 14 +- .../go-playground/validator/v10/.golangci.yaml | 52 +- .../go-playground/validator/v10/README.md | 11 +- .../go-playground/validator/v10/baked_in.go | 301 +- .../go-playground/validator/v10/cache.go | 11 - .../github.com/go-playground/validator/v10/doc.go | 29 +- .../go-playground/validator/v10/errors.go | 15 +- .../go-playground/validator/v10/regexes.go | 2 + .../go-playground/validator/v10/struct_level.go | 6 +- .../github.com/go-playground/validator/v10/util.go | 11 +- .../go-playground/validator/v10/validator.go | 32 +- .../validator/v10/validator_instance.go | 106 +- vendor/github.com/klauspost/cpuid/v2/README.md | 6 +- vendor/github.com/klauspost/cpuid/v2/cpuid.go | 104 +- vendor/github.com/klauspost/cpuid/v2/detect_x86.go | 4 + .../klauspost/cpuid/v2/featureid_string.go | 178 +- .../golang.org/x/crypto/curve25519/curve25519.go | 11 +- vendor/golang.org/x/crypto/ed25519/ed25519.go | 11 +- vendor/golang.org/x/crypto/ssh/cipher.go | 62 +- vendor/golang.org/x/crypto/ssh/client_auth.go | 24 +- vendor/golang.org/x/crypto/ssh/common.go | 83 +- vendor/golang.org/x/crypto/ssh/doc.go | 10 + vendor/golang.org/x/crypto/ssh/handshake.go | 9 +- vendor/golang.org/x/crypto/ssh/kex.go | 24 +- vendor/golang.org/x/crypto/ssh/keys.go | 69 +- vendor/golang.org/x/crypto/ssh/mac.go | 42 +- vendor/golang.org/x/crypto/ssh/server.go | 36 +- vendor/golang.org/x/crypto/ssh/transport.go | 4 + vendor/golang.org/x/net/html/escape.go | 2 +- vendor/golang.org/x/net/html/parse.go | 57 +- vendor/golang.org/x/net/html/render.go | 2 +- vendor/golang.org/x/net/http2/config.go | 17 +- vendor/golang.org/x/net/http2/config_go125.go | 15 + vendor/golang.org/x/net/http2/config_go126.go | 15 + vendor/golang.org/x/net/http2/frame.go | 25 +- vendor/golang.org/x/net/http2/http2.go | 1 - vendor/golang.org/x/net/http2/server.go | 61 +- vendor/golang.org/x/net/http2/transport.go | 6 +- vendor/golang.org/x/net/http2/writesched.go | 2 + .../golang.org/x/net/http2/writesched_priority.go | 451 - .../x/net/http2/writesched_priority_rfc7540.go | 451 + .../x/net/http2/writesched_priority_rfc9128.go | 209 + .../x/net/http2/writesched_roundrobin.go | 2 +- .../x/net/internal/httpcommon/request.go | 4 +- vendor/golang.org/x/oauth2/oauth2.go | 3 +- vendor/golang.org/x/sys/unix/affinity_linux.go | 9 + vendor/golang.org/x/sys/unix/fdset.go | 4 +- vendor/golang.org/x/sys/unix/ifreq_linux.go | 4 +- vendor/golang.org/x/sys/unix/mkall.sh | 1 + vendor/golang.org/x/sys/unix/syscall_linux.go | 4 +- vendor/golang.org/x/sys/unix/syscall_netbsd.go | 17 + vendor/golang.org/x/sys/windows/syscall_windows.go | 2 + vendor/golang.org/x/sys/windows/types_windows.go | 16 + .../golang.org/x/sys/windows/zsyscall_windows.go | 18 + vendor/golang.org/x/text/unicode/bidi/core.go | 11 +- .../golang.org/x/tools/go/ast/astutil/imports.go | 67 +- vendor/golang.org/x/tools/go/ast/edge/edge.go | 295 + .../golang.org/x/tools/go/ast/inspector/cursor.go | 502 + .../x/tools/go/ast/inspector/inspector.go | 311 + vendor/golang.org/x/tools/go/ast/inspector/iter.go | 85 + .../golang.org/x/tools/go/ast/inspector/typeof.go | 227 + vendor/golang.org/x/tools/go/ast/inspector/walk.go | 341 + vendor/golang.org/x/tools/go/packages/golist.go | 6 - vendor/golang.org/x/tools/go/packages/visit.go | 85 +- .../x/tools/go/types/objectpath/objectpath.go | 5 +- vendor/golang.org/x/tools/go/types/typeutil/map.go | 19 +- vendor/golang.org/x/tools/imports/forward.go | 6 - .../x/tools/internal/event/core/event.go | 5 - .../x/tools/internal/gcimporter/iexport.go | 1 - .../x/tools/internal/gcimporter/iimport_go122.go | 53 - vendor/golang.org/x/tools/internal/imports/fix.go | 6 +- .../x/tools/internal/modindex/symbols.go | 3 +- vendor/golang.org/x/tools/internal/stdlib/deps.go | 596 +- .../golang.org/x/tools/internal/stdlib/manifest.go | 58 +- .../x/tools/internal/typesinternal/fx.go | 49 + .../x/tools/internal/typesinternal/isnamed.go | 71 + .../x/tools/internal/typesinternal/qualifier.go | 8 + .../x/tools/internal/typesinternal/types.go | 48 +- .../x/tools/internal/typesinternal/zerovalue.go | 17 +- .../protobuf/internal/filedesc/desc.go | 52 +- .../protobuf/internal/filedesc/desc_init.go | 14 + .../protobuf/internal/filedesc/desc_lazy.go | 20 + .../protobuf/internal/filedesc/editions.go | 12 +- .../protobuf/internal/version/version.go | 2 +- vendor/modernc.org/libc/Makefile | 8 +- vendor/modernc.org/libc/abi0_linux_amd64.go | 5762 ++++ vendor/modernc.org/libc/abi0_linux_amd64.s | 28747 +++++++++++++++++++ vendor/modernc.org/libc/asm_linux_amd64.go | 4209 --- vendor/modernc.org/libc/asm_linux_amd64.s | 20946 -------------- vendor/modernc.org/libc/ccgo_linux_386.go | 305 +- vendor/modernc.org/libc/ccgo_linux_amd64.go | 303 +- vendor/modernc.org/libc/ccgo_linux_arm.go | 311 +- vendor/modernc.org/libc/ccgo_linux_arm64.go | 297 +- vendor/modernc.org/libc/ccgo_linux_loong64.go | 241 +- vendor/modernc.org/libc/ccgo_linux_ppc64le.go | 320 +- vendor/modernc.org/libc/ccgo_linux_riscv64.go | 241 +- vendor/modernc.org/libc/ccgo_linux_s390x.go | 297 +- vendor/modernc.org/libc/libc.go | 6 +- vendor/modernc.org/libc/libc_all.go | 26 + vendor/modernc.org/libc/libc_freebsd.go | 8 - vendor/modernc.org/libc/tls_linux_amd64.go | 14 + vendor/modernc.org/libc/tls_linux_amd64.s | 16 + vendor/modernc.org/sqlite/doc.go | 32 +- .../modernc.org/sqlite/lib/sqlite_darwin_amd64.go | 10675 +------ .../modernc.org/sqlite/lib/sqlite_darwin_arm64.go | 10675 +------ .../modernc.org/sqlite/lib/sqlite_freebsd_amd64.go | 10635 +------ .../modernc.org/sqlite/lib/sqlite_freebsd_arm64.go | 10635 +------ vendor/modernc.org/sqlite/lib/sqlite_linux_386.go | 10649 +------ .../modernc.org/sqlite/lib/sqlite_linux_amd64.go | 10651 +------ vendor/modernc.org/sqlite/lib/sqlite_linux_arm.go | 10816 +------ .../modernc.org/sqlite/lib/sqlite_linux_arm64.go | 10651 +------ .../modernc.org/sqlite/lib/sqlite_linux_loong64.go | 10651 +------ .../modernc.org/sqlite/lib/sqlite_linux_ppc64le.go | 15956 +++------- .../modernc.org/sqlite/lib/sqlite_linux_riscv64.go | 10651 +------ .../modernc.org/sqlite/lib/sqlite_linux_s390x.go | 10651 +------ vendor/modernc.org/sqlite/lib/sqlite_windows.go | 12038 +------- .../modernc.org/sqlite/lib/sqlite_windows_386.go | 12178 +------- vendor/modules.txt | 77 +- 341 files changed, 114442 insertions(+), 225172 deletions(-) create mode 100644 vendor/github.com/bytedance/gopkg/LICENSE create mode 100644 vendor/github.com/bytedance/gopkg/lang/dirtmake/bytes.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go create mode 100644 vendor/github.com/bytedance/sonic/internal/encoder/prim/primitives.go create mode 100644 vendor/github.com/bytedance/sonic/internal/resolver/fields.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/resolver/stubs_go120.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/resolver/stubs_go123.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/resolver/stubs_latest.go create mode 100644 vendor/github.com/bytedance/sonic/unquote/unquote_fallback.go create mode 100644 vendor/github.com/bytedance/sonic/utf8/utf8_fallback.go delete mode 100644 vendor/github.com/gabriel-vasile/mimetype/CODE_OF_CONDUCT.md delete mode 100644 vendor/github.com/gabriel-vasile/mimetype/CONTRIBUTING.md create mode 100644 vendor/github.com/gabriel-vasile/mimetype/internal/csv/parser.go create mode 100644 vendor/github.com/gabriel-vasile/mimetype/internal/magic/netpbm.go create mode 100644 vendor/github.com/gabriel-vasile/mimetype/internal/markup/markup.go create mode 100644 vendor/github.com/gabriel-vasile/mimetype/internal/scan/bytes.go delete mode 100644 vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md delete mode 100644 vendor/github.com/go-jose/go-jose/v4/symmetric_go124.go delete mode 100644 vendor/github.com/go-jose/go-jose/v4/symmetric_legacy.go create mode 100644 vendor/golang.org/x/net/http2/config_go125.go create mode 100644 vendor/golang.org/x/net/http2/config_go126.go delete mode 100644 vendor/golang.org/x/net/http2/writesched_priority.go create mode 100644 vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go create mode 100644 vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go create mode 100644 vendor/golang.org/x/tools/go/ast/edge/edge.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/cursor.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/inspector.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/iter.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/typeof.go create mode 100644 vendor/golang.org/x/tools/go/ast/inspector/walk.go delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/fx.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/isnamed.go create mode 100644 vendor/modernc.org/libc/abi0_linux_amd64.go create mode 100644 vendor/modernc.org/libc/abi0_linux_amd64.s delete mode 100644 vendor/modernc.org/libc/asm_linux_amd64.go delete mode 100644 vendor/modernc.org/libc/asm_linux_amd64.s diff --git a/go.mod b/go.mod index 1416b1786..baa5d5ad7 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ go 1.24.6 replace github.com/go-swagger/go-swagger => codeberg.org/superseriousbusiness/go-swagger v0.32.3-gts-go1.23-fix // Replace modernc/sqlite with our version that fixes the concurrency INTERRUPT issue -replace modernc.org/sqlite => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.0-concurrency-workaround +replace modernc.org/sqlite => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.1-concurrency-workaround require ( code.superseriousbusiness.org/activity v1.17.0 @@ -36,13 +36,13 @@ require ( github.com/KimMachineGun/automemlimit v0.7.4 github.com/SherClockHolmes/webpush-go v1.4.0 github.com/buckket/go-blurhash v1.1.0 - github.com/coreos/go-oidc/v3 v3.15.0 + github.com/coreos/go-oidc/v3 v3.16.0 github.com/gin-contrib/cors v1.7.6 github.com/gin-contrib/gzip v1.2.3 github.com/gin-contrib/sessions v1.0.4 github.com/gin-gonic/gin v1.10.1 - github.com/go-playground/form/v4 v4.2.1 - github.com/go-swagger/go-swagger v0.32.3 + github.com/go-playground/form/v4 v4.3.0 + github.com/go-swagger/go-swagger v0.33.1 github.com/google/go-cmp v0.7.0 github.com/google/uuid v1.6.0 github.com/gorilla/feeds v1.2.0 @@ -81,15 +81,15 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.38.0 go.opentelemetry.io/otel/trace v1.38.0 go.uber.org/automaxprocs v1.6.0 - golang.org/x/crypto v0.42.0 - golang.org/x/image v0.31.0 - golang.org/x/net v0.44.0 - golang.org/x/oauth2 v0.31.0 - golang.org/x/sys v0.36.0 - golang.org/x/text v0.29.0 + golang.org/x/crypto v0.43.0 + golang.org/x/image v0.32.0 + golang.org/x/net v0.46.0 + golang.org/x/oauth2 v0.32.0 + golang.org/x/sys v0.37.0 + golang.org/x/text v0.30.0 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 gopkg.in/yaml.v3 v3.0.1 - modernc.org/sqlite v1.39.0 + modernc.org/sqlite v1.39.1 mvdan.cc/xurls/v2 v2.6.0 ) @@ -107,11 +107,12 @@ require ( github.com/aymerick/douceur v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect - github.com/bytedance/sonic v1.13.3 // indirect - github.com/bytedance/sonic/loader v0.2.4 // indirect + github.com/bytedance/gopkg v0.1.3 // indirect + github.com/bytedance/sonic v1.14.1 // indirect + github.com/bytedance/sonic/loader v0.3.0 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cloudwego/base64x v0.1.5 // indirect + github.com/cloudwego/base64x v0.1.6 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dsoprea/go-exif/v3 v3.0.0-20210625224831-a6301f85c82b // indirect github.com/dsoprea/go-iptc v0.0.0-20200609062250-162ae6b44feb // indirect @@ -121,11 +122,11 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.9 // indirect + github.com/gabriel-vasile/mimetype v1.4.10 // indirect github.com/gin-contrib/sse v1.1.0 // indirect github.com/go-errors/errors v1.1.1 // indirect github.com/go-ini/ini v1.67.0 // indirect - github.com/go-jose/go-jose/v4 v4.1.1 // indirect + github.com/go-jose/go-jose/v4 v4.1.3 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/analysis v0.23.0 // indirect @@ -141,7 +142,7 @@ require ( github.com/go-openapi/validate v0.24.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.26.0 // indirect + github.com/go-playground/validator/v10 v10.28.0 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b // indirect github.com/goccy/go-json v0.10.5 // indirect @@ -165,7 +166,7 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.18.0 // indirect - github.com/klauspost/cpuid/v2 v2.2.11 // indirect + github.com/klauspost/cpuid/v2 v2.3.0 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect @@ -227,17 +228,17 @@ require ( go.opentelemetry.io/otel/sdk/log v0.14.0 // indirect go.opentelemetry.io/proto/otlp v1.7.1 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/arch v0.18.0 // indirect + golang.org/x/arch v0.22.0 // indirect golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect - golang.org/x/mod v0.27.0 // indirect + golang.org/x/mod v0.29.0 // indirect golang.org/x/sync v0.17.0 // indirect - golang.org/x/tools v0.36.0 // indirect + golang.org/x/tools v0.38.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect google.golang.org/grpc v1.75.0 // indirect - google.golang.org/protobuf v1.36.8 // indirect + google.golang.org/protobuf v1.36.10 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - modernc.org/libc v1.66.3 // indirect + modernc.org/libc v1.66.10 // indirect modernc.org/mathutil v1.7.1 // indirect modernc.org/memory v1.11.0 // indirect ) diff --git a/go.sum b/go.sum index 6623fc830..49451e55b 100644 --- a/go.sum +++ b/go.sum @@ -89,22 +89,22 @@ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8 github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/buckket/go-blurhash v1.1.0 h1:X5M6r0LIvwdvKiUtiNcRL2YlmOfMzYobI3VCKCZc9Do= github.com/buckket/go-blurhash v1.1.0/go.mod h1:aT2iqo5W9vu9GpyoLErKfTHwgODsZp3bQfXjXJUxNb8= -github.com/bytedance/sonic v1.13.3 h1:MS8gmaH16Gtirygw7jV91pDCN33NyMrPbN7qiYhEsF0= -github.com/bytedance/sonic v1.13.3/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4= -github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/bytedance/sonic/loader v0.2.4 h1:ZWCw4stuXUsn1/+zQDqeE7JKP+QO47tz7QCNan80NzY= -github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= +github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= +github.com/bytedance/sonic v1.14.1 h1:FBMC0zVz5XUmE4z9wF4Jey0An5FueFvOsTKKKtwIl7w= +github.com/bytedance/sonic v1.14.1/go.mod h1:gi6uhQLMbTdeP0muCnrjHLeCUPyb70ujhnNlhOylAFc= +github.com/bytedance/sonic/loader v0.3.0 h1:dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA= +github.com/bytedance/sonic/loader v0.3.0/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cloudwego/base64x v0.1.5 h1:XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4= -github.com/cloudwego/base64x v0.1.5/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= -github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= +github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08 h1:ox2F0PSMlrAAiAdknSRMDrAr8mfxPCfSZolH+/qQnyQ= github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08/go.mod h1:pCxVEbcm3AMg7ejXyorUXi6HQCzOIBf7zEDVPtw0/U4= -github.com/coreos/go-oidc/v3 v3.15.0 h1:R6Oz8Z4bqWR7VFQ+sPSvZPQv4x8M+sJkDO5ojgwlyAg= -github.com/coreos/go-oidc/v3 v3.15.0/go.mod h1:HaZ3szPaZ0e4r6ebqvsLWlk2Tn+aejfmrfah6hnSYEU= +github.com/coreos/go-oidc/v3 v3.16.0 h1:qRQUCFstKpXwmEjDQTIbyY/5jF00+asXzSkmkoa/mow= +github.com/coreos/go-oidc/v3 v3.16.0/go.mod h1:wqPbKFrVnE90vty060SB40FCJ8fTHTxSwyXJqZH+sI8= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -141,8 +141,8 @@ github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor v1.5.1 h1:XjQWBgdmQyqimslUh5r4tUGmoqzHmBFQOImkWGi2awg= github.com/fxamacker/cbor v1.5.1/go.mod h1:3aPGItF174ni7dDzd6JZ206H8cmr4GDNBGpPa971zsU= -github.com/gabriel-vasile/mimetype v1.4.9 h1:5k+WDwEsD9eTLL8Tz3L0VnmVh9QxGjRmjBvAG7U/oYY= -github.com/gabriel-vasile/mimetype v1.4.9/go.mod h1:WnSQhFKJuBlRyLiKohA/2DtIlPFAbguNaG7QCHcyGok= +github.com/gabriel-vasile/mimetype v1.4.10 h1:zyueNbySn/z8mJZHLt6IPw0KoZsiQNszIpU+bX4+ZK0= +github.com/gabriel-vasile/mimetype v1.4.10/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= github.com/gavv/httpexpect/v2 v2.17.0 h1:nIJqt5v5e4P7/0jODpX2gtSw+pHXUqdP28YcjqwDZmE= github.com/gavv/httpexpect/v2 v2.17.0/go.mod h1:E8ENFlT9MZ3Si2sfM6c6ONdwXV2noBCGkhA+lkJgkP0= github.com/gin-contrib/cors v1.7.6 h1:3gQ8GMzs1Ylpf70y8bMw4fVpycXIeX1ZemuSQIsnQQY= @@ -161,8 +161,8 @@ github.com/go-errors/errors v1.1.1 h1:ljK/pL5ltg3qoN+OtN6yCv9HWSfMwxSx90GJCZQxYN github.com/go-errors/errors v1.1.1/go.mod h1:psDX2osz5VnTOnFWbDeWwS7yejl+uV3FEWEp4lssFEs= github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= -github.com/go-jose/go-jose/v4 v4.1.1 h1:JYhSgy4mXXzAdF3nUx3ygx347LRXJRrpgyU3adRmkAI= -github.com/go-jose/go-jose/v4 v4.1.1/go.mod h1:BdsZGqgdO3b6tTc6LSE56wcDbMMLuPsw5d4ZD5f94kA= +github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs= +github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -190,17 +190,16 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= github.com/go-openapi/validate v0.24.0/go.mod h1:iyeX1sEufmv3nPbBdX3ieNviWnOZaJ1+zquzJEf2BAQ= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/form/v4 v4.2.1 h1:HjdRDKO0fftVMU5epjPW2SOREcZ6/wLUzEobqUGJuPw= -github.com/go-playground/form/v4 v4.2.1/go.mod h1:q1a2BY+AQUUzhl6xA/6hBetay6dEIhMHjgvJiGo6K7U= +github.com/go-playground/form/v4 v4.3.0 h1:OVttojbQv2WNCs4P+VnjPtrt/+30Ipw4890W3OaFlvk= +github.com/go-playground/form/v4 v4.3.0/go.mod h1:Cpe1iYJKoXb1vILRXEwxpWMGWyQuqplQ/4cvPecy+Jo= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.26.0 h1:SP05Nqhjcvz81uJaRfEV0YBSSSGMc/iMaVtFbr3Sw2k= -github.com/go-playground/validator/v10 v10.26.0/go.mod h1:I5QpIEbmr8On7W0TktmJAumgzX4CA1XNl4ZmDuVHKKo= +github.com/go-playground/validator/v10 v10.28.0 h1:Q7ibns33JjyW48gHkuFT91qX48KG0ktULL6FgHdG688= +github.com/go-playground/validator/v10 v10.28.0/go.mod h1:GoI6I1SjPBh9p7ykNE/yj3fFYbyDOpwMn5KXd+m2hUU= github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/go-viper/mapstructure/v2 v2.4.0 h1:EBsztssimR/CONLSZZ04E8qAkxNYq4Qp9LvH92wZUgs= @@ -291,10 +290,8 @@ github.com/k3a/html2text v1.2.1/go.mod h1:ieEXykM67iT8lTvEWBh6fhpH4B23kB9OMKPdIB github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.11 h1:0OwqZRYI2rFrjS4kvkDnqJkKHdHaRnCm68/DY4OxRzU= -github.com/klauspost/cpuid/v2 v2.2.11/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= -github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= +github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -506,8 +503,8 @@ github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDf github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/goldmark v1.7.13 h1:GPddIs617DnBLFFVJFgpo1aBfe/4xcvMc3SB5t/D0pA= github.com/yuin/goldmark v1.7.13/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg= -gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.0-concurrency-workaround h1:+e2m4Ycgsri3YaePPAuYcTawQxklz0q/3CbKEbqxhOM= -gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.0-concurrency-workaround/go.mod h1:cPTJYSlgg3Sfg046yBShXENNtPrWrDX8bsbAQBzgQ5E= +gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.1-concurrency-workaround h1:ptkkB4Z76pmpmLE7vmp5BVOfO5o5+Kt0eGFhNbvVxjA= +gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.1-concurrency-workaround/go.mod h1:9fjQZ0mB1LLP0GYrp39oOJXx/I2sxEnZtzCmEQIKvGE= go.mongodb.org/mongo-driver v1.17.3 h1:TQyXhnsWfWtgAhMtOgtYHMTkZIfBTpMTsMnd9ZBeHxQ= go.mongodb.org/mongo-driver v1.17.3/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= @@ -564,8 +561,8 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/arch v0.18.0 h1:WN9poc33zL4AzGxqf8VtpKUnGvMi8O9lhNyBMF/85qc= -golang.org/x/arch v0.18.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk= +golang.org/x/arch v0.22.0 h1:c/Zle32i5ttqRXjdLyyHZESLD/bB90DCU1g9l/0YBDI= +golang.org/x/arch v0.22.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= @@ -573,19 +570,19 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= -golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= +golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= +golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o= golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= -golang.org/x/image v0.31.0 h1:mLChjE2MV6g1S7oqbXC0/UcKijjm5fnJLUYKIYrLESA= -golang.org/x/image v0.31.0/go.mod h1:R9ec5Lcp96v9FTF+ajwaH3uGxPH4fKfHHAVbUILxghA= +golang.org/x/image v0.32.0 h1:6lZQWq75h7L5IWNk0r+SCpUJ6tUVd3v4ZHnbRKLkUDQ= +golang.org/x/image v0.32.0/go.mod h1:/R37rrQmKXtO6tYXAjtDLwQgFLHmhW+V6ayXlxzP2Pc= 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.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -601,10 +598,10 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= -golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo= -golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4= +golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= +golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= +golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -629,8 +626,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= @@ -641,8 +638,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= -golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= -golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= +golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q= +golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= 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= @@ -653,8 +650,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= +golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -662,8 +659,8 @@ 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.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= @@ -673,8 +670,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5/go.mod h1:M4/wBTSeyLxupu3W3tJtOgB14jILAS/XWPSSa3TAlJc= google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= -google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -688,18 +685,18 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -modernc.org/cc/v4 v4.26.2 h1:991HMkLjJzYBIfha6ECZdjrIYz2/1ayr+FL8GN+CNzM= -modernc.org/cc/v4 v4.26.2/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= -modernc.org/ccgo/v4 v4.28.0 h1:rjznn6WWehKq7dG4JtLRKxb52Ecv8OUGah8+Z/SfpNU= -modernc.org/ccgo/v4 v4.28.0/go.mod h1:JygV3+9AV6SmPhDasu4JgquwU81XAKLd3OKTUDNOiKE= -modernc.org/fileutil v1.3.8 h1:qtzNm7ED75pd1C7WgAGcK4edm4fvhtBsEiI/0NQ54YM= -modernc.org/fileutil v1.3.8/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc= +modernc.org/cc/v4 v4.26.5 h1:xM3bX7Mve6G8K8b+T11ReenJOT+BmVqQj0FY5T4+5Y4= +modernc.org/cc/v4 v4.26.5/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= +modernc.org/ccgo/v4 v4.28.1 h1:wPKYn5EC/mYTqBO373jKjvX2n+3+aK7+sICCv4Fjy1A= +modernc.org/ccgo/v4 v4.28.1/go.mod h1:uD+4RnfrVgE6ec9NGguUNdhqzNIeeomeXf6CL0GTE5Q= +modernc.org/fileutil v1.3.40 h1:ZGMswMNc9JOCrcrakF1HrvmergNLAmxOPjizirpfqBA= +modernc.org/fileutil v1.3.40/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc= modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks= modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI= -modernc.org/libc v1.66.3 h1:cfCbjTUcdsKyyZZfEUKfoHcP3S0Wkvz3jgSzByEWVCQ= -modernc.org/libc v1.66.3/go.mod h1:XD9zO8kt59cANKvHPXpx7yS2ELPheAey0vjIuZOhOU8= +modernc.org/libc v1.66.10 h1:yZkb3YeLx4oynyR+iUsXsybsX4Ubx7MQlSYEw4yj59A= +modernc.org/libc v1.66.10/go.mod h1:8vGSEwvoUoltr4dlywvHqjtAqHBaw0j1jI7iFBTAr2I= modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= @@ -716,4 +713,3 @@ moul.io/http2curl/v2 v2.3.0 h1:9r3JfDzWPcbIklMOs2TnIFzDYvfAZvjeavG6EzP7jYs= moul.io/http2curl/v2 v2.3.0/go.mod h1:RW4hyBjTWSYDOxapodpNEtX0g5Eb16sxklBqmd2RHcE= mvdan.cc/xurls/v2 v2.6.0 h1:3NTZpeTxYVWNSokW3MKeyVkz/j7uYXYiMtXRUfmjbgI= mvdan.cc/xurls/v2 v2.6.0/go.mod h1:bCvEZ1XvdA6wDnxY7jPPjEmigDtvtvPXAD/Exa9IMSk= -nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= diff --git a/vendor/github.com/bytedance/gopkg/LICENSE b/vendor/github.com/bytedance/gopkg/LICENSE new file mode 100644 index 000000000..261eeb9e9 --- /dev/null +++ b/vendor/github.com/bytedance/gopkg/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/github.com/bytedance/gopkg/lang/dirtmake/bytes.go b/vendor/github.com/bytedance/gopkg/lang/dirtmake/bytes.go new file mode 100644 index 000000000..1daa27904 --- /dev/null +++ b/vendor/github.com/bytedance/gopkg/lang/dirtmake/bytes.go @@ -0,0 +1,43 @@ +// Copyright 2024 ByteDance Inc. +// +// 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 dirtmake + +import ( + "unsafe" +) + +type slice struct { + data unsafe.Pointer + len int + cap int +} + +//go:linkname mallocgc runtime.mallocgc +func mallocgc(size uintptr, typ unsafe.Pointer, needzero bool) unsafe.Pointer + +// Bytes allocates a byte slice but does not clean up the memory it references. +// Throw a fatal error instead of panic if cap is greater than runtime.maxAlloc. +// NOTE: MUST set any byte element before it's read. +func Bytes(len, cap int) (b []byte) { + if len < 0 || len > cap { + panic("dirtmake.Bytes: len out of range") + } + p := mallocgc(uintptr(cap), nil, false) + sh := (*slice)(unsafe.Pointer(&b)) + sh.data = p + sh.len = len + sh.cap = cap + return +} diff --git a/vendor/github.com/bytedance/sonic/README.md b/vendor/github.com/bytedance/sonic/README.md index 41fe77658..6ada7f689 100644 --- a/vendor/github.com/bytedance/sonic/README.md +++ b/vendor/github.com/bytedance/sonic/README.md @@ -6,7 +6,7 @@ A blazingly fast JSON serializing & deserializing library, accelerated by JI ## Requirement -- Go: 1.17~1.24 +- Go: 1.18~1.25 - Notice: Go1.24.0 is not supported due to the [issue](https://github.com/golang/go/issues/71672), please use higher go version or add build tag `--ldflags="-checklinkname=0"` - OS: Linux / MacOS / Windows - CPU: AMD64 / (ARM64, need go1.20 above) diff --git a/vendor/github.com/bytedance/sonic/README_ZH_CN.md b/vendor/github.com/bytedance/sonic/README_ZH_CN.md index 3c24a51aa..ef4fc2179 100644 --- a/vendor/github.com/bytedance/sonic/README_ZH_CN.md +++ b/vendor/github.com/bytedance/sonic/README_ZH_CN.md @@ -6,7 +6,7 @@ ## 依赖 -- Go: 1.17~1.24 +- Go: 1.18~1.25 - 注意:Go1.24.0 由于 [issue](https://github.com/golang/go/issues/71672) 不可用,请升级到更高 Go 版本,或添加编译选项 `--ldflags="-checklinkname=0"` - OS: Linux / MacOS / Windows - CPU: AMD64 / (ARM64, 需要 Go1.20 以上) diff --git a/vendor/github.com/bytedance/sonic/ast/api.go b/vendor/github.com/bytedance/sonic/ast/api.go index 36151f270..b9d3c58ee 100644 --- a/vendor/github.com/bytedance/sonic/ast/api.go +++ b/vendor/github.com/bytedance/sonic/ast/api.go @@ -1,5 +1,5 @@ -//go:build (amd64 && go1.17 && !go1.25) || (arm64 && go1.20 && !go1.25) -// +build amd64,go1.17,!go1.25 arm64,go1.20,!go1.25 +//go:build (amd64 && go1.17 && !go1.26) || (arm64 && go1.20 && !go1.26) +// +build amd64,go1.17,!go1.26 arm64,go1.20,!go1.26 /* * Copyright 2022 ByteDance Inc. @@ -20,62 +20,21 @@ package ast import ( - `runtime` - `unsafe` - - `github.com/bytedance/sonic/encoder` - `github.com/bytedance/sonic/internal/native` - `github.com/bytedance/sonic/internal/native/types` - `github.com/bytedance/sonic/internal/rt` - uq `github.com/bytedance/sonic/unquote` - `github.com/bytedance/sonic/utf8` + "runtime" + "unsafe" + + "github.com/bytedance/sonic/encoder" + "github.com/bytedance/sonic/internal/encoder/alg" + "github.com/bytedance/sonic/internal/native" + "github.com/bytedance/sonic/internal/native/types" + "github.com/bytedance/sonic/internal/rt" + "github.com/bytedance/sonic/utf8" ) var typeByte = rt.UnpackEface(byte(0)).Type -//go:nocheckptr func quote(buf *[]byte, val string) { - *buf = append(*buf, '"') - if len(val) == 0 { - *buf = append(*buf, '"') - return - } - - sp := rt.IndexChar(val, 0) - nb := len(val) - b := (*rt.GoSlice)(unsafe.Pointer(buf)) - - // input buffer - for nb > 0 { - // output buffer - dp := unsafe.Pointer(uintptr(b.Ptr) + uintptr(b.Len)) - dn := b.Cap - b.Len - // call native.Quote, dn is byte count it outputs - ret := native.Quote(sp, nb, dp, &dn, 0) - // update *buf length - b.Len += dn - - // no need more output - if ret >= 0 { - break - } - - // double buf size - *b = rt.GrowSlice(typeByte, *b, b.Cap*2) - // ret is the complement of consumed input - ret = ^ret - // update input buffer - nb -= ret - sp = unsafe.Pointer(uintptr(sp) + uintptr(ret)) - } - - runtime.KeepAlive(buf) - runtime.KeepAlive(sp) - *buf = append(*buf, '"') -} - -func unquote(src string) (string, types.ParsingError) { - return uq.String(src) + *buf = alg.Quote(*buf, val, false) } func (self *Parser) decodeValue() (val types.JsonState) { diff --git a/vendor/github.com/bytedance/sonic/ast/api_compat.go b/vendor/github.com/bytedance/sonic/ast/api_compat.go index 74119fed6..c6a540cbf 100644 --- a/vendor/github.com/bytedance/sonic/ast/api_compat.go +++ b/vendor/github.com/bytedance/sonic/ast/api_compat.go @@ -1,4 +1,4 @@ -// +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20 +// +build !amd64,!arm64 go1.26 !go1.17 arm64,!go1.20 /* * Copyright 2022 ByteDance Inc. @@ -23,7 +23,6 @@ import ( `unicode/utf8` `github.com/bytedance/sonic/internal/native/types` - `github.com/bytedance/sonic/internal/rt` `github.com/bytedance/sonic/internal/compat` ) @@ -35,17 +34,6 @@ func quote(buf *[]byte, val string) { quoteString(buf, val) } -// unquote unescapes an internal JSON string (it doesn't count quotas at the beginning and end) -func unquote(src string) (string, types.ParsingError) { - sp := rt.IndexChar(src, -1) - out, ok := unquoteBytes(rt.BytesFrom(sp, len(src)+2, len(src)+2)) - if !ok { - return "", types.ERR_INVALID_ESCAPE - } - return rt.Mem2Str(out), 0 -} - - func (self *Parser) decodeValue() (val types.JsonState) { e, v := decodeValue(self.s, self.p, self.dbuf == nil) if e < 0 { diff --git a/vendor/github.com/bytedance/sonic/ast/decode.go b/vendor/github.com/bytedance/sonic/ast/decode.go index 135ee6eb8..45f5e2d2b 100644 --- a/vendor/github.com/bytedance/sonic/ast/decode.go +++ b/vendor/github.com/bytedance/sonic/ast/decode.go @@ -25,10 +25,9 @@ import ( "github.com/bytedance/sonic/internal/native/types" "github.com/bytedance/sonic/internal/rt" "github.com/bytedance/sonic/internal/utils" + "github.com/bytedance/sonic/unquote" ) -// Hack: this is used for both checking space and cause friendly compile errors in 32-bit arch. -const _Sonic_Not_Support_32Bit_Arch__Checking_32Bit_Arch_Here = (1 << ' ') | (1 << '\t') | (1 << '\r') | (1 << '\n') var bytesNull = []byte("null") @@ -40,17 +39,13 @@ const ( bytesArray = "[]" ) -func isSpace(c byte) bool { - return (int(1<= 0 && isSpace(self.s[self.p]); self.p-=1 {} + for ; self.p >= 0 && utils.IsSpace(self.s[self.p]); self.p-=1 {} } func (self *Parser) decodeArray(ret *linkedNodes) (Node, types.ParsingError) { @@ -217,7 +219,7 @@ func (self *Parser) decodeObject(ret *linkedPairs) (Node, types.ParsingError) { /* check for escape sequence */ if njs.Ep != -1 { - if key, err = unquote(key); err != 0 { + if key, err = unquote.String(key); err != 0 { return Node{}, err } } @@ -282,7 +284,7 @@ func (self *Parser) decodeString(iv int64, ep int) (Node, types.ParsingError) { } /* unquote the string */ - out, err := unquote(s) + out, err := unquote.String(s) /* check for errors */ if err != 0 { @@ -392,7 +394,7 @@ func (self *Parser) searchKey(match string) types.ParsingError { /* check for escape sequence */ if njs.Ep != -1 { - if key, err = unquote(key); err != 0 { + if key, err = unquote.String(key); err != 0 { return err } } @@ -573,7 +575,7 @@ func (self *Node) skipNextPair() (*Pair) { /* check for escape sequence */ if njs.Ep != -1 { - if key, err = unquote(key); err != 0 { + if key, err = unquote.String(key); err != 0 { return newErrorPair(parser.syntaxError(err)) } } @@ -692,7 +694,7 @@ func (self *Parser) ExportError(err types.ParsingError) error { } func backward(src string, i int) int { - for ; i>=0 && isSpace(src[i]); i-- {} + for ; i>=0 && utils.IsSpace(src[i]); i-- {} return i } diff --git a/vendor/github.com/bytedance/sonic/ast/stubs.go b/vendor/github.com/bytedance/sonic/ast/stubs.go index 9991cc89e..6ba1d7eba 100644 --- a/vendor/github.com/bytedance/sonic/ast/stubs.go +++ b/vendor/github.com/bytedance/sonic/ast/stubs.go @@ -26,6 +26,3 @@ import ( func mem2ptr(s []byte) unsafe.Pointer { return (*rt.GoSlice)(unsafe.Pointer(&s)).Ptr } - -//go:linkname unquoteBytes encoding/json.unquoteBytes -func unquoteBytes(s []byte) (t []byte, ok bool) diff --git a/vendor/github.com/bytedance/sonic/ast/visitor.go b/vendor/github.com/bytedance/sonic/ast/visitor.go index fc71d40cb..53faeb9c0 100644 --- a/vendor/github.com/bytedance/sonic/ast/visitor.go +++ b/vendor/github.com/bytedance/sonic/ast/visitor.go @@ -21,6 +21,7 @@ import ( `errors` `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/unquote` ) // Visitor handles the callbacks during preorder traversal of a JSON AST. @@ -270,7 +271,7 @@ func (self *traverser) decodeObject() error { /* check for escape sequence */ if njs.Ep != -1 { - if key, err = unquote(key); err != 0 { + if key, err = unquote.String(key); err != 0 { return err } } @@ -320,7 +321,7 @@ func (self *traverser) decodeString(iv int64, ep int) error { } /* unquote the string */ - out, err := unquote(s) + out, err := unquote.String(s) if err != 0 { return err } diff --git a/vendor/github.com/bytedance/sonic/compat.go b/vendor/github.com/bytedance/sonic/compat.go index ec996493a..1fa670a48 100644 --- a/vendor/github.com/bytedance/sonic/compat.go +++ b/vendor/github.com/bytedance/sonic/compat.go @@ -1,4 +1,4 @@ -// +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20 +// +build !amd64,!arm64 go1.26 !go1.17 arm64,!go1.20 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go b/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go index 754e5fbc2..75b21746f 100644 --- a/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go +++ b/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go @@ -1,5 +1,5 @@ -//go:build (!amd64 && !arm64) || go1.25 || !go1.17 || (arm64 && !go1.20) -// +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20 +//go:build (!amd64 && !arm64) || go1.26 || !go1.17 || (arm64 && !go1.20) +// +build !amd64,!arm64 go1.26 !go1.17 arm64,!go1.20 /* * Copyright 2023 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/decoder/decoder_native.go b/vendor/github.com/bytedance/sonic/decoder/decoder_native.go index 563ca944b..4313a4e14 100644 --- a/vendor/github.com/bytedance/sonic/decoder/decoder_native.go +++ b/vendor/github.com/bytedance/sonic/decoder/decoder_native.go @@ -1,5 +1,5 @@ -//go:build (amd64 && go1.17 && !go1.25) || (arm64 && go1.20 && !go1.25) -// +build amd64,go1.17,!go1.25 arm64,go1.20,!go1.25 +//go:build (amd64 && go1.17 && !go1.26) || (arm64 && go1.20 && !go1.26) +// +build amd64,go1.17,!go1.26 arm64,go1.20,!go1.26 /* diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go index d48e99b1f..a7350548a 100644 --- a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go +++ b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go @@ -1,4 +1,4 @@ -// +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20 +// +build !amd64,!arm64 go1.26 !go1.17 arm64,!go1.20 /* * Copyright 2023 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_native.go b/vendor/github.com/bytedance/sonic/encoder/encoder_native.go index 2881da8d7..bfed805fd 100644 --- a/vendor/github.com/bytedance/sonic/encoder/encoder_native.go +++ b/vendor/github.com/bytedance/sonic/encoder/encoder_native.go @@ -1,4 +1,4 @@ -// +build amd64,go1.17,!go1.25 arm64,go1.20,!go1.25 +// +build amd64,go1.17,!go1.26 arm64,go1.20,!go1.26 /* * Copyright 2023 ByteDance Inc. @@ -71,7 +71,8 @@ const ( // CompatibleWithStd is used to be compatible with std encoder. CompatibleWithStd Options = encoder.CompatibleWithStd - // Encode Infinity or Nan float into `null`, instead of returning an error. + // EncodeNullForInfOrNan encodes Infinity or NaN float values as 'null' + // instead of returning an error. EncodeNullForInfOrNan Options = encoder.EncodeNullForInfOrNan ) @@ -80,12 +81,12 @@ var ( // Encode returns the JSON encoding of val, encoded with opts. Encode = encoder.Encode - // EncodeInto is like Encode but uses a user-supplied buffer instead of allocating a new one. - EncodeIndented = encoder.EncodeIndented - // EncodeIndented is like Encode but applies Indent to format the output. // Each JSON element in the output will begin on a new line beginning with prefix // followed by one or more copies of indent according to the indentation nesting. + EncodeIndented = encoder.EncodeIndented + + // EncodeInto is like Encode but uses a user-supplied buffer instead of allocating a new one. EncodeInto = encoder.EncodeInto // HTMLEscape appends to dst the JSON-encoded src with <, >, &, U+2028 and U+2029 diff --git a/vendor/github.com/bytedance/sonic/go.work b/vendor/github.com/bytedance/sonic/go.work index 8d2af51b9..34c990646 100644 --- a/vendor/github.com/bytedance/sonic/go.work +++ b/vendor/github.com/bytedance/sonic/go.work @@ -5,5 +5,6 @@ use ( ./external_jsonlib_test ./fuzz ./generic_test + ./issue_test ./loader ) diff --git a/vendor/github.com/bytedance/sonic/go.work.sum b/vendor/github.com/bytedance/sonic/go.work.sum index 706c702bb..37269ab66 100644 --- a/vendor/github.com/bytedance/sonic/go.work.sum +++ b/vendor/github.com/bytedance/sonic/go.work.sum @@ -2,6 +2,10 @@ github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4 github.com/bytedance/sonic/loader v0.2.3/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/bytedance/sonic/loader v0.2.4/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= -github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= -github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= diff --git a/vendor/github.com/bytedance/sonic/internal/compat/warn.go b/vendor/github.com/bytedance/sonic/internal/compat/warn.go index bd9600e5a..4fabaabac 100644 --- a/vendor/github.com/bytedance/sonic/internal/compat/warn.go +++ b/vendor/github.com/bytedance/sonic/internal/compat/warn.go @@ -1,4 +1,4 @@ -// +build !amd64,!arm64 go1.25 !go1.17 arm64,!go1.20 +// +build !amd64,!arm64 go1.26 !go1.17 arm64,!go1.20 package compat diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go index 551b35b1b..4e7f46fa6 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_amd64.go @@ -1,5 +1,5 @@ -//go:build go1.17 && !go1.25 -// +build go1.17,!go1.25 +//go:build go1.17 && !go1.26 +// +build go1.17,!go1.26 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go b/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go index a56e1579d..5a7d44de1 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/api/decoder_arm64.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.25 +// +build go1.17,!go1.26 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go b/vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go index ecf120462..d0ee97511 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/api/stream.go @@ -17,14 +17,15 @@ package api import ( - `bytes` - `io` - `sync` - - `github.com/bytedance/sonic/internal/native` - `github.com/bytedance/sonic/internal/native/types` - `github.com/bytedance/sonic/internal/rt` - `github.com/bytedance/sonic/option` + "bytes" + "io" + "sync" + + "github.com/bytedance/sonic/internal/native" + "github.com/bytedance/sonic/internal/native/types" + "github.com/bytedance/sonic/internal/rt" + "github.com/bytedance/sonic/internal/utils" + "github.com/bytedance/sonic/option" ) var ( @@ -194,7 +195,7 @@ func (self *StreamDecoder) peek() (byte, error) { func (self *StreamDecoder) scan() (byte, bool) { for i := self.scanp; i < len(self.buf); i++ { c := self.buf[i] - if isSpace(c) { + if utils.IsSpace(c) { continue } self.scanp = i @@ -203,9 +204,6 @@ func (self *StreamDecoder) scan() (byte, bool) { return 0, true } -func isSpace(c byte) bool { - return types.SPACE_MASK & (1 << c) != 0 -} func (self *StreamDecoder) refill() error { // Make room to read more into the buffer. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go index d6101b2e6..5cd3750bf 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/asm_stubs_amd64_go121.go @@ -1,4 +1,4 @@ -// +build go1.21,!go1.25 +// +build go1.21,!go1.26 // Copyright 2023 CloudWeGo Authors // diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go index 20c115e79..dc86efe08 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/assembler_regabi_amd64.go @@ -1,5 +1,5 @@ -//go:build go1.17 && !go1.25 -// +build go1.17,!go1.25 +//go:build go1.17 && !go1.26 +// +build go1.17,!go1.26 /* * Copyright 2021 ByteDance Inc. @@ -887,6 +887,17 @@ func (self *_Assembler) range_unsigned_CX(i *rt.GoItab, t *rt.GoType, v uint64) self.Sjmp("JA" , _LB_range_error) // JA _range_error } +func (self *_Assembler) range_uint32_CX(i *rt.GoItab, t *rt.GoType) { + self.Emit("MOVQ" , _VAR_st_Iv, _CX) // MOVQ st.Iv, CX + self.Emit("MOVQ" , jit.Gitab(i), _ET) // MOVQ ${i}, ET + self.Emit("MOVQ" , jit.Gtype(t), _EP) // MOVQ ${t}, EP + self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX + self.Sjmp("JS" , _LB_range_error) // JS _range_error + self.Emit("MOVL" , _CX, _DX) // MOVL CX, DX + self.Emit("CMPQ" , _CX, _DX) // CMPQ CX, DX + self.Sjmp("JNE" , _LB_range_error) // JNZ _range_error +} + /** String Manipulating Routines **/ var ( @@ -1453,7 +1464,7 @@ func (self *_Assembler) _asm_OP_u16(_ *_Instr) { func (self *_Assembler) _asm_OP_u32(_ *_Instr) { var pin = "_u32_end_{n}" self.parse_unsigned(uint32Type, pin, -1) // PARSE uint32 - self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 + self.range_uint32_CX(_I_uint32, _T_uint32) // RANGE uint32 self.Emit("MOVL", _CX, jit.Ptr(_VP, 0)) // MOVL CX, (VP) self.Link(pin) } diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go index 51a850a8a..2cb41f08d 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.25 +// +build go1.17,!go1.26 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s index f287eaeb4..a08f0e2ad 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s +++ b/vendor/github.com/bytedance/sonic/internal/decoder/jitdec/generic_regabi_amd64_test.s @@ -1,4 +1,4 @@ -// +build go1.17,!go1.25 +// +build go1.17,!go1.26 // // Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go b/vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go index 61faa6c80..0683f45ae 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/optdec/helper.go @@ -28,11 +28,6 @@ func SkipNumberFast(json string, start int) (int, bool) { return pos, true } - -func isSpace(c byte) bool { - return c == ' ' || c == '\t' || c == '\n' || c == '\r' -} - // pos is the start index of the raw func ValidNumberFast(raw string) bool { ret := utils.SkipNumber(raw, 0) @@ -48,22 +43,12 @@ func ValidNumberFast(raw string) bool { return true } -func SkipOneFast2(json string, pos *int) (int, error) { - // find the number ending, we parsed in sonic-cpp, it always valid - start := native.SkipOneFast(&json, pos) - if start < 0 { - return -1, error_syntax(*pos, json, types.ParsingError(-start).Error()) - } - return start, nil -} - func SkipOneFast(json string, pos int) (string, error) { - // find the number ending, we parsed in sonic-cpp, it always valid start := native.SkipOneFast(&json, &pos) if start < 0 { - // TODO: details error code return "", error_syntax(pos, json, types.ParsingError(-start).Error()) } + return json[start:pos], nil } diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go b/vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go index 090afac13..4664d90ca 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/alg/mapiter.go @@ -84,15 +84,24 @@ func (self *MapIterator) data() (p []_MapPair) { func (self *MapIterator) append(t *rt.GoType, k unsafe.Pointer, v unsafe.Pointer) (err error) { p := self.add() p.v = v + tk := t.Kind() - /* check for strings */ - if tk := t.Kind(); tk != reflect.String { - return self.appendGeneric(p, t, tk, k) + // followed as `encoding/json/emcode.go:resolveKeyName + if tk == reflect.String { + p.k = *(*string)(k) + return nil } - /* fast path for strings */ - p.k = *(*string)(k) - return nil + // check if the key implements the encoding.TextMarshaler interface + if t.Pack().Implements(vars.EncodingTextMarshalerType) { + if tk != reflect.Interface { + return self.appendConcrete(p, t, k) + } else { + return self.appendInterface(p, t, k) + } + } + + return self.appendGeneric(p, t, tk, k) } func (self *MapIterator) appendGeneric(p *_MapPair, t *rt.GoType, v reflect.Kind, k unsafe.Pointer) error { @@ -109,34 +118,43 @@ func (self *MapIterator) appendGeneric(p *_MapPair, t *rt.GoType, v reflect.Kind case reflect.Uint64 : p.k = rt.Mem2Str(strconv.AppendUint(p.m[:0], uint64(*(*uint64)(k)), 10)) ; return nil case reflect.Uintptr : p.k = rt.Mem2Str(strconv.AppendUint(p.m[:0], uint64(*(*uintptr)(k)), 10)) ; return nil case reflect.Bool : if *(*bool)(k) { p.k = "true" } else { p.k = "false" }; return nil - case reflect.Interface : return self.appendInterface(p, t, k) - case reflect.Struct, reflect.Ptr : return self.appendConcrete(p, t, k) - default : panic("unexpected map key type") + default : return vars.Error_type(t.Pack()) } } -func (self *MapIterator) appendConcrete(p *_MapPair, t *rt.GoType, k unsafe.Pointer) (err error) { +func (self *MapIterator) appendConcrete(p *_MapPair, t *rt.GoType, k unsafe.Pointer) error { // compiler has already checked that the type implements the encoding.MarshalText interface if !t.Indirect() { k = *(*unsafe.Pointer)(k) } + + // check the TextMarshaler interface eface := rt.GoEface{Value: k, Type: t}.Pack() - out, err := eface.(encoding.TextMarshaler).MarshalText() + e, ok := eface.(encoding.TextMarshaler) + if !ok { + return vars.Error_type(t.Pack()) + } + + // check for nil pointer + if t.Kind() == reflect.Ptr && k == nil { + p.k = "" + return nil + } + + out, err := e.MarshalText() if err != nil { return err } p.k = rt.Mem2Str(out) - return + return nil } func (self *MapIterator) appendInterface(p *_MapPair, t *rt.GoType, k unsafe.Pointer) (err error) { if len(rt.IfaceType(t).Methods) == 0 { panic("unexpected map key type") - } else if p.k, err = asText(k); err == nil { - return nil - } else { - return } + p.k, err = asText(k) + return } func IteratorStop(p *MapIterator) { @@ -206,3 +224,62 @@ func asText(v unsafe.Pointer) (string, error) { r, e := (*(*encoding.TextMarshaler)(unsafe.Pointer(&text))).MarshalText() return rt.Mem2Str(r), e } + +func IsValidNumber(s string) bool { + // This function implements the JSON numbers grammar. + // See https://tools.ietf.org/html/rfc7159#section-6 + // and https://www.json.org/img/number.png + + if s == "" { + return false + } + + // Optional - + if s[0] == '-' { + s = s[1:] + if s == "" { + return false + } + } + + // Digits + switch { + default: + return false + + case s[0] == '0': + s = s[1:] + + case '1' <= s[0] && s[0] <= '9': + s = s[1:] + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + } + } + + // . followed by 1 or more digits. + if len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' { + s = s[2:] + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + } + } + + // e or E followed by an optional - or + and + // 1 or more digits. + if len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') { + s = s[1:] + if s[0] == '+' || s[0] == '-' { + s = s[1:] + if s == "" { + return false + } + } + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + } + } + + // Make sure we are at the end. + return s == "" +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go b/vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go deleted file mode 100644 index e2610fbc8..000000000 --- a/vendor/github.com/bytedance/sonic/internal/encoder/alg/primitives.go +++ /dev/null @@ -1,104 +0,0 @@ -/** - * Copyright 2024 ByteDance Inc. - * - * 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 alg - -import ( - "encoding" - "encoding/json" - "reflect" - "unsafe" - - "github.com/bytedance/sonic/internal/encoder/vars" - "github.com/bytedance/sonic/internal/resolver" - "github.com/bytedance/sonic/internal/rt" -) - -func Compact(p *[]byte, v []byte) error { - buf := vars.NewBuffer() - err := json.Compact(buf, v) - - /* check for errors */ - if err != nil { - return err - } - - /* add to result */ - v = buf.Bytes() - *p = append(*p, v...) - - /* return the buffer into pool */ - vars.FreeBuffer(buf) - return nil -} - -func EncodeNil(rb *[]byte) error { - *rb = append(*rb, 'n', 'u', 'l', 'l') - return nil -} - -// func Make_EncodeTypedPointer(computor func(*rt.GoType, ...interface{}) (interface{}, error)) func(*[]byte, *rt.GoType, *unsafe.Pointer, *vars.Stack, uint64) error { -// return func(buf *[]byte, vt *rt.GoType, vp *unsafe.Pointer, sb *vars.Stack, fv uint64) error { -// if vt == nil { -// return EncodeNil(buf) -// } else if fn, err := vars.FindOrCompile(vt, (fv&(1< 0 { + sp = unsafe.Pointer(uintptr(sp) + uintptr(ret)) + } } runtime.KeepAlive(buf) diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go b/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go index cd8369834..cd9beab04 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/alg/spec_compat.go @@ -1,4 +1,4 @@ -// +build !amd64,!arm64 go1.25 !go1.16 arm64,!go1.20 +// +build !amd64,!arm64 go1.26 !go1.16 arm64,!go1.20 /** * Copyright 2024 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go b/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go index 737dd3e07..eeeb119cc 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/compiler.go @@ -287,6 +287,12 @@ func (self *Compiler) compileMapBody(p *ir.Program, sp int, vt reflect.Type) { } func (self *Compiler) compileMapBodyKey(p *ir.Program, vk reflect.Type) { + // followed as `encoding/json/emcode.go:resolveKeyName + if vk.Kind() == reflect.String { + self.compileString(p, vk) + return + } + if !vk.Implements(vars.EncodingTextMarshalerType) { self.compileMapBodyTextKey(p, vk) } else { diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go index 4cba1a168..9e675a536 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go @@ -28,6 +28,7 @@ import ( "github.com/bytedance/sonic/internal/encoder/vars" "github.com/bytedance/sonic/internal/rt" "github.com/bytedance/sonic/option" + "github.com/bytedance/gopkg/lang/dirtmake" ) // Options is a set of encoding options. @@ -193,7 +194,7 @@ func Encode(val interface{}, opts Options) ([]byte, error) { /* make a copy of the result */ if rt.CanSizeResue(cap(*buf)) { - ret = make([]byte, len(*buf)) + ret = dirtmake.Bytes(len(*buf), len(*buf)) copy(ret, *buf) vars.FreeBytes(buf) } else { diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/prim/primitives.go b/vendor/github.com/bytedance/sonic/internal/encoder/prim/primitives.go new file mode 100644 index 000000000..ec4d2f5ca --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/encoder/prim/primitives.go @@ -0,0 +1,105 @@ +/** + * Copyright 2024 ByteDance Inc. + * + * 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 prim + +import ( + "encoding" + "encoding/json" + "reflect" + "unsafe" + + "github.com/bytedance/sonic/internal/encoder/alg" + "github.com/bytedance/sonic/internal/encoder/vars" + "github.com/bytedance/sonic/internal/resolver" + "github.com/bytedance/sonic/internal/rt" +) + +func Compact(p *[]byte, v []byte) error { + buf := vars.NewBuffer() + err := json.Compact(buf, v) + + /* check for errors */ + if err != nil { + return err + } + + /* add to result */ + v = buf.Bytes() + *p = append(*p, v...) + + /* return the buffer into pool */ + vars.FreeBuffer(buf) + return nil +} + +func EncodeNil(rb *[]byte) error { + *rb = append(*rb, 'n', 'u', 'l', 'l') + return nil +} + +// func Make_EncodeTypedPointer(computor func(*rt.GoType, ...interface{}) (interface{}, error)) func(*[]byte, *rt.GoType, *unsafe.Pointer, *vars.Stack, uint64) error { +// return func(buf *[]byte, vt *rt.GoType, vp *unsafe.Pointer, sb *vars.Stack, fv uint64) error { +// if vt == nil { +// return EncodeNil(buf) +// } else if fn, err := vars.FindOrCompile(vt, (fv&(1< maxJSONLength { + sb.WriteString(buf[len(buf)-maxJSONLength:]) + } else { + sb.WriteString(buf) + } + panic(sb.String()) +} + +var maxJSONLength = 1024 + +func init() { + if v := os.Getenv("SONIC_PANIC_MAX_JSON_LENGTH"); v != "" { + if i, err := strconv.Atoi(v); err == nil { + maxJSONLength = i + } } } diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/vm/stbus.go b/vendor/github.com/bytedance/sonic/internal/encoder/vm/stbus.go index 21b476c3c..152c72ca1 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/vm/stbus.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/vm/stbus.go @@ -22,13 +22,14 @@ import ( "github.com/bytedance/sonic/internal/encoder/alg" "github.com/bytedance/sonic/internal/encoder/ir" + "github.com/bytedance/sonic/internal/encoder/prim" "github.com/bytedance/sonic/internal/encoder/vars" "github.com/bytedance/sonic/internal/rt" ) func EncodeTypedPointer(buf *[]byte, vt *rt.GoType, vp *unsafe.Pointer, sb *vars.Stack, fv uint64) error { if vt == nil { - return alg.EncodeNil(buf) + return prim.EncodeNil(buf) } else if pp, err := vars.FindOrCompile(vt, (fv&(1< 0 { + current, next = next, current[:0] + count, nextCount = nextCount, map[reflect.Type]int{} + + for _, f := range current { + if visited[f.typ] { + continue + } + visited[f.typ] = true + + // Scan f.typ for fields to include. + for i := 0; i < f.typ.NumField(); i++ { + sf := f.typ.Field(i) + if sf.Anonymous { + t := sf.Type + if t.Kind() == reflect.Pointer { + t = t.Elem() + } + if !sf.IsExported() && t.Kind() != reflect.Struct { + // Ignore embedded fields of unexported non-struct types. + continue + } + // Do not ignore embedded fields of unexported struct types + // since they may have exported fields. + } else if !sf.IsExported() { + // Ignore unexported non-embedded fields. + continue + } + tag := sf.Tag.Get("json") + if tag == "-" { + continue + } + name, opts := parseTag(tag) + if !isValidTag(name) { + name = "" + } + index := make([]int, len(f.index)+1) + copy(index, f.index) + index[len(f.index)] = i + + ft := sf.Type + if ft.Name() == "" && ft.Kind() == reflect.Pointer { + // Follow pointer. + ft = ft.Elem() + } + + // Only strings, floats, integers, and booleans can be quoted. + quoted := false + if opts.Contains("string") { + switch ft.Kind() { + case reflect.Bool, + reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, + reflect.Float32, reflect.Float64, + reflect.String: + quoted = true + } + } + + // Record found field and index sequence. + if name != "" || !sf.Anonymous || ft.Kind() != reflect.Struct { + tagged := name != "" + if name == "" { + name = sf.Name + } + field := StdField{ + name: name, + tag: tagged, + index: index, + typ: ft, + omitEmpty: opts.Contains("omitempty"), + omitZero: opts.Contains("omitzero"), + quoted: quoted, + } + field.nameBytes = []byte(field.name) + + // Build nameEscHTML and nameNonEsc ahead of time. + nameEscBuf = alg.HtmlEscape(nameEscBuf[:0], field.nameBytes) + field.nameEscHTML = `"` + string(nameEscBuf) + `":` + field.nameNonEsc = `"` + field.name + `":` + + if field.omitZero { + t := sf.Type + // Provide a function that uses a type's IsZero method. + switch { + case t.Kind() == reflect.Interface && t.Implements(isZeroerType): + field.isZero = func(v reflect.Value) bool { + // Avoid panics calling IsZero on a nil interface or + // non-nil interface with nil pointer. + return v.IsNil() || + (v.Elem().Kind() == reflect.Pointer && v.Elem().IsNil()) || + v.Interface().(isZeroer).IsZero() + } + case t.Kind() == reflect.Pointer && t.Implements(isZeroerType): + field.isZero = func(v reflect.Value) bool { + // Avoid panics calling IsZero on nil pointer. + return v.IsNil() || v.Interface().(isZeroer).IsZero() + } + case t.Implements(isZeroerType): + field.isZero = func(v reflect.Value) bool { + return v.Interface().(isZeroer).IsZero() + } + case reflect.PointerTo(t).Implements(isZeroerType): + field.isZero = func(v reflect.Value) bool { + if !v.CanAddr() { + // Temporarily box v so we can take the address. + v2 := reflect.New(v.Type()).Elem() + v2.Set(v) + v = v2 + } + return v.Addr().Interface().(isZeroer).IsZero() + } + } + } + + fields = append(fields, field) + if count[f.typ] > 1 { + // If there were multiple instances, add a second, + // so that the annihilation code will see a duplicate. + // It only cares about the distinction between 1 and 2, + // so don't bother generating any more copies. + fields = append(fields, fields[len(fields)-1]) + } + continue + } + + // Record new anonymous struct to explore in next round. + nextCount[ft]++ + if nextCount[ft] == 1 { + next = append(next, StdField{name: ft.Name(), index: index, typ: ft}) + } + } + } + } + + sort.Slice(fields, func(i, j int) bool { + a, b := fields[i], fields[j] + // sort field by name, breaking ties with depth, then + // breaking ties with "name came from json tag", then + // breaking ties with index sequence. + if c := strings.Compare(a.name, b.name); c != 0 { + return c < 0 + } + if len(a.index) != len(b.index) { + return len(a.index) < len(b.index) + } + if a.tag != b.tag { + if a.tag { + return true + } + return false + } + return compare(a.index, b.index) < 0 + }) + + // Delete all fields that are hidden by the Go rules for embedded fields, + // except that fields with JSON tags are promoted. + + // The fields are sorted in primary order of name, secondary order + // of field index length. Loop over names; for each name, delete + // hidden fields by choosing the one dominant field that survives. + out := fields[:0] + for advance, i := 0, 0; i < len(fields); i += advance { + // One iteration per name. + // Find the sequence of fields with the name of this first field. + fi := fields[i] + name := fi.name + for advance = 1; i+advance < len(fields); advance++ { + fj := fields[i+advance] + if fj.name != name { + break + } + } + if advance == 1 { // Only one field with this name + out = append(out, fi) + continue + } + dominant, ok := dominantField(fields[i : i+advance]) + if ok { + out = append(out, dominant) + } + } + + fields = out + sort.Slice(fields, func(i, j int) bool { + a, b := fields[i], fields[j] + return compare(a.index, b.index) < 0 + }) + + exactNameIndex := make(map[string]*StdField, len(fields)) + foldedNameIndex := make(map[string]*StdField, len(fields)) + for i, field := range fields { + exactNameIndex[field.name] = &fields[i] + // For historical reasons, first folded match takes precedence. + if _, ok := foldedNameIndex[string(foldName(field.nameBytes))]; !ok { + foldedNameIndex[string(foldName(field.nameBytes))] = &fields[i] + } + } + return StdStructFields{fields, exactNameIndex, foldedNameIndex} +} + +func compare(s1, s2 []int) int { + for i, v1 := range s1 { + if i >= len(s2) { + return +1 + } + v2 := s2[i] + if v1 != v2 { + return v1 - v2 + } + } + if len(s1) < len(s2) { + return -1 + } + return 0 +} + +type isZeroer interface { + IsZero() bool +} + +var isZeroerType = reflect.TypeOf((*isZeroer)(nil)).Elem() + +// tagOptions is the string following a comma in a struct field's "json" +// tag, or the empty string. It does not include the leading comma. +type tagOptions string + +// parseTag splits a struct field's json tag into its name and +// comma-separated options. +func parseTag(tag string) (string, tagOptions) { + tag, opt, _ := strings.Cut(tag, ",") + return tag, tagOptions(opt) +} + +// Contains reports whether a comma-separated list of options +// contains a particular substr flag. substr must be surrounded by a +// string boundary or commas. +func (o tagOptions) Contains(optionName string) bool { + if len(o) == 0 { + return false + } + s := string(o) + for s != "" { + var name string + name, s, _ = strings.Cut(s, ",") + if name == optionName { + return true + } + } + return false +} + +func isValidTag(s string) bool { + if s == "" { + return false + } + for _, c := range s { + switch { + case strings.ContainsRune("!#$%&()*+-./:;<=>?@[]^_{|}~ ", c): + // Backslash and quote chars are reserved, but + // otherwise any punctuation chars are allowed + // in a tag name. + case !unicode.IsLetter(c) && !unicode.IsDigit(c): + return false + } + } + return true +} + +// dominantField looks through the fields, all of which are known to +// have the same name, to find the single field that dominates the +// others using Go's embedding rules, modified by the presence of +// JSON tags. If there are multiple top-level fields, the boolean +// will be false: This condition is an error in Go and we skip all +// the fields. +func dominantField(fields []StdField) (StdField, bool) { + // The fields are sorted in increasing index-length order, then by presence of tag. + // That means that the first field is the dominant one. We need only check + // for error cases: two fields at top level, either both tagged or neither tagged. + if len(fields) > 1 && len(fields[0].index) == len(fields[1].index) && fields[0].tag == fields[1].tag { + return StdField{}, false + } + return fields[0], true +} + + +// foldName returns a folded string such that foldName(x) == foldName(y) +// is identical to bytes.EqualFold(x, y). +func foldName(in []byte) []byte { + // This is inlinable to take advantage of "function outlining". + var arr [32]byte // large enough for most JSON names + return appendFoldedName(arr[:0], in) +} + +func appendFoldedName(out, in []byte) []byte { + for i := 0; i < len(in); { + // Handle single-byte ASCII. + if c := in[i]; c < utf8.RuneSelf { + if 'a' <= c && c <= 'z' { + c -= 'a' - 'A' + } + out = append(out, c) + i++ + continue + } + // Handle multi-byte Unicode. + r, n := utf8.DecodeRune(in[i:]) + out = utf8.AppendRune(out, foldRune(r)) + i += n + } + return out +} + +// foldRune is returns the smallest rune for all runes in the same fold set. +func foldRune(r rune) rune { + for { + r2 := unicode.SimpleFold(r) + if r2 <= r { + return r2 + } + r = r2 + } +} diff --git a/vendor/github.com/bytedance/sonic/internal/resolver/resolver.go b/vendor/github.com/bytedance/sonic/internal/resolver/resolver.go index 1c30ad113..4303c6744 100644 --- a/vendor/github.com/bytedance/sonic/internal/resolver/resolver.go +++ b/vendor/github.com/bytedance/sonic/internal/resolver/resolver.go @@ -21,6 +21,7 @@ import ( "reflect" "strings" "sync" + _ "unsafe" ) type FieldOpts int @@ -216,3 +217,10 @@ func ResolveStruct(vt reflect.Type) []FieldMeta { fieldCache[vt] = fm return fm } + +func handleOmitZero(fv StdField, fm *FieldMeta) { + if fv.omitZero { + fm.Opts |= F_omitzero + fm.IsZero = fv.isZero + } +} diff --git a/vendor/github.com/bytedance/sonic/internal/resolver/stubs_go120.go b/vendor/github.com/bytedance/sonic/internal/resolver/stubs_go120.go deleted file mode 100644 index c0276f544..000000000 --- a/vendor/github.com/bytedance/sonic/internal/resolver/stubs_go120.go +++ /dev/null @@ -1,51 +0,0 @@ -//go:build !go1.21 -// +build !go1.21 - -/* - * Copyright 2021 ByteDance Inc. - * - * 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 resolver - -import ( - _ `encoding/json` - `reflect` - _ `unsafe` -) - -type StdField struct { - name string - nameBytes []byte - equalFold func() - nameNonEsc string - nameEscHTML string - tag bool - index []int - typ reflect.Type - omitEmpty bool - quoted bool - encoder func() -} - -type StdStructFields struct { - list []StdField - nameIndex map[string]int -} - -//go:noescape -//go:linkname typeFields encoding/json.typeFields -func typeFields(_ reflect.Type) StdStructFields - -func handleOmitZero(f StdField, fv *FieldMeta) {} diff --git a/vendor/github.com/bytedance/sonic/internal/resolver/stubs_go123.go b/vendor/github.com/bytedance/sonic/internal/resolver/stubs_go123.go deleted file mode 100644 index a73f024f5..000000000 --- a/vendor/github.com/bytedance/sonic/internal/resolver/stubs_go123.go +++ /dev/null @@ -1,51 +0,0 @@ -//go:build go1.21 && !go1.24 -// +build go1.21,!go1.24 - -/* - * Copyright 2021 ByteDance Inc. - * - * 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 resolver - -import ( - _ `encoding/json` - `reflect` - _ `unsafe` -) - -type StdField struct { - name string - nameBytes []byte - nameNonEsc string - nameEscHTML string - tag bool - index []int - typ reflect.Type - omitEmpty bool - quoted bool - encoder func() -} - -type StdStructFields struct { - list []StdField - nameIndex map[string]*StdField - byFoldedName map[string]*StdField -} - -//go:noescape -//go:linkname typeFields encoding/json.typeFields -func typeFields(_ reflect.Type) StdStructFields - -func handleOmitZero(f StdField, fv *FieldMeta) {} diff --git a/vendor/github.com/bytedance/sonic/internal/resolver/stubs_latest.go b/vendor/github.com/bytedance/sonic/internal/resolver/stubs_latest.go deleted file mode 100644 index b9486a699..000000000 --- a/vendor/github.com/bytedance/sonic/internal/resolver/stubs_latest.go +++ /dev/null @@ -1,59 +0,0 @@ -//go:build go1.24 -// +build go1.24 - -/* - * Copyright 2021 ByteDance Inc. - * - * 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 resolver - -import ( - _ `encoding/json` - `reflect` - _ `unsafe` -) - -type StdField struct { - name string - nameBytes []byte - nameNonEsc string - nameEscHTML string - tag bool - index []int - typ reflect.Type - omitEmpty bool - omitZero bool - isZero func(reflect.Value) bool - quoted bool - encoder func() -} - -type StdStructFields struct { - list []StdField - nameIndex map[string]*StdField - byFoldedName map[string]*StdField -} - -//go:noescape -//go:linkname typeFields encoding/json.typeFields -func typeFields(_ reflect.Type) StdStructFields - -func handleOmitZero(fv StdField, fm *FieldMeta) { - if fv.omitZero { - fm.Opts |= F_omitzero - fm.IsZero = fv.isZero - } -} - diff --git a/vendor/github.com/bytedance/sonic/internal/rt/base64_amd64.go b/vendor/github.com/bytedance/sonic/internal/rt/base64_amd64.go index ec5ea88a0..9b0cfca72 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/base64_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/base64_amd64.go @@ -1,4 +1,4 @@ -// +build amd64,go1.17,!go1.25 +// +build amd64,go1.17,!go1.26 package rt diff --git a/vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go b/vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go index bd3150fe0..e6abcb57d 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/base64_compat.go @@ -1,4 +1,4 @@ -// +build !amd64 !go1.17 go1.25 +// +build !amd64 !go1.17 go1.26 package rt diff --git a/vendor/github.com/bytedance/sonic/internal/rt/gcwb.go b/vendor/github.com/bytedance/sonic/internal/rt/gcwb.go index bd3e4ef26..c9ad5fb2f 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/gcwb.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/gcwb.go @@ -1,4 +1,4 @@ -// +build go1.21,!go1.25 +// +build go1.21,!go1.26 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/rt/map_nosiwss_go124.go b/vendor/github.com/bytedance/sonic/internal/rt/map_nosiwss_go124.go index 8ecb9878e..8dda15bb8 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/map_nosiwss_go124.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/map_nosiwss_go124.go @@ -1,5 +1,5 @@ -//go:build go1.24 && !go1.25 && !goexperiment.swissmap -// +build go1.24,!go1.25,!goexperiment.swissmap +//go:build go1.24 && !go1.26 && !goexperiment.swissmap +// +build go1.24,!go1.26,!goexperiment.swissmap package rt diff --git a/vendor/github.com/bytedance/sonic/internal/rt/map_siwss_go124.go b/vendor/github.com/bytedance/sonic/internal/rt/map_siwss_go124.go index b5bf7803c..6a7907691 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/map_siwss_go124.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/map_siwss_go124.go @@ -1,5 +1,5 @@ -//go:build go1.24 && !go1.25 && goexperiment.swissmap -// +build go1.24,!go1.25,goexperiment.swissmap +//go:build go1.24 && !go1.26 && goexperiment.swissmap +// +build go1.24,!go1.26,goexperiment.swissmap package rt diff --git a/vendor/github.com/bytedance/sonic/internal/rt/stubs.go b/vendor/github.com/bytedance/sonic/internal/rt/stubs.go index f692f1563..553f0f982 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/stubs.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/stubs.go @@ -38,9 +38,6 @@ func Mapiterinit(t *GoMapType, m unsafe.Pointer, it *GoMapIterator) //go:linkname Maplen reflect.maplen func Maplen(h unsafe.Pointer) int -//go:linkname IsValidNumber encoding/json.isValidNumber -func IsValidNumber(s string) bool - //go:nosplit //go:linkname MemclrHasPointers runtime.memclrHasPointers //goland:noinspection GoUnusedParameter diff --git a/vendor/github.com/bytedance/sonic/internal/utils/skip.go b/vendor/github.com/bytedance/sonic/internal/utils/skip.go index e42bfe759..1ae77195b 100644 --- a/vendor/github.com/bytedance/sonic/internal/utils/skip.go +++ b/vendor/github.com/bytedance/sonic/internal/utils/skip.go @@ -76,4 +76,12 @@ func SkipNumber(src string, pos int) (ret int) { runtime.KeepAlive(src) return int(uintptr(sp) - uintptr((*rt.GoString)(unsafe.Pointer(&src)).Ptr)) -} \ No newline at end of file +} + +// Hack: this is used for both checking space and cause friendly compile errors in 32-bit arch. +const _Sonic_Not_Support_32Bit_Arch__Checking_32Bit_Arch_Here = (1 << ' ') | (1 << '\t') | (1 << '\r') | (1 << '\n') + + +func IsSpace(c byte) bool { + return (int(1< len(xregOrderC) { diff --git a/vendor/github.com/bytedance/sonic/loader/internal/iasm/expr/errors.go b/vendor/github.com/bytedance/sonic/loader/internal/iasm/expr/errors.go index 791c18bd6..ca27b04c7 100644 --- a/vendor/github.com/bytedance/sonic/loader/internal/iasm/expr/errors.go +++ b/vendor/github.com/bytedance/sonic/loader/internal/iasm/expr/errors.go @@ -37,7 +37,7 @@ func (self *SyntaxError) Error() string { return fmt.Sprintf("Syntax error at position %d: %s", self.Pos, self.Reason) } -// RuntimeError is an error which would occure at run time. +// RuntimeError is an error which would occur at run time. type RuntimeError struct { Reason string } diff --git a/vendor/github.com/bytedance/sonic/loader/internal/iasm/x86_64/program.go b/vendor/github.com/bytedance/sonic/loader/internal/iasm/x86_64/program.go index bf7d3a1dc..1c0c7cc00 100644 --- a/vendor/github.com/bytedance/sonic/loader/internal/iasm/x86_64/program.go +++ b/vendor/github.com/bytedance/sonic/loader/internal/iasm/x86_64/program.go @@ -112,7 +112,7 @@ func (self *_Pseudo) evalExpr(low int64, high int64) int64 { func (self *_Pseudo) alignSize(pc uintptr) int { if !ispow2(self.uint) { - panic(fmt.Sprintf("aligment should be a power of 2, not %d", self.uint)) + panic(fmt.Sprintf("alignment should be a power of 2, not %d", self.uint)) } else { return align(int(pc), bits.TrailingZeros64(self.uint)) - int(pc) } @@ -469,7 +469,7 @@ func (self *Program) Free() { // Link pins a label at the current position. func (self *Program) Link(p *Label) { if p.Dest != nil { - panic("lable was alreay linked") + panic("label was already linked") } else { p.Dest = self.pseudo(_PseudoNop) } diff --git a/vendor/github.com/bytedance/sonic/sonic.go b/vendor/github.com/bytedance/sonic/sonic.go index 9645d5e08..3a5aff22f 100644 --- a/vendor/github.com/bytedance/sonic/sonic.go +++ b/vendor/github.com/bytedance/sonic/sonic.go @@ -1,5 +1,5 @@ -//go:build (amd64 && go1.17 && !go1.25) || (arm64 && go1.20 && !go1.25) -// +build amd64,go1.17,!go1.25 arm64,go1.20,!go1.25 +//go:build (amd64 && go1.17 && !go1.26) || (arm64 && go1.20 && !go1.26) +// +build amd64,go1.17,!go1.26 arm64,go1.20,!go1.26 /* * Copyright 2021 ByteDance Inc. @@ -17,7 +17,6 @@ * limitations under the License. */ -//go:generate make package sonic import ( diff --git a/vendor/github.com/bytedance/sonic/unquote/unquote.go b/vendor/github.com/bytedance/sonic/unquote/unquote.go index 29b2fcde8..6c8c0c80f 100644 --- a/vendor/github.com/bytedance/sonic/unquote/unquote.go +++ b/vendor/github.com/bytedance/sonic/unquote/unquote.go @@ -1,3 +1,7 @@ +//go:build (amd64 && go1.17 && !go1.26) || (arm64 && go1.20 && !go1.26) +// +build amd64,go1.17,!go1.26 arm64,go1.20,!go1.26 + + /* * Copyright 2021 ByteDance Inc. * diff --git a/vendor/github.com/bytedance/sonic/unquote/unquote_fallback.go b/vendor/github.com/bytedance/sonic/unquote/unquote_fallback.go new file mode 100644 index 000000000..41e28f067 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/unquote/unquote_fallback.go @@ -0,0 +1,206 @@ +// +build !amd64,!arm64 go1.26 !go1.17 arm64,!go1.20 + +/* + * Copyright 2021 ByteDance Inc. + * + * 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 unquote + +import ( + "unicode" + "unicode/utf16" + "unicode/utf8" + + "github.com/bytedance/sonic/internal/rt" + "github.com/bytedance/sonic/internal/native/types" +) + +// getu4 decodes \uXXXX from the beginning of s, returning the hex value, +// or it returns -1. +func getu4(s []byte) rune { + if len(s) < 6 || s[0] != '\\' || s[1] != 'u' { + return -1 + } + var r rune + for _, c := range s[2:6] { + switch { + case '0' <= c && c <= '9': + c = c - '0' + case 'a' <= c && c <= 'f': + c = c - 'a' + 10 + case 'A' <= c && c <= 'F': + c = c - 'A' + 10 + default: + return -1 + } + r = r*16 + rune(c) + } + return r +} + + +// unquoteBytes is a fallback implementation copied from Go standard library +// encoding/json/decode.go. This is used when native unquote is not available. +func unquoteBytes(s []byte) (t []byte, ok bool) { + // Check for unusual characters. If there are none, + // then no unquoting is needed, so return a slice of the + // original bytes. + r := 0 + for r < len(s) { + c := s[r] + if c == '\\' || c == '"' || c < ' ' { + break + } + if c < utf8.RuneSelf { + r++ + continue + } + rr, size := utf8.DecodeRune(s[r:]) + if rr == utf8.RuneError && size == 1 { + break + } + r += size + } + if r == len(s) { + return s, true + } + + b := make([]byte, len(s)+2*utf8.UTFMax) + w := copy(b, s[0:r]) + for r < len(s) { + // Out of room? Can only happen if s is full of + // malformed UTF-8 and we're replacing each + // byte with RuneError. + if w >= len(b)-2*utf8.UTFMax { + nb := make([]byte, (len(b)+utf8.UTFMax)*2) + copy(nb, b[0:w]) + b = nb + } + switch c := s[r]; { + case c == '\\': + r++ + if r >= len(s) { + return + } + switch s[r] { + default: + return + case '"', '\\', '/', '\'': + b[w] = s[r] + r++ + w++ + case 'b': + b[w] = '\b' + r++ + w++ + case 'f': + b[w] = '\f' + r++ + w++ + case 'n': + b[w] = '\n' + r++ + w++ + case 'r': + b[w] = '\r' + r++ + w++ + case 't': + b[w] = '\t' + r++ + w++ + case 'u': + r-- + rr := getu4(s[r:]) + if rr < 0 { + return + } + r += 6 + if utf16.IsSurrogate(rr) { + rr1 := getu4(s[r:]) + if dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar { + // A valid pair; consume. + r += 6 + w += utf8.EncodeRune(b[w:], dec) + break + } + // Invalid surrogate; fall back to replacement rune. + rr = unicode.ReplacementChar + } + w += utf8.EncodeRune(b[w:], rr) + } + + // Quote, control characters are invalid. + case c == '"', c < ' ': + return + + // ASCII + case c < utf8.RuneSelf: + b[w] = c + r++ + w++ + + // Coerce to well-formed UTF-8. + default: + rr, size := utf8.DecodeRune(s[r:]) + r += size + w += utf8.EncodeRune(b[w:], rr) + } + } + return b[0:w], true +} + + +// getu4Fallback decodes a 4-byte hex sequence from the beginning of s. +// It is copied from Go standard library encoding/json.decode.go. +func getu4Fallback(s []byte) rune { + if len(s) < 6 || s[0] != '\\' || s[1] != 'u' { + return -1 + } + var r rune + for _, c := range s[2:6] { + switch { + case '0' <= c && c <= '9': + c = c - '0' + case 'a' <= c && c <= 'f': + c = c - 'a' + 10 + case 'A' <= c && c <= 'F': + c = c - 'A' + 10 + default: + return -1 + } + r = r*16 + rune(c) + } + return r +} + + +// String unescapes an escaped string (not including `"` at beginning and end) +// It validates invalid UTF8 and replace with `\ufffd` +func String(s string) (ret string, err types.ParsingError) { + // Convert string to []byte and use fallback implementation + sBytes := rt.Str2Mem(s) + result, ok := unquoteBytes(sBytes) + if !ok { + return "", types.ERR_INVALID_ESCAPE + } + return string(result), 0 +} + +// String unescapes an escaped string (not including `"` at beginning and end) +// - replace enables replacing invalid utf8 escaped char with `\uffd` +func _String(s string, _replace bool) (ret string, err error) { + return String(s) +} diff --git a/vendor/github.com/bytedance/sonic/utf8/utf8.go b/vendor/github.com/bytedance/sonic/utf8/utf8.go index c1403fdb2..71403028e 100644 --- a/vendor/github.com/bytedance/sonic/utf8/utf8.go +++ b/vendor/github.com/bytedance/sonic/utf8/utf8.go @@ -1,3 +1,6 @@ +//go:build (amd64 && go1.17 && !go1.26) || (arm64 && go1.20 && !go1.26) +// +build amd64,go1.17,!go1.26 arm64,go1.20,!go1.26 + /* * Copyright 2022 ByteDance Inc. * diff --git a/vendor/github.com/bytedance/sonic/utf8/utf8_fallback.go b/vendor/github.com/bytedance/sonic/utf8/utf8_fallback.go new file mode 100644 index 000000000..bd12fcd1c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/utf8/utf8_fallback.go @@ -0,0 +1,37 @@ +// +build !amd64,!arm64 go1.26 !go1.17 arm64,!go1.20 + +/* + * Copyright 2021 ByteDance Inc. + * + * 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 utf8 + +import ( + "unicode/utf8" + + "github.com/bytedance/sonic/internal/rt" +) + +// ValidateFallback validates UTF-8 encoded bytes using standard library. +// This is used when native UTF-8 validation is not available. +func Validate(src []byte) bool { + return utf8.Valid(src) +} + +// ValidateStringFallback validates UTF-8 encoded string using standard library. +// This is used when native UTF-8 validation is not available. +func ValidateString(src string) bool { + return utf8.Valid(rt.Str2Mem(src)) +} diff --git a/vendor/github.com/cloudwego/base64x/.licenserc.yaml b/vendor/github.com/cloudwego/base64x/.licenserc.yaml index f969fec26..8f65d8f65 100644 --- a/vendor/github.com/cloudwego/base64x/.licenserc.yaml +++ b/vendor/github.com/cloudwego/base64x/.licenserc.yaml @@ -8,7 +8,7 @@ header: - '**/*.s' paths-ignore: - - 'native_subr_amd64.go' - - 'native_text_amd64.go' + - 'internal/native/avx2/*.go' + - 'internal/native/sse/*.go' comment: on-failure diff --git a/vendor/github.com/coreos/go-oidc/v3/oidc/jwks.go b/vendor/github.com/coreos/go-oidc/v3/oidc/jwks.go index 6a846ece9..c5e4d787c 100644 --- a/vendor/github.com/coreos/go-oidc/v3/oidc/jwks.go +++ b/vendor/github.com/coreos/go-oidc/v3/oidc/jwks.go @@ -11,7 +11,6 @@ import ( "io" "net/http" "sync" - "time" jose "github.com/go-jose/go-jose/v4" ) @@ -57,16 +56,12 @@ func (s *StaticKeySet) VerifySignature(ctx context.Context, jwt string) ([]byte, // The returned KeySet is a long lived verifier that caches keys based on any // keys change. Reuse a common remote key set instead of creating new ones as needed. func NewRemoteKeySet(ctx context.Context, jwksURL string) *RemoteKeySet { - return newRemoteKeySet(ctx, jwksURL, time.Now) + return newRemoteKeySet(ctx, jwksURL) } -func newRemoteKeySet(ctx context.Context, jwksURL string, now func() time.Time) *RemoteKeySet { - if now == nil { - now = time.Now - } +func newRemoteKeySet(ctx context.Context, jwksURL string) *RemoteKeySet { return &RemoteKeySet{ jwksURL: jwksURL, - now: now, // For historical reasons, this package uses contexts for configuration, not just // cancellation. In hindsight, this was a bad idea. // @@ -81,7 +76,6 @@ func newRemoteKeySet(ctx context.Context, jwksURL string, now func() time.Time) // a jwks_uri endpoint. type RemoteKeySet struct { jwksURL string - now func() time.Time // Used for configuration. Cancelation is ignored. ctx context.Context diff --git a/vendor/github.com/gabriel-vasile/mimetype/CODE_OF_CONDUCT.md b/vendor/github.com/gabriel-vasile/mimetype/CODE_OF_CONDUCT.md deleted file mode 100644 index 8479cd87d..000000000 --- a/vendor/github.com/gabriel-vasile/mimetype/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at vasile.gabriel@email.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/vendor/github.com/gabriel-vasile/mimetype/CONTRIBUTING.md b/vendor/github.com/gabriel-vasile/mimetype/CONTRIBUTING.md deleted file mode 100644 index 56ae4e57c..000000000 --- a/vendor/github.com/gabriel-vasile/mimetype/CONTRIBUTING.md +++ /dev/null @@ -1,12 +0,0 @@ -## Contribute -Contributions to **mimetype** are welcome. If you find an issue and you consider -contributing, you can use the [Github issues tracker](https://github.com/gabriel-vasile/mimetype/issues) -in order to report it, or better yet, open a pull request. - -Code contributions must respect these rules: - - code must be test covered - - code must be formatted using gofmt tool - - exported names must be documented - -**Important**: By submitting a pull request, you agree to allow the project -owner to license your work under the same license as that used by the project. diff --git a/vendor/github.com/gabriel-vasile/mimetype/README.md b/vendor/github.com/gabriel-vasile/mimetype/README.md index aa88b4bda..f28f56c9b 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/README.md +++ b/vendor/github.com/gabriel-vasile/mimetype/README.md @@ -27,6 +27,7 @@ - possibility to [extend](https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-Extend) with other file formats - common file formats are prioritized - [text vs. binary files differentiation](https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-TextVsBinary) +- no external dependencies - safe for concurrent usage ## Install @@ -45,8 +46,7 @@ fmt.Println(mtype.String(), mtype.Extension()) ``` See the [runnable Go Playground examples](https://pkg.go.dev/github.com/gabriel-vasile/mimetype#pkg-overview). -## Usage' -Only use libraries like **mimetype** as a last resort. Content type detection +Caution: only use libraries like **mimetype** as a last resort. Content type detection using magic numbers is slow, inaccurate, and non-standard. Most of the times protocols have methods for specifying such metadata; e.g., `Content-Type` header in HTTP and SMTP. @@ -67,6 +67,18 @@ mimetype.DetectFile("file.doc") If increasing the limit does not help, please [open an issue](https://github.com/gabriel-vasile/mimetype/issues/new?assignees=&labels=&template=mismatched-mime-type-detected.md&title=). +## Tests +In addition to unit tests, +[mimetype_tests](https://github.com/gabriel-vasile/mimetype_tests) compares the +library with the [Unix file utility](https://en.wikipedia.org/wiki/File_(command)) +for around 50 000 sample files. Check the latest comparison results +[here](https://github.com/gabriel-vasile/mimetype_tests/actions). + +## Benchmarks +Benchmarks for each file format are performed when a PR is open. The results can +be seen on the [workflows page](https://github.com/gabriel-vasile/mimetype/actions/workflows/benchmark.yml). +Performance improvements are welcome but correctness is prioritized. + ## Structure **mimetype** uses a hierarchical structure to keep the MIME type detection logic. This reduces the number of calls needed for detecting the file type. The reason @@ -84,19 +96,8 @@ or from a [file](https://pkg.go.dev/github.com/gabriel-vasile/mimetype#DetectFil how project is structured -## Performance -Thanks to the hierarchical structure, searching for common formats first, -and limiting itself to file headers, **mimetype** matches the performance of -stdlib `http.DetectContentType` while outperforming the alternative package. - -```bash - mimetype http.DetectContentType filetype -BenchmarkMatchTar-24 250 ns/op 400 ns/op 3778 ns/op -BenchmarkMatchZip-24 524 ns/op 351 ns/op 4884 ns/op -BenchmarkMatchJpeg-24 103 ns/op 228 ns/op 839 ns/op -BenchmarkMatchGif-24 139 ns/op 202 ns/op 751 ns/op -BenchmarkMatchPng-24 165 ns/op 221 ns/op 1176 ns/op -``` - ## Contributing -See [CONTRIBUTING.md](CONTRIBUTING.md). +Contributions are unexpected but welcome. When submitting a PR for detection of +a new file format, please make sure to add a record to the list of testcases +from [mimetype_test.go](mimetype_test.go). For complex files a record can be added +in the [testdata](testdata) directory. diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/charset/charset.go b/vendor/github.com/gabriel-vasile/mimetype/internal/charset/charset.go index 0647f730e..8c5a05e4d 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/internal/charset/charset.go +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/charset/charset.go @@ -2,11 +2,10 @@ package charset import ( "bytes" - "encoding/xml" - "strings" "unicode/utf8" - "golang.org/x/net/html" + "github.com/gabriel-vasile/mimetype/internal/markup" + "github.com/gabriel-vasile/mimetype/internal/scan" ) const ( @@ -141,20 +140,31 @@ func FromXML(content []byte) string { } return FromPlain(content) } -func fromXML(content []byte) string { - content = trimLWS(content) - dec := xml.NewDecoder(bytes.NewReader(content)) - rawT, err := dec.RawToken() - if err != nil { - return "" - } - - t, ok := rawT.(xml.ProcInst) - if !ok { - return "" +func fromXML(s scan.Bytes) string { + xml := []byte(" 0 && line[n-1] == '\r' { + return line[:n-1], false // drop \r at end of line + } + + // This line is problematic. The logic from CountFields comes from + // encoding/csv.Reader which relies on mutating the input bytes. + // https://github.com/golang/go/blob/b3251514531123d7fd007682389bce7428d159a0/src/encoding/csv/reader.go#L275-L279 + // To avoid mutating the input, we return cutShort. #680 + if n >= 2 && line[n-2] == '\r' && line[n-1] == '\n' { + return line[:n-2], true + } + return line, false +} + +// CountFields reads one CSV line and counts how many records that line contained. +// hasMore reports whether there are more lines in the input. +// collectIndexes makes CountFields return a list of indexes where CSV fields +// start in the line. These indexes are used to test the correctness against the +// encoding/csv parser. +func (r *Parser) CountFields(collectIndexes bool) (fields int, fieldPos []int, hasMore bool) { + finished := false + var line scan.Bytes + cutShort := false + for { + line, cutShort = r.readLine() + if finished { + return 0, nil, false + } + finished = len(r.s) == 0 && len(line) == 0 + if len(line) == lengthNL(line) { + line = nil + continue // Skip empty lines. + } + if len(line) > 0 && line[0] == r.comment { + line = nil + continue + } + break + } + + indexes := []int{} + originalLine := line +parseField: + for { + if len(line) == 0 || line[0] != '"' { // non-quoted string field + fields++ + if collectIndexes { + indexes = append(indexes, len(originalLine)-len(line)) + } + i := bytes.IndexByte(line, r.comma) + if i >= 0 { + line.Advance(i + 1) // 1 to get over ending comma + continue parseField + } + break parseField + } else { // Quoted string field. + if collectIndexes { + indexes = append(indexes, len(originalLine)-len(line)) + } + line.Advance(1) // get over starting quote + for { + i := bytes.IndexByte(line, '"') + if i >= 0 { + line.Advance(i + 1) // 1 for ending quote + switch rn := line.Peek(); { + case rn == '"': + line.Advance(1) + case rn == r.comma: + line.Advance(1) + fields++ + continue parseField + case lengthNL(line) == len(line): + fields++ + break parseField + } + } else if len(line) > 0 || cutShort { + line, cutShort = r.readLine() + originalLine = line + } else { + fields++ + break parseField + } + } + } + } + + return fields, indexes, fields != 0 +} + +// lengthNL reports the number of bytes for the trailing \n. +func lengthNL(b []byte) int { + if len(b) > 0 && b[len(b)-1] == '\n' { + return 1 + } + return 0 +} diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/json/parser.go b/vendor/github.com/gabriel-vasile/mimetype/internal/json/parser.go index fd8dd5202..4bc861743 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/internal/json/parser.go +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/json/parser.go @@ -258,7 +258,7 @@ out: } func (p *parserState) consumeArray(b []byte, qs []query, lvl int) (n int) { - p.currPath = append(p.currPath, []byte{'['}) + p.appendPath([]byte{'['}, qs) if len(b) == 0 { return 0 } @@ -270,7 +270,7 @@ func (p *parserState) consumeArray(b []byte, qs []query, lvl int) (n int) { } if b[n] == ']' { p.ib++ - p.currPath = p.currPath[:len(p.currPath)-1] + p.popLastPath(qs) return n + 1 } innerParsed := p.consumeAny(b[n:], qs, lvl) @@ -305,6 +305,20 @@ func queryPathMatch(qs []query, path [][]byte) int { return -1 } +// appendPath will append a path fragment if queries is not empty. +// If we don't need query functionality (just checking if a JSON is valid), +// then we can skip keeping track of the path we're currently in. +func (p *parserState) appendPath(path []byte, qs []query) { + if len(qs) != 0 { + p.currPath = append(p.currPath, path) + } +} +func (p *parserState) popLastPath(qs []query) { + if len(qs) != 0 { + p.currPath = p.currPath[:len(p.currPath)-1] + } +} + func (p *parserState) consumeObject(b []byte, qs []query, lvl int) (n int) { for n < len(b) { n += p.consumeSpace(b[n:]) @@ -326,7 +340,7 @@ func (p *parserState) consumeObject(b []byte, qs []query, lvl int) (n int) { if keyLen := p.consumeString(b[n:]); keyLen == 0 { return 0 } else { - p.currPath = append(p.currPath, b[n:n+keyLen-1]) + p.appendPath(b[n:n+keyLen-1], qs) if !p.querySatisfied { queryMatched = queryPathMatch(qs, p.currPath) } @@ -368,12 +382,12 @@ func (p *parserState) consumeObject(b []byte, qs []query, lvl int) (n int) { } switch b[n] { case ',': - p.currPath = p.currPath[:len(p.currPath)-1] + p.popLastPath(qs) n++ p.ib++ continue case '}': - p.currPath = p.currPath[:len(p.currPath)-1] + p.popLastPath(qs) p.ib++ return n + 1 default: @@ -388,6 +402,9 @@ func (p *parserState) consumeAny(b []byte, qs []query, lvl int) (n int) { if p.maxRecursion != 0 && lvl > p.maxRecursion { return 0 } + if len(qs) == 0 { + p.querySatisfied = true + } n += p.consumeSpace(b) if len(b[n:]) == 0 { return 0 @@ -426,9 +443,6 @@ func (p *parserState) consumeAny(b []byte, qs []query, lvl int) (n int) { if lvl == 0 { p.firstToken = t } - if len(qs) == 0 { - p.querySatisfied = true - } if rv <= 0 { return n } diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/document.go b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/document.go index b3b26d5a1..7f9308db3 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/document.go +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/document.go @@ -1,18 +1,11 @@ package magic -import "bytes" +import ( + "bytes" + "encoding/binary" +) var ( - // Pdf matches a Portable Document Format file. - // https://github.com/file/file/blob/11010cc805546a3e35597e67e1129a481aed40e8/magic/Magdir/pdf - Pdf = prefix( - // usual pdf signature - []byte("%PDF-"), - // new-line prefixed signature - []byte("\012%PDF-"), - // UTF-8 BOM prefixed signature - []byte("\xef\xbb\xbf%PDF-"), - ) // Fdf matches a Forms Data Format file. Fdf = prefix([]byte("%FDF")) // Mobi matches a Mobi file. @@ -21,8 +14,18 @@ var ( Lit = prefix([]byte("ITOLITLS")) ) +// PDF matches a Portable Document Format file. +// The %PDF- header should be the first thing inside the file but many +// implementations don't follow the rule. The PDF spec at Appendix H says the +// signature can be prepended by anything. +// https://bugs.astron.com/view.php?id=446 +func PDF(raw []byte, _ uint32) bool { + raw = raw[:min(len(raw), 1024)] + return bytes.Contains(raw, []byte("%PDF-")) +} + // DjVu matches a DjVu file. -func DjVu(raw []byte, limit uint32) bool { +func DjVu(raw []byte, _ uint32) bool { if len(raw) < 12 { return false } @@ -36,7 +39,7 @@ func DjVu(raw []byte, limit uint32) bool { } // P7s matches an .p7s signature File (PEM, Base64). -func P7s(raw []byte, limit uint32) bool { +func P7s(raw []byte, _ uint32) bool { // Check for PEM Encoding. if bytes.HasPrefix(raw, []byte("-----BEGIN PKCS7")) { return true @@ -60,3 +63,21 @@ func P7s(raw []byte, limit uint32) bool { return false } + +// Lotus123 matches a Lotus 1-2-3 spreadsheet document. +func Lotus123(raw []byte, _ uint32) bool { + if len(raw) <= 20 { + return false + } + version := binary.BigEndian.Uint32(raw) + if version == 0x00000200 { + return raw[6] != 0 && raw[7] == 0 + } + + return version == 0x00001a00 && raw[20] > 0 && raw[20] < 32 +} + +// CHM matches a Microsoft Compiled HTML Help file. +func CHM(raw []byte, _ uint32) bool { + return bytes.HasPrefix(raw, []byte("ITSF\003\000\000\000\x60\000\000\000")) +} diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/magic.go b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/magic.go index a34c60984..5fe435b99 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/magic.go +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/magic.go @@ -4,6 +4,8 @@ package magic import ( "bytes" "fmt" + + "github.com/gabriel-vasile/mimetype/internal/scan" ) type ( @@ -74,12 +76,13 @@ func ciCheck(sig, raw []byte) bool { // matches the raw input. func xml(sigs ...xmlSig) Detector { return func(raw []byte, limit uint32) bool { - raw = trimLWS(raw) - if len(raw) == 0 { + b := scan.Bytes(raw) + b.TrimLWS() + if len(b) == 0 { return false } for _, s := range sigs { - if xmlCheck(s, raw) { + if xmlCheck(s, b) { return true } } @@ -104,19 +107,19 @@ func xmlCheck(sig xmlSig, raw []byte) bool { // matches the raw input. func markup(sigs ...[]byte) Detector { return func(raw []byte, limit uint32) bool { - if bytes.HasPrefix(raw, []byte{0xEF, 0xBB, 0xBF}) { + b := scan.Bytes(raw) + if bytes.HasPrefix(b, []byte{0xEF, 0xBB, 0xBF}) { // We skip the UTF-8 BOM if present to ensure we correctly // process any leading whitespace. The presence of the BOM // is taken into account during charset detection in charset.go. - raw = trimLWS(raw[3:]) - } else { - raw = trimLWS(raw) + b.Advance(3) } - if len(raw) == 0 { + b.TrimLWS() + if len(b) == 0 { return false } for _, s := range sigs { - if markupCheck(s, raw) { + if markupCheck(s, b) { return true } } @@ -139,7 +142,7 @@ func markupCheck(sig, raw []byte) bool { } } // Next byte must be space or right angle bracket. - if db := raw[len(sig)]; db != ' ' && db != '>' { + if db := raw[len(sig)]; !scan.ByteIsWS(db) && db != '>' { return false } @@ -183,8 +186,10 @@ func newXMLSig(localName, xmlns string) xmlSig { // /usr/bin/env is the interpreter, php is the first and only argument. func shebang(sigs ...[]byte) Detector { return func(raw []byte, limit uint32) bool { + b := scan.Bytes(raw) + line := b.Line() for _, s := range sigs { - if shebangCheck(s, firstLine(raw)) { + if shebangCheck(s, line) { return true } } @@ -192,7 +197,7 @@ func shebang(sigs ...[]byte) Detector { } } -func shebangCheck(sig, raw []byte) bool { +func shebangCheck(sig []byte, raw scan.Bytes) bool { if len(raw) < len(sig)+2 { return false } @@ -200,52 +205,8 @@ func shebangCheck(sig, raw []byte) bool { return false } - return bytes.Equal(trimLWS(trimRWS(raw[2:])), sig) -} - -// trimLWS trims whitespace from beginning of the input. -func trimLWS(in []byte) []byte { - firstNonWS := 0 - for ; firstNonWS < len(in) && isWS(in[firstNonWS]); firstNonWS++ { - } - - return in[firstNonWS:] -} - -// trimRWS trims whitespace from the end of the input. -func trimRWS(in []byte) []byte { - lastNonWS := len(in) - 1 - for ; lastNonWS > 0 && isWS(in[lastNonWS]); lastNonWS-- { - } - - return in[:lastNonWS+1] -} - -func firstLine(in []byte) []byte { - lineEnd := 0 - for ; lineEnd < len(in) && in[lineEnd] != '\n'; lineEnd++ { - } - - return in[:lineEnd] -} - -func isWS(b byte) bool { - return b == '\t' || b == '\n' || b == '\x0c' || b == '\r' || b == ' ' -} - -func min(a, b int) int { - if a < b { - return a - } - return b -} - -type readBuf []byte - -func (b *readBuf) advance(n int) bool { - if n < 0 || len(*b) < n { - return false - } - *b = (*b)[n:] - return true + raw.Advance(2) // skip #! we checked above + raw.TrimLWS() + raw.TrimRWS() + return bytes.Equal(raw, sig) } diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ms_office.go b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ms_office.go index 7d60e22e2..c912823e9 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ms_office.go +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ms_office.go @@ -7,17 +7,34 @@ import ( // Xlsx matches a Microsoft Excel 2007 file. func Xlsx(raw []byte, limit uint32) bool { - return zipContains(raw, []byte("xl/"), true) + return msoxml(raw, zipEntries{{ + name: []byte("xl/"), + dir: true, + }}, 100) } // Docx matches a Microsoft Word 2007 file. func Docx(raw []byte, limit uint32) bool { - return zipContains(raw, []byte("word/"), true) + return msoxml(raw, zipEntries{{ + name: []byte("word/"), + dir: true, + }}, 100) } // Pptx matches a Microsoft PowerPoint 2007 file. func Pptx(raw []byte, limit uint32) bool { - return zipContains(raw, []byte("ppt/"), true) + return msoxml(raw, zipEntries{{ + name: []byte("ppt/"), + dir: true, + }}, 100) +} + +// Visio matches a Microsoft Visio 2013+ file. +func Visio(raw []byte, limit uint32) bool { + return msoxml(raw, zipEntries{{ + name: []byte("visio/"), + dir: true, + }}, 100) } // Ole matches an Open Linking and Embedding file. @@ -157,6 +174,14 @@ func Msi(raw []byte, limit uint32) bool { }) } +// One matches a Microsoft OneNote file. +func One(raw []byte, limit uint32) bool { + return bytes.HasPrefix(raw, []byte{ + 0xe4, 0x52, 0x5c, 0x7b, 0x8c, 0xd8, 0xa7, 0x4d, + 0xae, 0xb1, 0x53, 0x78, 0xd0, 0x29, 0x96, 0xd3, + }) +} + // Helper to match by a specific CLSID of a compound file. // // http://fileformats.archiveteam.org/wiki/Microsoft_Compound_File diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/netpbm.go b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/netpbm.go new file mode 100644 index 000000000..4baa25767 --- /dev/null +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/netpbm.go @@ -0,0 +1,111 @@ +package magic + +import ( + "bytes" + "strconv" + + "github.com/gabriel-vasile/mimetype/internal/scan" +) + +// NetPBM matches a Netpbm Portable BitMap ASCII/Binary file. +// +// See: https://en.wikipedia.org/wiki/Netpbm +func NetPBM(raw []byte, _ uint32) bool { + return netp(raw, "P1\n", "P4\n") +} + +// NetPGM matches a Netpbm Portable GrayMap ASCII/Binary file. +// +// See: https://en.wikipedia.org/wiki/Netpbm +func NetPGM(raw []byte, _ uint32) bool { + return netp(raw, "P2\n", "P5\n") +} + +// NetPPM matches a Netpbm Portable PixMap ASCII/Binary file. +// +// See: https://en.wikipedia.org/wiki/Netpbm +func NetPPM(raw []byte, _ uint32) bool { + return netp(raw, "P3\n", "P6\n") +} + +// NetPAM matches a Netpbm Portable Arbitrary Map file. +// +// See: https://en.wikipedia.org/wiki/Netpbm +func NetPAM(raw []byte, _ uint32) bool { + if !bytes.HasPrefix(raw, []byte("P7\n")) { + return false + } + w, h, d, m, e := false, false, false, false, false + s := scan.Bytes(raw) + var l scan.Bytes + // Read line by line. + for i := 0; i < 128; i++ { + l = s.Line() + // If the line is empty or a comment, skip. + if len(l) == 0 || l.Peek() == '#' { + if len(s) == 0 { + return false + } + continue + } else if bytes.HasPrefix(l, []byte("TUPLTYPE")) { + continue + } else if bytes.HasPrefix(l, []byte("WIDTH ")) { + w = true + } else if bytes.HasPrefix(l, []byte("HEIGHT ")) { + h = true + } else if bytes.HasPrefix(l, []byte("DEPTH ")) { + d = true + } else if bytes.HasPrefix(l, []byte("MAXVAL ")) { + m = true + } else if bytes.HasPrefix(l, []byte("ENDHDR")) { + e = true + } + // When we reached header, return true if we collected all four required headers. + // WIDTH, HEIGHT, DEPTH and MAXVAL. + if e { + return w && h && d && m + } + } + return false +} + +func netp(s scan.Bytes, prefixes ...string) bool { + foundPrefix := "" + for _, p := range prefixes { + if bytes.HasPrefix(s, []byte(p)) { + foundPrefix = p + } + } + if foundPrefix == "" { + return false + } + s.Advance(len(foundPrefix)) // jump over P1, P2, P3, etc. + + var l scan.Bytes + // Read line by line. + for i := 0; i < 128; i++ { + l = s.Line() + // If the line is a comment, skip. + if l.Peek() == '#' { + continue + } + // If line has leading whitespace, then skip over whitespace. + for scan.ByteIsWS(l.Peek()) { + l.Advance(1) + } + if len(s) == 0 || len(l) > 0 { + break + } + } + + // At this point l should be the two integers denoting the size of the matrix. + width := l.PopUntil(scan.ASCIISpaces...) + for scan.ByteIsWS(l.Peek()) { + l.Advance(1) + } + height := l.PopUntil(scan.ASCIISpaces...) + + w, errw := strconv.ParseInt(string(width), 10, 64) + h, errh := strconv.ParseInt(string(height), 10, 64) + return errw == nil && errh == nil && w > 0 && h > 0 +} diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text.go b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text.go index 8178e4707..1841ee871 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text.go +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text.go @@ -6,6 +6,8 @@ import ( "github.com/gabriel-vasile/mimetype/internal/charset" "github.com/gabriel-vasile/mimetype/internal/json" + mkup "github.com/gabriel-vasile/mimetype/internal/markup" + "github.com/gabriel-vasile/mimetype/internal/scan" ) var ( @@ -27,6 +29,7 @@ var ( []byte(" +// +// +// +func svgWithoutXMLDeclaration(s scan.Bytes) bool { + for scan.ByteIsWS(s.Peek()) { + s.Advance(1) + } + for mkup.SkipAComment(&s) { + } + if !bytes.HasPrefix(s, []byte(" +// +// +// +func svgWithXMLDeclaration(s scan.Bytes) bool { + for scan.ByteIsWS(s.Peek()) { + s.Advance(1) + } + if !bytes.HasPrefix(s, []byte(" 4096 { + s = s[:4096] + } + return hasVersion && bytes.Contains(s, []byte(" 00:02:19,376) limits second line // length to exactly 29 characters. if len(line) != 29 { @@ -266,7 +380,7 @@ func Srt(raw []byte, _ uint32) bool { return false } - line, _ = scanLine(raw) + line = s.Line() // A third line must exist and not be empty. This is the actual subtitle text. return len(line) != 0 } @@ -295,15 +409,3 @@ func Vtt(raw []byte, limit uint32) bool { return bytes.Equal(raw, []byte{0xEF, 0xBB, 0xBF, 0x57, 0x45, 0x42, 0x56, 0x54, 0x54}) || // UTF-8 BOM and "WEBVTT" bytes.Equal(raw, []byte{0x57, 0x45, 0x42, 0x56, 0x54, 0x54}) // "WEBVTT" } - -// dropCR drops a terminal \r from the data. -func dropCR(data []byte) []byte { - if len(data) > 0 && data[len(data)-1] == '\r' { - return data[0 : len(data)-1] - } - return data -} -func scanLine(b []byte) (line, remainder []byte) { - line, remainder, _ = bytes.Cut(b, []byte("\n")) - return dropCR(line), remainder -} diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text_csv.go b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text_csv.go index 6083ba8c0..020b5ee75 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text_csv.go +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/text_csv.go @@ -1,77 +1,43 @@ package magic import ( - "bufio" - "bytes" - "encoding/csv" - "errors" - "io" - "sync" + "github.com/gabriel-vasile/mimetype/internal/csv" + "github.com/gabriel-vasile/mimetype/internal/scan" ) -// A bufio.Reader pool to alleviate problems with memory allocations. -var readerPool = sync.Pool{ - New: func() any { - // Initiate with empty source reader. - return bufio.NewReader(nil) - }, -} - -func newReader(r io.Reader) *bufio.Reader { - br := readerPool.Get().(*bufio.Reader) - br.Reset(r) - return br -} - -// Csv matches a comma-separated values file. -func Csv(raw []byte, limit uint32) bool { +// CSV matches a comma-separated values file. +func CSV(raw []byte, limit uint32) bool { return sv(raw, ',', limit) } -// Tsv matches a tab-separated values file. -func Tsv(raw []byte, limit uint32) bool { +// TSV matches a tab-separated values file. +func TSV(raw []byte, limit uint32) bool { return sv(raw, '\t', limit) } -func sv(in []byte, comma rune, limit uint32) bool { - in = dropLastLine(in, limit) - - br := newReader(bytes.NewReader(in)) - defer readerPool.Put(br) - r := csv.NewReader(br) - r.Comma = comma - r.ReuseRecord = true - r.LazyQuotes = true - r.Comment = '#' +func sv(in []byte, comma byte, limit uint32) bool { + s := scan.Bytes(in) + s.DropLastLine(limit) + r := csv.NewParser(comma, '#', s) - lines := 0 + headerFields, _, hasMore := r.CountFields(false) + if headerFields < 2 || !hasMore { + return false + } + csvLines := 1 // 1 for header for { - _, err := r.Read() - if errors.Is(err, io.EOF) { + fields, _, hasMore := r.CountFields(false) + if !hasMore && fields == 0 { break } - if err != nil { + csvLines++ + if fields != headerFields { return false } - lines++ - } - - return r.FieldsPerRecord > 1 && lines > 1 -} - -// dropLastLine drops the last incomplete line from b. -// -// mimetype limits itself to ReadLimit bytes when performing a detection. -// This means, for file formats like CSV for NDJSON, the last line of the input -// can be an incomplete line. -func dropLastLine(b []byte, readLimit uint32) []byte { - if readLimit == 0 || uint32(len(b)) < readLimit { - return b - } - for i := len(b) - 1; i > 0; i-- { - if b[i] == '\n' { - return b[:i] + if csvLines >= 10 { + return true } } - return b + + return csvLines >= 2 } diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/zip.go b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/zip.go index f6c64829d..17750e6e6 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/internal/magic/zip.go +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/magic/zip.go @@ -2,7 +2,8 @@ package magic import ( "bytes" - "encoding/binary" + + "github.com/gabriel-vasile/mimetype/internal/scan" ) var ( @@ -40,92 +41,149 @@ func Zip(raw []byte, limit uint32) bool { (raw[3] == 0x4 || raw[3] == 0x6 || raw[3] == 0x8) } -// Jar matches a Java archive file. +// Jar matches a Java archive file. There are two types of Jar files: +// 1. the ones that can be opened with jexec and have 0xCAFE optional flag +// https://stackoverflow.com/tags/executable-jar/info +// 2. regular jars, same as above, just without the executable flag +// https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262278#c0 +// There is an argument to only check for manifest, since it's the common nominator +// for both executable and non-executable versions. But the traversing zip entries +// is unreliable because it does linear search for signatures +// (instead of relying on offsets told by the file.) func Jar(raw []byte, limit uint32) bool { - return zipContains(raw, []byte("META-INF/MANIFEST.MF"), false) + return executableJar(raw) || + zipHas(raw, zipEntries{{ + name: []byte("META-INF/MANIFEST.MF"), + }, { + name: []byte("META-INF/"), + }}, 1) } -func zipContains(raw, sig []byte, msoCheck bool) bool { - b := readBuf(raw) - pk := []byte("PK\003\004") - if len(b) < 0x1E { - return false - } +// KMZ matches a zipped KML file, which is "doc.kml" by convention. +func KMZ(raw []byte, _ uint32) bool { + return zipHas(raw, zipEntries{{ + name: []byte("doc.kml"), + }}, 100) +} - if !b.advance(0x1E) { +// An executable Jar has a 0xCAFE flag enabled in the first zip entry. +// The rule from file/file is: +// >(26.s+30) leshort 0xcafe Java archive data (JAR) +func executableJar(b scan.Bytes) bool { + b.Advance(0x1A) + offset, ok := b.Uint16() + if !ok { return false } - if bytes.HasPrefix(b, sig) { - return true - } + b.Advance(int(offset) + 2) - if msoCheck { - skipFiles := [][]byte{ - []byte("[Content_Types].xml"), - []byte("_rels/.rels"), - []byte("docProps"), - []byte("customXml"), - []byte("[trash]"), - } + cafe, ok := b.Uint16() + return ok && cafe == 0xCAFE +} - hasSkipFile := false - for _, sf := range skipFiles { - if bytes.HasPrefix(b, sf) { - hasSkipFile = true - break - } +// zipIterator iterates over a zip file returning the name of the zip entries +// in that file. +type zipIterator struct { + b scan.Bytes +} + +type zipEntries []struct { + name []byte + dir bool // dir means checking just the prefix of the entry, not the whole path +} + +func (z zipEntries) match(file []byte) bool { + for i := range z { + if z[i].dir && bytes.HasPrefix(file, z[i].name) { + return true } - if !hasSkipFile { - return false + if bytes.Equal(file, z[i].name) { + return true } } + return false +} - searchOffset := binary.LittleEndian.Uint32(raw[18:]) + 49 - if !b.advance(int(searchOffset)) { - return false +func zipHas(raw scan.Bytes, searchFor zipEntries, stopAfter int) bool { + iter := zipIterator{raw} + for i := 0; i < stopAfter; i++ { + f := iter.next() + if len(f) == 0 { + break + } + if searchFor.match(f) { + return true + } } - nextHeader := bytes.Index(raw[searchOffset:], pk) - if !b.advance(nextHeader) { - return false - } - if bytes.HasPrefix(b, sig) { - return true - } + return false +} - for i := 0; i < 4; i++ { - if !b.advance(0x1A) { - return false +// msoxml behaves like zipHas, but it puts restrictions on what the first zip +// entry can be. +func msoxml(raw scan.Bytes, searchFor zipEntries, stopAfter int) bool { + iter := zipIterator{raw} + for i := 0; i < stopAfter; i++ { + f := iter.next() + if len(f) == 0 { + break } - nextHeader = bytes.Index(b, pk) - if nextHeader == -1 { - return false - } - if !b.advance(nextHeader + 0x1E) { - return false - } - if bytes.HasPrefix(b, sig) { + if searchFor.match(f) { return true } + // If the first is not one of the next usually expected entries, + // then abort this check. + if i == 0 { + if !bytes.Equal(f, []byte("[Content_Types].xml")) && + !bytes.Equal(f, []byte("_rels/.rels")) && + !bytes.Equal(f, []byte("docProps")) && + !bytes.Equal(f, []byte("customXml")) && + !bytes.Equal(f, []byte("[trash]")) { + return false + } + } } + return false } -// APK matches an Android Package Archive. -// The source of signatures is https://github.com/file/file/blob/1778642b8ba3d947a779a36fcd81f8e807220a19/magic/Magdir/archive#L1820-L1887 -func APK(raw []byte, _ uint32) bool { - apkSignatures := [][]byte{ - []byte("AndroidManifest.xml"), - []byte("META-INF/com/android/build/gradle/app-metadata.properties"), - []byte("classes.dex"), - []byte("resources.arsc"), - []byte("res/drawable"), +// next extracts the name of the next zip entry. +func (i *zipIterator) next() []byte { + pk := []byte("PK\003\004") + + n := bytes.Index(i.b, pk) + if n == -1 { + return nil } - for _, sig := range apkSignatures { - if zipContains(raw, sig, false) { - return true - } + i.b.Advance(n) + if !i.b.Advance(0x1A) { + return nil + } + l, ok := i.b.Uint16() + if !ok { + return nil + } + if !i.b.Advance(0x02) { + return nil + } + if len(i.b) < int(l) { + return nil } + return i.b[:l] +} - return false +// APK matches an Android Package Archive. +// The source of signatures is https://github.com/file/file/blob/1778642b8ba3d947a779a36fcd81f8e807220a19/magic/Magdir/archive#L1820-L1887 +func APK(raw []byte, _ uint32) bool { + return zipHas(raw, zipEntries{{ + name: []byte("AndroidManifest.xml"), + }, { + name: []byte("META-INF/com/android/build/gradle/app-metadata.properties"), + }, { + name: []byte("classes.dex"), + }, { + name: []byte("resources.arsc"), + }, { + name: []byte("res/drawable"), + }}, 100) } diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/markup/markup.go b/vendor/github.com/gabriel-vasile/mimetype/internal/markup/markup.go new file mode 100644 index 000000000..937fa1da5 --- /dev/null +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/markup/markup.go @@ -0,0 +1,103 @@ +// Package markup implements functions for extracting info from +// HTML and XML documents. +package markup + +import ( + "bytes" + + "github.com/gabriel-vasile/mimetype/internal/scan" +) + +func GetAnAttribute(s *scan.Bytes) (name, val string, hasMore bool) { + for scan.ByteIsWS(s.Peek()) || s.Peek() == '/' { + s.Advance(1) + } + if s.Peek() == '>' { + return "", "", false + } + // Allocate 10 to avoid resizes. + // Attribute names and values are continuous slices of bytes in input, + // so we could do without allocating and returning slices of input. + nameB := make([]byte, 0, 10) + // step 4 and 5 + for { + // bap means byte at position in the specification. + bap := s.Pop() + if bap == 0 { + return "", "", false + } + if bap == '=' && len(nameB) > 0 { + val, hasMore := getAValue(s) + return string(nameB), string(val), hasMore + } else if scan.ByteIsWS(bap) { + for scan.ByteIsWS(s.Peek()) { + s.Advance(1) + } + if s.Peek() != '=' { + return string(nameB), "", true + } + s.Advance(1) + for scan.ByteIsWS(s.Peek()) { + s.Advance(1) + } + val, hasMore := getAValue(s) + return string(nameB), string(val), hasMore + } else if bap == '/' || bap == '>' { + return string(nameB), "", false + } else if bap >= 'A' && bap <= 'Z' { + nameB = append(nameB, bap+0x20) + } else { + nameB = append(nameB, bap) + } + } +} + +func getAValue(s *scan.Bytes) (_ []byte, hasMore bool) { + for scan.ByteIsWS(s.Peek()) { + s.Advance(1) + } + origS, end := *s, 0 + bap := s.Pop() + if bap == 0 { + return nil, false + } + end++ + // Step 10 + switch bap { + case '"', '\'': + val := s.PopUntil(bap) + if s.Pop() != bap { + return nil, false + } + return val, s.Peek() != 0 && s.Peek() != '>' + case '>': + return nil, false + } + + // Step 11 + for { + bap = s.Pop() + if bap == 0 { + return nil, false + } + switch { + case scan.ByteIsWS(bap): + return origS[:end], true + case bap == '>': + return origS[:end], false + default: + end++ + } + } +} + +func SkipAComment(s *scan.Bytes) (skipped bool) { + if bytes.HasPrefix(*s, []byte("")); i != -1 { + s.Advance(i + 2 + 3) // 2 comes from len(). + return true + } + } + return false +} diff --git a/vendor/github.com/gabriel-vasile/mimetype/internal/scan/bytes.go b/vendor/github.com/gabriel-vasile/mimetype/internal/scan/bytes.go new file mode 100644 index 000000000..9f09f0781 --- /dev/null +++ b/vendor/github.com/gabriel-vasile/mimetype/internal/scan/bytes.go @@ -0,0 +1,213 @@ +// Package scan has functions for scanning byte slices. +package scan + +import ( + "bytes" + "encoding/binary" +) + +// Bytes is a byte slice with helper methods for easier scanning. +type Bytes []byte + +func (b *Bytes) Advance(n int) bool { + if n < 0 || len(*b) < n { + return false + } + *b = (*b)[n:] + return true +} + +// TrimLWS trims whitespace from beginning of the bytes. +func (b *Bytes) TrimLWS() { + firstNonWS := 0 + for ; firstNonWS < len(*b) && ByteIsWS((*b)[firstNonWS]); firstNonWS++ { + } + + *b = (*b)[firstNonWS:] +} + +// TrimRWS trims whitespace from the end of the bytes. +func (b *Bytes) TrimRWS() { + lb := len(*b) + for lb > 0 && ByteIsWS((*b)[lb-1]) { + *b = (*b)[:lb-1] + lb-- + } +} + +// Peek one byte from b or 0x00 if b is empty. +func (b *Bytes) Peek() byte { + if len(*b) > 0 { + return (*b)[0] + } + return 0 +} + +// Pop one byte from b or 0x00 if b is empty. +func (b *Bytes) Pop() byte { + if len(*b) > 0 { + ret := (*b)[0] + *b = (*b)[1:] + return ret + } + return 0 +} + +// PopN pops n bytes from b or nil if b is empty. +func (b *Bytes) PopN(n int) []byte { + if len(*b) >= n { + ret := (*b)[:n] + *b = (*b)[n:] + return ret + } + return nil +} + +// PopUntil will advance b until, but not including, the first occurence of stopAt +// character. If no occurence is found, then it will advance until the end of b. +// The returned Bytes is a slice of all the bytes that we're advanced over. +func (b *Bytes) PopUntil(stopAt ...byte) Bytes { + if len(*b) == 0 { + return Bytes{} + } + i := bytes.IndexAny(*b, string(stopAt)) + if i == -1 { + i = len(*b) + } + + prefix := (*b)[:i] + *b = (*b)[i:] + return Bytes(prefix) +} + +// ReadSlice is the same as PopUntil, but the returned value includes stopAt as well. +func (b *Bytes) ReadSlice(stopAt byte) Bytes { + if len(*b) == 0 { + return Bytes{} + } + i := bytes.IndexByte(*b, stopAt) + if i == -1 { + i = len(*b) + } else { + i++ + } + + prefix := (*b)[:i] + *b = (*b)[i:] + return Bytes(prefix) +} + +// Line returns the first line from b and advances b with the length of the +// line. One new line character is trimmed after the line if it exists. +func (b *Bytes) Line() Bytes { + line := b.PopUntil('\n') + lline := len(line) + if lline > 0 && line[lline-1] == '\r' { + line = line[:lline-1] + } + b.Advance(1) + return line +} + +// DropLastLine drops the last incomplete line from b. +// +// mimetype limits itself to ReadLimit bytes when performing a detection. +// This means, for file formats like CSV for NDJSON, the last line of the input +// can be an incomplete line. +// If b length is less than readLimit, it means we received an incomplete file +// and proceed with dropping the last line. +func (b *Bytes) DropLastLine(readLimit uint32) { + if readLimit == 0 || uint32(len(*b)) < readLimit { + return + } + + for i := len(*b) - 1; i > 0; i-- { + if (*b)[i] == '\n' { + *b = (*b)[:i] + return + } + } +} + +func (b *Bytes) Uint16() (uint16, bool) { + if len(*b) < 2 { + return 0, false + } + v := binary.LittleEndian.Uint16(*b) + *b = (*b)[2:] + return v, true +} + +const ( + CompactWS = 1 << iota + IgnoreCase +) + +// Search for occurences of pattern p inside b at any index. +func (b Bytes) Search(p []byte, flags int) int { + if flags == 0 { + return bytes.Index(b, p) + } + + lb, lp := len(b), len(p) + for i := range b { + if lb-i < lp { + return -1 + } + if b[i:].Match(p, flags) { + return i + } + } + + return 0 +} + +// Match pattern p at index 0 of b. +func (b Bytes) Match(p []byte, flags int) bool { + for len(b) > 0 { + // If we finished all we we're looking for from p. + if len(p) == 0 { + return true + } + if flags&IgnoreCase > 0 && isUpper(p[0]) { + if upper(b[0]) != p[0] { + return false + } + b, p = b[1:], p[1:] + } else if flags&CompactWS > 0 && ByteIsWS(p[0]) { + p = p[1:] + if !ByteIsWS(b[0]) { + return false + } + b = b[1:] + if !ByteIsWS(p[0]) { + b.TrimLWS() + } + } else { + if b[0] != p[0] { + return false + } + b, p = b[1:], p[1:] + } + } + return true +} + +func isUpper(c byte) bool { + return c >= 'A' && c <= 'Z' +} +func upper(c byte) byte { + if c >= 'a' && c <= 'z' { + return c - ('a' - 'A') + } + return c +} + +func ByteIsWS(b byte) bool { + return b == '\t' || b == '\n' || b == '\x0c' || b == '\r' || b == ' ' +} + +var ( + ASCIISpaces = []byte{' ', '\r', '\n', '\x0c', '\t'} + ASCIIDigits = []byte{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'} +) diff --git a/vendor/github.com/gabriel-vasile/mimetype/mime.go b/vendor/github.com/gabriel-vasile/mimetype/mime.go index 62cb15f59..b82627a8b 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/mime.go +++ b/vendor/github.com/gabriel-vasile/mimetype/mime.go @@ -103,15 +103,17 @@ func (m *MIME) match(in []byte, readLimit uint32) *MIME { "text/html": charset.FromHTML, "text/xml": charset.FromXML, } - // ps holds optional MIME parameters. - ps := map[string]string{} + charset := "" if f, ok := needsCharset[m.mime]; ok { - if cset := f(in); cset != "" { - ps["charset"] = cset - } + // The charset comes from BOM, from HTML headers, from XML headers. + // Limit the number of bytes searched for to 1024. + charset = f(in[:min(len(in), 1024)]) + } + if m == root { + return m } - return m.cloneHierarchy(ps) + return m.cloneHierarchy(charset) } // flatten transforms an hierarchy of MIMEs into a slice of MIMEs. @@ -125,10 +127,10 @@ func (m *MIME) flatten() []*MIME { } // clone creates a new MIME with the provided optional MIME parameters. -func (m *MIME) clone(ps map[string]string) *MIME { +func (m *MIME) clone(charset string) *MIME { clonedMIME := m.mime - if len(ps) > 0 { - clonedMIME = mime.FormatMediaType(m.mime, ps) + if charset != "" { + clonedMIME = m.mime + "; charset=" + charset } return &MIME{ @@ -140,11 +142,11 @@ func (m *MIME) clone(ps map[string]string) *MIME { // cloneHierarchy creates a clone of m and all its ancestors. The optional MIME // parameters are set on the last child of the hierarchy. -func (m *MIME) cloneHierarchy(ps map[string]string) *MIME { - ret := m.clone(ps) +func (m *MIME) cloneHierarchy(charset string) *MIME { + ret := m.clone(charset) lastChild := ret for p := m.Parent(); p != nil; p = p.Parent() { - pClone := p.clone(nil) + pClone := p.clone("") lastChild.parent = pClone lastChild = pClone } diff --git a/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md b/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md index 6f45bfbb6..3186a8bf0 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md +++ b/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md @@ -1,4 +1,4 @@ -## 179 Supported MIME types +## 191 Supported MIME types This file is automatically generated when running tests. Do not edit manually. Extension | MIME type | Aliases @@ -7,12 +7,12 @@ Extension | MIME type | Aliases **.xpm** | image/x-xpixmap | - **.7z** | application/x-7z-compressed | - **.zip** | application/zip | application/x-zip, application/x-zip-compressed -**.xlsx** | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | - **.docx** | application/vnd.openxmlformats-officedocument.wordprocessingml.document | - **.pptx** | application/vnd.openxmlformats-officedocument.presentationml.presentation | - +**.xlsx** | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | - **.epub** | application/epub+zip | - **.apk** | application/vnd.android.package-archive | - -**.jar** | application/jar | - +**.jar** | application/java-archive | application/jar, application/jar-archive, application/x-java-archive **.odt** | application/vnd.oasis.opendocument.text | application/x-vnd.oasis.opendocument.text **.ott** | application/vnd.oasis.opendocument.text-template | application/x-vnd.oasis.opendocument.text-template **.ods** | application/vnd.oasis.opendocument.spreadsheet | application/x-vnd.oasis.opendocument.spreadsheet @@ -24,6 +24,8 @@ Extension | MIME type | Aliases **.odf** | application/vnd.oasis.opendocument.formula | application/x-vnd.oasis.opendocument.formula **.odc** | application/vnd.oasis.opendocument.chart | application/x-vnd.oasis.opendocument.chart **.sxc** | application/vnd.sun.xml.calc | - +**.kmz** | application/vnd.google-earth.kmz | - +**.vsdx** | application/vnd.ms-visio.drawing.main+xml | - **.pdf** | application/pdf | application/x-pdf **.fdf** | application/vnd.fdf | - **n/a** | application/x-ole-storage | - @@ -61,9 +63,10 @@ Extension | MIME type | Aliases **.tar** | application/x-tar | - **.xar** | application/x-xar | - **.bz2** | application/x-bzip2 | - -**.fits** | application/fits | - +**.fits** | application/fits | image/fits **.tiff** | image/tiff | - **.bmp** | image/bmp | image/x-bmp, image/x-ms-bmp +**.123** | application/vnd.lotus-1-2-3 | - **.ico** | image/x-icon | - **.mp3** | audio/mpeg | audio/x-mpeg, audio/mp3 **.flac** | audio/flac | - @@ -146,9 +149,11 @@ Extension | MIME type | Aliases **.cab** | application/x-installshield | - **.jxr** | image/jxr | image/vnd.ms-photo **.parquet** | application/vnd.apache.parquet | application/x-parquet +**.one** | application/onenote | - +**.chm** | application/vnd.ms-htmlhelp | - **.txt** | text/plain | - -**.html** | text/html | - **.svg** | image/svg+xml | - +**.html** | text/html | - **.xml** | text/xml | application/xml **.rss** | application/rss+xml | text/rss **.atom** | application/atom+xml | - @@ -163,11 +168,13 @@ Extension | MIME type | Aliases **.3mf** | application/vnd.ms-package.3dmanufacturing-3dmodel+xml | - **.xfdf** | application/vnd.adobe.xfdf | - **.owl** | application/owl+xml | - +**.html** | application/xhtml+xml | - **.php** | text/x-php | - **.js** | text/javascript | application/x-javascript, application/javascript **.lua** | text/x-lua | - **.pl** | text/x-perl | - **.py** | text/x-python | text/x-script.python, application/x-python +**.rb** | text/x-ruby | application/x-ruby **.json** | application/json | - **.geojson** | application/geo+json | - **.har** | application/json | - @@ -182,3 +189,8 @@ Extension | MIME type | Aliases **.ics** | text/calendar | - **.warc** | application/warc | - **.vtt** | text/vtt | - +**.sh** | text/x-shellscript | text/x-sh, application/x-shellscript, application/x-sh +**.pbm** | image/x-portable-bitmap | - +**.pgm** | image/x-portable-graymap | - +**.ppm** | image/x-portable-pixmap | - +**.pam** | image/x-portable-arbitrarymap | - diff --git a/vendor/github.com/gabriel-vasile/mimetype/tree.go b/vendor/github.com/gabriel-vasile/mimetype/tree.go index 63a2093a4..edbde8958 100644 --- a/vendor/github.com/gabriel-vasile/mimetype/tree.go +++ b/vendor/github.com/gabriel-vasile/mimetype/tree.go @@ -18,12 +18,13 @@ import ( var root = newMIME("application/octet-stream", "", func([]byte, uint32) bool { return true }, xpm, sevenZ, zip, pdf, fdf, ole, ps, psd, p7s, ogg, png, jpg, jxl, jp2, jpx, - jpm, jxs, gif, webp, exe, elf, ar, tar, xar, bz2, fits, tiff, bmp, ico, mp3, - flac, midi, ape, musePack, amr, wav, aiff, au, mpeg, quickTime, mp4, webM, + jpm, jxs, gif, webp, exe, elf, ar, tar, xar, bz2, fits, tiff, bmp, lotus, ico, + mp3, flac, midi, ape, musePack, amr, wav, aiff, au, mpeg, quickTime, mp4, webM, avi, flv, mkv, asf, aac, voc, m3u, rmvb, gzip, class, swf, crx, ttf, woff, woff2, otf, ttc, eot, wasm, shx, dbf, dcm, rar, djvu, mobi, lit, bpg, cbor, sqlite3, dwg, nes, lnk, macho, qcp, icns, hdr, mrc, mdb, accdb, zstd, cab, rpm, xz, lzip, torrent, cpio, tzif, xcf, pat, gbr, glb, cabIS, jxr, parquet, + oneNote, chm, // Keep text last because it is the slowest check. text, ) @@ -48,22 +49,24 @@ var ( // This means APK should be a child of JAR detector, but in practice, // the decisive signature for JAR might be located at the end of the file // and not reachable because of library readLimit. - zip = newMIME("application/zip", ".zip", magic.Zip, xlsx, docx, pptx, epub, apk, jar, odt, ods, odp, odg, odf, odc, sxc). + zip = newMIME("application/zip", ".zip", magic.Zip, docx, pptx, xlsx, epub, apk, jar, odt, ods, odp, odg, odf, odc, sxc, kmz, visio). alias("application/x-zip", "application/x-zip-compressed") tar = newMIME("application/x-tar", ".tar", magic.Tar) xar = newMIME("application/x-xar", ".xar", magic.Xar) bz2 = newMIME("application/x-bzip2", ".bz2", magic.Bz2) - pdf = newMIME("application/pdf", ".pdf", magic.Pdf). + pdf = newMIME("application/pdf", ".pdf", magic.PDF). alias("application/x-pdf") - fdf = newMIME("application/vnd.fdf", ".fdf", magic.Fdf) - xlsx = newMIME("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ".xlsx", magic.Xlsx) - docx = newMIME("application/vnd.openxmlformats-officedocument.wordprocessingml.document", ".docx", magic.Docx) - pptx = newMIME("application/vnd.openxmlformats-officedocument.presentationml.presentation", ".pptx", magic.Pptx) - epub = newMIME("application/epub+zip", ".epub", magic.Epub) - jar = newMIME("application/jar", ".jar", magic.Jar) - apk = newMIME("application/vnd.android.package-archive", ".apk", magic.APK) - ole = newMIME("application/x-ole-storage", "", magic.Ole, msi, aaf, msg, xls, pub, ppt, doc) - msi = newMIME("application/x-ms-installer", ".msi", magic.Msi). + fdf = newMIME("application/vnd.fdf", ".fdf", magic.Fdf) + xlsx = newMIME("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", ".xlsx", magic.Xlsx) + docx = newMIME("application/vnd.openxmlformats-officedocument.wordprocessingml.document", ".docx", magic.Docx) + pptx = newMIME("application/vnd.openxmlformats-officedocument.presentationml.presentation", ".pptx", magic.Pptx) + visio = newMIME("application/vnd.ms-visio.drawing.main+xml", ".vsdx", magic.Visio) + epub = newMIME("application/epub+zip", ".epub", magic.Epub) + jar = newMIME("application/java-archive", ".jar", magic.Jar). + alias("application/jar", "application/jar-archive", "application/x-java-archive") + apk = newMIME("application/vnd.android.package-archive", ".apk", magic.APK) + ole = newMIME("application/x-ole-storage", "", magic.Ole, msi, aaf, msg, xls, pub, ppt, doc) + msi = newMIME("application/x-ms-installer", ".msi", magic.Msi). alias("application/x-windows-installer", "application/x-msi") aaf = newMIME("application/octet-stream", ".aaf", magic.Aaf) doc = newMIME("application/msword", ".doc", magic.Doc). @@ -75,18 +78,19 @@ var ( alias("application/msexcel") msg = newMIME("application/vnd.ms-outlook", ".msg", magic.Msg) ps = newMIME("application/postscript", ".ps", magic.Ps) - fits = newMIME("application/fits", ".fits", magic.Fits) + fits = newMIME("application/fits", ".fits", magic.Fits).alias("image/fits") ogg = newMIME("application/ogg", ".ogg", magic.Ogg, oggAudio, oggVideo). alias("application/x-ogg") oggAudio = newMIME("audio/ogg", ".oga", magic.OggAudio) oggVideo = newMIME("video/ogg", ".ogv", magic.OggVideo) - text = newMIME("text/plain", ".txt", magic.Text, html, svg, xml, php, js, lua, perl, python, json, ndJSON, rtf, srt, tcl, csv, tsv, vCard, iCalendar, warc, vtt) - xml = newMIME("text/xml", ".xml", magic.XML, rss, atom, x3d, kml, xliff, collada, gml, gpx, tcx, amf, threemf, xfdf, owl2). + text = newMIME("text/plain", ".txt", magic.Text, svg, html, xml, php, js, lua, perl, python, ruby, json, ndJSON, rtf, srt, tcl, csv, tsv, vCard, iCalendar, warc, vtt, shell, netpbm, netpgm, netppm, netpam) + xml = newMIME("text/xml", ".xml", magic.XML, rss, atom, x3d, kml, xliff, collada, gml, gpx, tcx, amf, threemf, xfdf, owl2, xhtml). alias("application/xml") + xhtml = newMIME("application/xhtml+xml", ".html", magic.XHTML) json = newMIME("application/json", ".json", magic.JSON, geoJSON, har, gltf) har = newMIME("application/json", ".har", magic.HAR) - csv = newMIME("text/csv", ".csv", magic.Csv) - tsv = newMIME("text/tab-separated-values", ".tsv", magic.Tsv) + csv = newMIME("text/csv", ".csv", magic.CSV) + tsv = newMIME("text/tab-separated-values", ".tsv", magic.TSV) geoJSON = newMIME("application/geo+json", ".geojson", magic.GeoJSON) ndJSON = newMIME("application/x-ndjson", ".ndjson", magic.NdJSON) html = newMIME("text/html", ".html", magic.HTML) @@ -101,6 +105,10 @@ var ( perl = newMIME("text/x-perl", ".pl", magic.Perl) python = newMIME("text/x-python", ".py", magic.Python). alias("text/x-script.python", "application/x-python") + ruby = newMIME("text/x-ruby", ".rb", magic.Ruby). + alias("application/x-ruby") + shell = newMIME("text/x-shellscript", ".sh", magic.Shell). + alias("text/x-sh", "application/x-shellscript", "application/x-sh") tcl = newMIME("text/x-tcl", ".tcl", magic.Tcl). alias("application/x-tcl") vCard = newMIME("text/vcard", ".vcf", magic.VCard) @@ -112,6 +120,7 @@ var ( atom = newMIME("application/atom+xml", ".atom", magic.Atom) x3d = newMIME("model/x3d+xml", ".x3d", magic.X3d) kml = newMIME("application/vnd.google-earth.kml+xml", ".kml", magic.Kml) + kmz = newMIME("application/vnd.google-earth.kmz", ".kmz", magic.KMZ) xliff = newMIME("application/x-xliff+xml", ".xlf", magic.Xliff) collada = newMIME("model/vnd.collada+xml", ".dae", magic.Collada) gml = newMIME("application/gml+xml", ".gml", magic.Gml) @@ -135,9 +144,12 @@ var ( tiff = newMIME("image/tiff", ".tiff", magic.Tiff) bmp = newMIME("image/bmp", ".bmp", magic.Bmp). alias("image/x-bmp", "image/x-ms-bmp") - ico = newMIME("image/x-icon", ".ico", magic.Ico) - icns = newMIME("image/x-icns", ".icns", magic.Icns) - psd = newMIME("image/vnd.adobe.photoshop", ".psd", magic.Psd). + // lotus check must be done before ico because some ico detection is a bit + // relaxed and some lotus files are wrongfully identified as ico otherwise. + lotus = newMIME("application/vnd.lotus-1-2-3", ".123", magic.Lotus123) + ico = newMIME("image/x-icon", ".ico", magic.Ico) + icns = newMIME("image/x-icns", ".icns", magic.Icns) + psd = newMIME("image/vnd.adobe.photoshop", ".psd", magic.Psd). alias("image/x-psd", "application/photoshop") heic = newMIME("image/heic", ".heic", magic.Heic) heicSeq = newMIME("image/heic-sequence", ".heic", magic.HeicSequence) @@ -267,5 +279,11 @@ var ( jxr = newMIME("image/jxr", ".jxr", magic.Jxr).alias("image/vnd.ms-photo") parquet = newMIME("application/vnd.apache.parquet", ".parquet", magic.Par1). alias("application/x-parquet") - cbor = newMIME("application/cbor", ".cbor", magic.CBOR) + netpbm = newMIME("image/x-portable-bitmap", ".pbm", magic.NetPBM) + netpgm = newMIME("image/x-portable-graymap", ".pgm", magic.NetPGM) + netppm = newMIME("image/x-portable-pixmap", ".ppm", magic.NetPPM) + netpam = newMIME("image/x-portable-arbitrarymap", ".pam", magic.NetPAM) + cbor = newMIME("application/cbor", ".cbor", magic.CBOR) + oneNote = newMIME("application/onenote", ".one", magic.One) + chm = newMIME("application/vnd.ms-htmlhelp", ".chm", magic.CHM) ) diff --git a/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md b/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md deleted file mode 100644 index 66a8a0f89..000000000 --- a/vendor/github.com/go-jose/go-jose/v4/CHANGELOG.md +++ /dev/null @@ -1,101 +0,0 @@ -## Changed - - - Defined a custom error, ErrUnexpectedSignatureAlgorithm, returned when a JWS - header contains an unsupported signature algorithm. - -# v4.0.4 - -## Fixed - - - Reverted "Allow unmarshalling JSONWebKeySets with unsupported key types" as a - breaking change. See #136 / #137. - -# v4.0.3 - -## Changed - - - Allow unmarshalling JSONWebKeySets with unsupported key types (#130) - - Document that OpaqueKeyEncrypter can't be implemented (for now) (#129) - - Dependency updates - -# v4.0.2 - -## Changed - - - Improved documentation of Verify() to note that JSONWebKeySet is a supported - argument type (#104) - - Defined exported error values for missing x5c header and unsupported elliptic - curves error cases (#117) - -# v4.0.1 - -## Fixed - - - An attacker could send a JWE containing compressed data that used large - amounts of memory and CPU when decompressed by `Decrypt` or `DecryptMulti`. - Those functions now return an error if the decompressed data would exceed - 250kB or 10x the compressed size (whichever is larger). Thanks to - Enze Wang@Alioth and Jianjun Chen@Zhongguancun Lab (@zer0yu and @chenjj) - for reporting. - -# v4.0.0 - -This release makes some breaking changes in order to more thoroughly -address the vulnerabilities discussed in [Three New Attacks Against JSON Web -Tokens][1], "Sign/encrypt confusion", "Billion hash attack", and "Polyglot -token". - -## Changed - - - Limit JWT encryption types (exclude password or public key types) (#78) - - Enforce minimum length for HMAC keys (#85) - - jwt: match any audience in a list, rather than requiring all audiences (#81) - - jwt: accept only Compact Serialization (#75) - - jws: Add expected algorithms for signatures (#74) - - Require specifying expected algorithms for ParseEncrypted, - ParseSigned, ParseDetached, jwt.ParseEncrypted, jwt.ParseSigned, - jwt.ParseSignedAndEncrypted (#69, #74) - - Usually there is a small, known set of appropriate algorithms for a program - to use and it's a mistake to allow unexpected algorithms. For instance the - "billion hash attack" relies in part on programs accepting the PBES2 - encryption algorithm and doing the necessary work even if they weren't - specifically configured to allow PBES2. - - Revert "Strip padding off base64 strings" (#82) - - The specs require base64url encoding without padding. - - Minimum supported Go version is now 1.21 - -## Added - - - ParseSignedCompact, ParseSignedJSON, ParseEncryptedCompact, ParseEncryptedJSON. - - These allow parsing a specific serialization, as opposed to ParseSigned and - ParseEncrypted, which try to automatically detect which serialization was - provided. It's common to require a specific serialization for a specific - protocol - for instance JWT requires Compact serialization. - -[1]: https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf - -# v3.0.2 - -## Fixed - - - DecryptMulti: handle decompression error (#19) - -## Changed - - - jwe/CompactSerialize: improve performance (#67) - - Increase the default number of PBKDF2 iterations to 600k (#48) - - Return the proper algorithm for ECDSA keys (#45) - -## Added - - - Add Thumbprint support for opaque signers (#38) - -# v3.0.1 - -## Fixed - - - Security issue: an attacker specifying a large "p2c" value can cause - JSONWebEncryption.Decrypt and JSONWebEncryption.DecryptMulti to consume large - amounts of CPU, causing a DoS. Thanks to Matt Schwager (@mschwager) for the - disclosure and to Tom Tervoort for originally publishing the category of attack. - https://i.blackhat.com/BH-US-23/Presentations/US-23-Tervoort-Three-New-Attacks-Against-JSON-Web-Tokens.pdf diff --git a/vendor/github.com/go-jose/go-jose/v4/README.md b/vendor/github.com/go-jose/go-jose/v4/README.md index 02b574954..55c550917 100644 --- a/vendor/github.com/go-jose/go-jose/v4/README.md +++ b/vendor/github.com/go-jose/go-jose/v4/README.md @@ -3,7 +3,6 @@ [![godoc](https://pkg.go.dev/badge/github.com/go-jose/go-jose/v4.svg)](https://pkg.go.dev/github.com/go-jose/go-jose/v4) [![godoc](https://pkg.go.dev/badge/github.com/go-jose/go-jose/v4/jwt.svg)](https://pkg.go.dev/github.com/go-jose/go-jose/v4/jwt) [![license](https://img.shields.io/badge/license-apache_2.0-blue.svg?style=flat)](https://raw.githubusercontent.com/go-jose/go-jose/master/LICENSE) -[![test](https://img.shields.io/github/checks-status/go-jose/go-jose/v4)](https://github.com/go-jose/go-jose/actions) Package jose aims to provide an implementation of the Javascript Object Signing and Encryption set of standards. This includes support for JSON Web Encryption, @@ -29,17 +28,20 @@ libraries in other languages. ### Versions -[Version 4](https://github.com/go-jose/go-jose) -([branch](https://github.com/go-jose/go-jose/tree/main), -[doc](https://pkg.go.dev/github.com/go-jose/go-jose/v4), [releases](https://github.com/go-jose/go-jose/releases)) is the current stable version: +The forthcoming Version 5 will be released with several breaking API changes, +and will require Golang's `encoding/json/v2`, which is currently requires +Go 1.25 built with GOEXPERIMENT=jsonv2. + +Version 4 is the current stable version: import "github.com/go-jose/go-jose/v4" -The old [square/go-jose](https://github.com/square/go-jose) repo contains the prior v1 and v2 versions, which -are still useable but not actively developed anymore. +It supports at least the current and previous Golang release. Currently it +requires Golang 1.24. + +Version 3 is only receiving critical security updates. Migration to Version 4 is recommended. -Version 3, in this repo, is still receiving security fixes but not functionality -updates. +Versions 1 and 2 are obsolete, but can be found in the old repository, [square/go-jose](https://github.com/square/go-jose). ### Supported algorithms @@ -47,36 +49,36 @@ See below for a table of supported algorithms. Algorithm identifiers match the names in the [JSON Web Algorithms](https://dx.doi.org/10.17487/RFC7518) standard where possible. The Godoc reference has a list of constants. - Key encryption | Algorithm identifier(s) - :------------------------- | :------------------------------ - RSA-PKCS#1v1.5 | RSA1_5 - RSA-OAEP | RSA-OAEP, RSA-OAEP-256 - AES key wrap | A128KW, A192KW, A256KW - AES-GCM key wrap | A128GCMKW, A192GCMKW, A256GCMKW - ECDH-ES + AES key wrap | ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW - ECDH-ES (direct) | ECDH-ES1 - Direct encryption | dir1 +| Key encryption | Algorithm identifier(s) | +|:-----------------------|:-----------------------------------------------| +| RSA-PKCS#1v1.5 | RSA1_5 | +| RSA-OAEP | RSA-OAEP, RSA-OAEP-256 | +| AES key wrap | A128KW, A192KW, A256KW | +| AES-GCM key wrap | A128GCMKW, A192GCMKW, A256GCMKW | +| ECDH-ES + AES key wrap | ECDH-ES+A128KW, ECDH-ES+A192KW, ECDH-ES+A256KW | +| ECDH-ES (direct) | ECDH-ES1 | +| Direct encryption | dir1 | 1. Not supported in multi-recipient mode - Signing / MAC | Algorithm identifier(s) - :------------------------- | :------------------------------ - RSASSA-PKCS#1v1.5 | RS256, RS384, RS512 - RSASSA-PSS | PS256, PS384, PS512 - HMAC | HS256, HS384, HS512 - ECDSA | ES256, ES384, ES512 - Ed25519 | EdDSA2 +| Signing / MAC | Algorithm identifier(s) | +|:------------------|:------------------------| +| RSASSA-PKCS#1v1.5 | RS256, RS384, RS512 | +| RSASSA-PSS | PS256, PS384, PS512 | +| HMAC | HS256, HS384, HS512 | +| ECDSA | ES256, ES384, ES512 | +| Ed25519 | EdDSA2 | 2. Only available in version 2 of the package - Content encryption | Algorithm identifier(s) - :------------------------- | :------------------------------ - AES-CBC+HMAC | A128CBC-HS256, A192CBC-HS384, A256CBC-HS512 - AES-GCM | A128GCM, A192GCM, A256GCM +| Content encryption | Algorithm identifier(s) | +|:-------------------|:--------------------------------------------| +| AES-CBC+HMAC | A128CBC-HS256, A192CBC-HS384, A256CBC-HS512 | +| AES-GCM | A128GCM, A192GCM, A256GCM | - Compression | Algorithm identifiers(s) - :------------------------- | ------------------------------- - DEFLATE (RFC 1951) | DEF +| Compression | Algorithm identifiers(s) | +|:-------------------|--------------------------| +| DEFLATE (RFC 1951) | DEF | ### Supported key types @@ -85,12 +87,12 @@ library, and can be passed to corresponding functions such as `NewEncrypter` or `NewSigner`. Each of these keys can also be wrapped in a JWK if desired, which allows attaching a key id. - Algorithm(s) | Corresponding types - :------------------------- | ------------------------------- - RSA | *[rsa.PublicKey](https://pkg.go.dev/crypto/rsa/#PublicKey), *[rsa.PrivateKey](https://pkg.go.dev/crypto/rsa/#PrivateKey) - ECDH, ECDSA | *[ecdsa.PublicKey](https://pkg.go.dev/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](https://pkg.go.dev/crypto/ecdsa/#PrivateKey) - EdDSA1 | [ed25519.PublicKey](https://pkg.go.dev/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://pkg.go.dev/crypto/ed25519#PrivateKey) - AES, HMAC | []byte +| Algorithm(s) | Corresponding types | +|:------------------|--------------------------------------------------------------------------------------------------------------------------------------| +| RSA | *[rsa.PublicKey](https://pkg.go.dev/crypto/rsa/#PublicKey), *[rsa.PrivateKey](https://pkg.go.dev/crypto/rsa/#PrivateKey) | +| ECDH, ECDSA | *[ecdsa.PublicKey](https://pkg.go.dev/crypto/ecdsa/#PublicKey), *[ecdsa.PrivateKey](https://pkg.go.dev/crypto/ecdsa/#PrivateKey) | +| EdDSA1 | [ed25519.PublicKey](https://pkg.go.dev/crypto/ed25519#PublicKey), [ed25519.PrivateKey](https://pkg.go.dev/crypto/ed25519#PrivateKey) | +| AES, HMAC | []byte | 1. Only available in version 2 or later of the package diff --git a/vendor/github.com/go-jose/go-jose/v4/crypter.go b/vendor/github.com/go-jose/go-jose/v4/crypter.go index d81b03b44..31290fc87 100644 --- a/vendor/github.com/go-jose/go-jose/v4/crypter.go +++ b/vendor/github.com/go-jose/go-jose/v4/crypter.go @@ -286,6 +286,10 @@ func makeJWERecipient(alg KeyAlgorithm, encryptionKey interface{}) (recipientKey return newSymmetricRecipient(alg, encryptionKey) case string: return newSymmetricRecipient(alg, []byte(encryptionKey)) + case JSONWebKey: + recipient, err := makeJWERecipient(alg, encryptionKey.Key) + recipient.keyID = encryptionKey.KeyID + return recipient, err case *JSONWebKey: recipient, err := makeJWERecipient(alg, encryptionKey.Key) recipient.keyID = encryptionKey.KeyID @@ -450,13 +454,9 @@ func (obj JSONWebEncryption) Decrypt(decryptionKey interface{}) ([]byte, error) return nil, errors.New("go-jose/go-jose: too many recipients in payload; expecting only one") } - critical, err := headers.getCritical() + err := headers.checkNoCritical() if err != nil { - return nil, fmt.Errorf("go-jose/go-jose: invalid crit header") - } - - if len(critical) > 0 { - return nil, fmt.Errorf("go-jose/go-jose: unsupported crit header") + return nil, err } key, err := tryJWKS(decryptionKey, obj.Header) @@ -523,13 +523,9 @@ func (obj JSONWebEncryption) Decrypt(decryptionKey interface{}) ([]byte, error) func (obj JSONWebEncryption) DecryptMulti(decryptionKey interface{}) (int, Header, []byte, error) { globalHeaders := obj.mergedHeaders(nil) - critical, err := globalHeaders.getCritical() + err := globalHeaders.checkNoCritical() if err != nil { - return -1, Header{}, nil, fmt.Errorf("go-jose/go-jose: invalid crit header") - } - - if len(critical) > 0 { - return -1, Header{}, nil, fmt.Errorf("go-jose/go-jose: unsupported crit header") + return -1, Header{}, nil, err } key, err := tryJWKS(decryptionKey, obj.Header) diff --git a/vendor/github.com/go-jose/go-jose/v4/jwk.go b/vendor/github.com/go-jose/go-jose/v4/jwk.go index 9700f8906..164d6a161 100644 --- a/vendor/github.com/go-jose/go-jose/v4/jwk.go +++ b/vendor/github.com/go-jose/go-jose/v4/jwk.go @@ -175,6 +175,8 @@ func (k JSONWebKey) MarshalJSON() ([]byte, error) { } // UnmarshalJSON reads a key from its JSON representation. +// +// Returns ErrUnsupportedKeyType for unrecognized or unsupported "kty" header values. func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) { var raw rawJSONWebKey err = json.Unmarshal(data, &raw) @@ -228,7 +230,7 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) { } key, err = raw.symmetricKey() case "OKP": - if raw.Crv == "Ed25519" && raw.X != nil { + if raw.Crv == "Ed25519" { if raw.D != nil { key, err = raw.edPrivateKey() if err == nil { @@ -238,17 +240,27 @@ func (k *JSONWebKey) UnmarshalJSON(data []byte) (err error) { key, err = raw.edPublicKey() keyPub = key } - } else { - return fmt.Errorf("go-jose/go-jose: unknown curve '%s'", raw.Crv) } - default: - return fmt.Errorf("go-jose/go-jose: unknown json web key type '%s'", raw.Kty) + case "": + // kty MUST be present + err = fmt.Errorf("go-jose/go-jose: missing json web key type") } if err != nil { return } + if key == nil { + // RFC 7517: + // 5. JWK Set Format + // ... + // Implementations SHOULD ignore JWKs within a JWK Set that use "kty" + // (key type) values that are not understood by them, that are missing + // required members, or for which values are out of the supported + // ranges. + return ErrUnsupportedKeyType + } + if certPub != nil && keyPub != nil { if !reflect.DeepEqual(certPub, keyPub) { return errors.New("go-jose/go-jose: invalid JWK, public keys in key and x5c fields do not match") @@ -581,10 +593,10 @@ func fromEcPublicKey(pub *ecdsa.PublicKey) (*rawJSONWebKey, error) { func (key rawJSONWebKey) edPrivateKey() (ed25519.PrivateKey, error) { var missing []string - switch { - case key.D == nil: + if key.D == nil { missing = append(missing, "D") - case key.X == nil: + } + if key.X == nil { missing = append(missing, "X") } @@ -611,19 +623,21 @@ func (key rawJSONWebKey) edPublicKey() (ed25519.PublicKey, error) { func (key rawJSONWebKey) rsaPrivateKey() (*rsa.PrivateKey, error) { var missing []string - switch { - case key.N == nil: + if key.N == nil { missing = append(missing, "N") - case key.E == nil: + } + if key.E == nil { missing = append(missing, "E") - case key.D == nil: + } + if key.D == nil { missing = append(missing, "D") - case key.P == nil: + } + if key.P == nil { missing = append(missing, "P") - case key.Q == nil: + } + if key.Q == nil { missing = append(missing, "Q") } - if len(missing) > 0 { return nil, fmt.Errorf("go-jose/go-jose: invalid RSA private key, missing %s value(s)", strings.Join(missing, ", ")) } @@ -698,8 +712,19 @@ func (key rawJSONWebKey) ecPrivateKey() (*ecdsa.PrivateKey, error) { return nil, fmt.Errorf("go-jose/go-jose: unsupported elliptic curve '%s'", key.Crv) } - if key.X == nil || key.Y == nil || key.D == nil { - return nil, fmt.Errorf("go-jose/go-jose: invalid EC private key, missing x/y/d values") + var missing []string + if key.X == nil { + missing = append(missing, "X") + } + if key.Y == nil { + missing = append(missing, "Y") + } + if key.D == nil { + missing = append(missing, "D") + } + + if len(missing) > 0 { + return nil, fmt.Errorf("go-jose/go-jose: invalid EC private key, missing %s value(s)", strings.Join(missing, ", ")) } // The length of this octet string MUST be the full size of a coordinate for diff --git a/vendor/github.com/go-jose/go-jose/v4/shared.go b/vendor/github.com/go-jose/go-jose/v4/shared.go index 1ec339612..35130b3aa 100644 --- a/vendor/github.com/go-jose/go-jose/v4/shared.go +++ b/vendor/github.com/go-jose/go-jose/v4/shared.go @@ -77,6 +77,9 @@ var ( // ErrUnsupportedEllipticCurve indicates unsupported or unknown elliptic curve has been found. ErrUnsupportedEllipticCurve = errors.New("go-jose/go-jose: unsupported/unknown elliptic curve") + + // ErrUnsupportedCriticalHeader is returned when a header is marked critical but not supported by go-jose. + ErrUnsupportedCriticalHeader = errors.New("go-jose/go-jose: unsupported critical header") ) // Key management algorithms @@ -167,8 +170,8 @@ const ( ) // supportedCritical is the set of supported extensions that are understood and processed. -var supportedCritical = map[string]bool{ - headerB64: true, +var supportedCritical = map[string]struct{}{ + headerB64: {}, } // rawHeader represents the JOSE header for JWE/JWS objects (used for parsing). @@ -346,6 +349,32 @@ func (parsed rawHeader) getCritical() ([]string, error) { return q, nil } +// checkNoCritical verifies there are no critical headers present. +func (parsed rawHeader) checkNoCritical() error { + if _, ok := parsed[headerCritical]; ok { + return ErrUnsupportedCriticalHeader + } + + return nil +} + +// checkSupportedCritical verifies there are no unsupported critical headers. +// Supported headers are passed in as a set: map of names to empty structs +func (parsed rawHeader) checkSupportedCritical(supported map[string]struct{}) error { + crit, err := parsed.getCritical() + if err != nil { + return err + } + + for _, name := range crit { + if _, ok := supported[name]; !ok { + return ErrUnsupportedCriticalHeader + } + } + + return nil +} + // getS2C extracts parsed "p2c" from the raw JSON. func (parsed rawHeader) getP2C() (int, error) { v := parsed[headerP2C] diff --git a/vendor/github.com/go-jose/go-jose/v4/signing.go b/vendor/github.com/go-jose/go-jose/v4/signing.go index 3dec0112b..5dbd04c27 100644 --- a/vendor/github.com/go-jose/go-jose/v4/signing.go +++ b/vendor/github.com/go-jose/go-jose/v4/signing.go @@ -404,15 +404,23 @@ func (obj JSONWebSignature) DetachedVerify(payload []byte, verificationKey inter } signature := obj.Signatures[0] - headers := signature.mergedHeaders() - critical, err := headers.getCritical() - if err != nil { - return err + + if signature.header != nil { + // Per https://www.rfc-editor.org/rfc/rfc7515.html#section-4.1.11, + // 4.1.11. "crit" (Critical) Header Parameter + // "When used, this Header Parameter MUST be integrity + // protected; therefore, it MUST occur only within the JWS + // Protected Header." + err = signature.header.checkNoCritical() + if err != nil { + return err + } } - for _, name := range critical { - if !supportedCritical[name] { - return ErrCryptoFailure + if signature.protected != nil { + err = signature.protected.checkSupportedCritical(supportedCritical) + if err != nil { + return err } } @@ -421,6 +429,7 @@ func (obj JSONWebSignature) DetachedVerify(payload []byte, verificationKey inter return ErrCryptoFailure } + headers := signature.mergedHeaders() alg := headers.getSignatureAlgorithm() err = verifier.verifyPayload(input, signature.Signature, alg) if err == nil { @@ -469,14 +478,22 @@ func (obj JSONWebSignature) DetachedVerifyMulti(payload []byte, verificationKey outer: for i, signature := range obj.Signatures { - headers := signature.mergedHeaders() - critical, err := headers.getCritical() - if err != nil { - continue + if signature.header != nil { + // Per https://www.rfc-editor.org/rfc/rfc7515.html#section-4.1.11, + // 4.1.11. "crit" (Critical) Header Parameter + // "When used, this Header Parameter MUST be integrity + // protected; therefore, it MUST occur only within the JWS + // Protected Header." + err = signature.header.checkNoCritical() + if err != nil { + continue outer + } } - for _, name := range critical { - if !supportedCritical[name] { + if signature.protected != nil { + // Check for only supported critical headers + err = signature.protected.checkSupportedCritical(supportedCritical) + if err != nil { continue outer } } @@ -486,6 +503,7 @@ outer: continue } + headers := signature.mergedHeaders() alg := headers.getSignatureAlgorithm() err = verifier.verifyPayload(input, signature.Signature, alg) if err == nil { diff --git a/vendor/github.com/go-jose/go-jose/v4/symmetric.go b/vendor/github.com/go-jose/go-jose/v4/symmetric.go index 6176e0607..09efefb26 100644 --- a/vendor/github.com/go-jose/go-jose/v4/symmetric.go +++ b/vendor/github.com/go-jose/go-jose/v4/symmetric.go @@ -21,6 +21,7 @@ import ( "crypto/aes" "crypto/cipher" "crypto/hmac" + "crypto/pbkdf2" "crypto/rand" "crypto/sha256" "crypto/sha512" @@ -328,7 +329,7 @@ func (ctx *symmetricKeyCipher) encryptKey(cek []byte, alg KeyAlgorithm) (recipie // derive key keyLen, h := getPbkdf2Params(alg) - key, err := pbkdf2Key(h, string(ctx.key), salt, ctx.p2c, keyLen) + key, err := pbkdf2.Key(h, string(ctx.key), salt, ctx.p2c, keyLen) if err != nil { return recipientInfo{}, nil } @@ -433,7 +434,7 @@ func (ctx *symmetricKeyCipher) decryptKey(headers rawHeader, recipient *recipien // derive key keyLen, h := getPbkdf2Params(alg) - key, err := pbkdf2Key(h, string(ctx.key), salt, p2c, keyLen) + key, err := pbkdf2.Key(h, string(ctx.key), salt, p2c, keyLen) if err != nil { return nil, err } diff --git a/vendor/github.com/go-jose/go-jose/v4/symmetric_go124.go b/vendor/github.com/go-jose/go-jose/v4/symmetric_go124.go deleted file mode 100644 index 6c5a4e7f2..000000000 --- a/vendor/github.com/go-jose/go-jose/v4/symmetric_go124.go +++ /dev/null @@ -1,28 +0,0 @@ -//go:build go1.24 - -/*- - * Copyright 2014 Square Inc. - * - * 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 jose - -import ( - "crypto/pbkdf2" - "hash" -) - -func pbkdf2Key(h func() hash.Hash, password string, salt []byte, iter, keyLen int) ([]byte, error) { - return pbkdf2.Key(h, password, salt, iter, keyLen) -} diff --git a/vendor/github.com/go-jose/go-jose/v4/symmetric_legacy.go b/vendor/github.com/go-jose/go-jose/v4/symmetric_legacy.go deleted file mode 100644 index bdfc3d766..000000000 --- a/vendor/github.com/go-jose/go-jose/v4/symmetric_legacy.go +++ /dev/null @@ -1,29 +0,0 @@ -//go:build !go1.24 - -/*- - * Copyright 2014 Square Inc. - * - * 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 jose - -import ( - "hash" - - "golang.org/x/crypto/pbkdf2" -) - -func pbkdf2Key(h func() hash.Hash, password string, salt []byte, iter, keyLen int) ([]byte, error) { - return pbkdf2.Key([]byte(password), salt, iter, keyLen, h), nil -} diff --git a/vendor/github.com/go-playground/form/v4/Makefile b/vendor/github.com/go-playground/form/v4/Makefile index 0ff37bce2..07dbdc029 100644 --- a/vendor/github.com/go-playground/form/v4/Makefile +++ b/vendor/github.com/go-playground/form/v4/Makefile @@ -7,7 +7,7 @@ test: go test -covermode=atomic -race ./... bench: - go test -bench=. -benchmem ./... + go test -run=NONE -bench=. -benchmem ./... .PHONY: test lint bench .DEFAULT_GOAL := all diff --git a/vendor/github.com/go-playground/form/v4/README.md b/vendor/github.com/go-playground/form/v4/README.md index 2e76aeea4..3907c123b 100644 --- a/vendor/github.com/go-playground/form/v4/README.md +++ b/vendor/github.com/go-playground/form/v4/README.md @@ -1,6 +1,6 @@ Package form ============ -![Project status](https://img.shields.io/badge/version-4.2.1-green.svg) +[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/go-playground/form)](https://github.com/go-playground/form/releases) [![Build Status](https://github.com/go-playground/form/actions/workflows/workflow.yml/badge.svg)](https://github.com/go-playground/form/actions/workflows/workflow.yml) [![Coverage Status](https://coveralls.io/repos/github/go-playground/form/badge.svg?branch=master)](https://coveralls.io/github/go-playground/form?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/form)](https://goreportcard.com/report/github.com/go-playground/form) @@ -282,34 +282,56 @@ Benchmarks NOTE: the 1 allocation and B/op in the first 4 decodes is actually the struct allocating when passing it in, so primitives are actually zero allocation. ```go -go test -run=NONE -bench=. -benchmem=true ./... +go test -run=NONE -bench=. -benchmem ./... +goos: darwin +goarch: arm64 +pkg: github.com/go-playground/form/v4 +cpu: Apple M3 Max +BenchmarkNestedArrayDecode100-16 75 15782643 ns/op 18754349 B/op 360810 allocs/op +BenchmarkNestedArrayDecode1000-16 1 2227892458 ns/op 1877558216 B/op 36011385 allocs/op +PASS +ok github.com/go-playground/form/v4 4.251s goos: darwin goarch: arm64 pkg: github.com/go-playground/form/v4/benchmarks -BenchmarkSimpleUserDecodeStruct-8 8704111 121.1 ns/op 64 B/op 1 allocs/op -BenchmarkSimpleUserDecodeStructParallel-8 35916134 32.89 ns/op 64 B/op 1 allocs/op -BenchmarkSimpleUserEncodeStruct-8 3746173 320.7 ns/op 485 B/op 10 allocs/op -BenchmarkSimpleUserEncodeStructParallel-8 7293147 180.0 ns/op 485 B/op 10 allocs/op -BenchmarkPrimitivesDecodeStructAllPrimitivesTypes-8 2993259 400.5 ns/op 96 B/op 1 allocs/op -BenchmarkPrimitivesDecodeStructAllPrimitivesTypesParallel-8 13023300 97.70 ns/op 96 B/op 1 allocs/op -BenchmarkPrimitivesEncodeStructAllPrimitivesTypes-8 643202 1767 ns/op 2977 B/op 35 allocs/op -BenchmarkPrimitivesEncodeStructAllPrimitivesTypesParallel-8 1000000 1202 ns/op 2978 B/op 35 allocs/op -BenchmarkComplexArrayDecodeStructAllTypes-8 172630 6822 ns/op 2008 B/op 121 allocs/op -BenchmarkComplexArrayDecodeStructAllTypesParallel-8 719788 1735 ns/op 2009 B/op 121 allocs/op -BenchmarkComplexArrayEncodeStructAllTypes-8 197052 5839 ns/op 7087 B/op 104 allocs/op -BenchmarkComplexArrayEncodeStructAllTypesParallel-8 348039 3247 ns/op 7089 B/op 104 allocs/op -BenchmarkComplexMapDecodeStructAllTypes-8 139246 8550 ns/op 5313 B/op 130 allocs/op -BenchmarkComplexMapDecodeStructAllTypesParallel-8 409018 3143 ns/op 5317 B/op 130 allocs/op -BenchmarkComplexMapEncodeStructAllTypes-8 208833 5515 ns/op 4257 B/op 103 allocs/op -BenchmarkComplexMapEncodeStructAllTypesParallel-8 523833 2182 ns/op 4258 B/op 103 allocs/op -BenchmarkDecodeNestedStruct-8 807690 1408 ns/op 344 B/op 14 allocs/op -BenchmarkDecodeNestedStructParallel-8 3409441 359.6 ns/op 344 B/op 14 allocs/op -BenchmarkEncodeNestedStruct-8 1488520 803.6 ns/op 653 B/op 16 allocs/op -BenchmarkEncodeNestedStructParallel-8 3570204 346.6 ns/op 653 B/op 16 allocs/op +cpu: Apple M3 Max +BenchmarkSimpleUserDecodeStruct-16 12669696 94.60 ns/op 64 B/op 1 allocs/op +BenchmarkSimpleUserDecodeStructParallel-16 46715631 27.79 ns/op 64 B/op 1 allocs/op +BenchmarkSimpleUserEncodeStruct-16 4624094 256.7 ns/op 485 B/op 10 allocs/op +BenchmarkSimpleUserEncodeStructParallel-16 7386290 166.2 ns/op 485 B/op 10 allocs/op +BenchmarkPrimitivesDecodeStructAllPrimitivesTypes-16 3533421 332.3 ns/op 96 B/op 1 allocs/op +BenchmarkPrimitivesDecodeStructAllPrimitivesTypesParallel-16 20706642 59.43 ns/op 96 B/op 1 allocs/op +BenchmarkPrimitivesEncodeStructAllPrimitivesTypes-16 1228750 966.4 ns/op 1465 B/op 34 allocs/op +BenchmarkPrimitivesEncodeStructAllPrimitivesTypesParallel-16 1962678 607.2 ns/op 1465 B/op 34 allocs/op +BenchmarkComplexArrayDecodeStructAllTypes-16 213568 5361 ns/op 2081 B/op 121 allocs/op +BenchmarkComplexArrayDecodeStructAllTypesParallel-16 960226 1314 ns/op 2087 B/op 121 allocs/op +BenchmarkComplexArrayEncodeStructAllTypes-16 271944 4017 ns/op 6788 B/op 107 allocs/op +BenchmarkComplexArrayEncodeStructAllTypesParallel-16 441998 2829 ns/op 6791 B/op 107 allocs/op +BenchmarkComplexMapDecodeStructAllTypes-16 179220 6359 ns/op 5300 B/op 130 allocs/op +BenchmarkComplexMapDecodeStructAllTypesParallel-16 412233 2933 ns/op 5310 B/op 130 allocs/op +BenchmarkComplexMapEncodeStructAllTypes-16 262464 4122 ns/op 4083 B/op 106 allocs/op +BenchmarkComplexMapEncodeStructAllTypesParallel-16 622110 2084 ns/op 4084 B/op 106 allocs/op +BenchmarkDecodeNestedStruct-16 823956 1247 ns/op 344 B/op 14 allocs/op +BenchmarkDecodeNestedStructParallel-16 4689418 267.5 ns/op 344 B/op 14 allocs/op +BenchmarkEncodeNestedStruct-16 1844667 636.0 ns/op 653 B/op 16 allocs/op +BenchmarkEncodeNestedStructParallel-16 4302678 278.8 ns/op 653 B/op 16 allocs/op ``` Competitor benchmarks can be found [here](https://github.com/go-playground/form/blob/master/benchmarks/benchmarks.md) + +Maintenance and support for SDK major versions +---------------------------------------------- + +This package is aligned with the [Go release policy](https://go.dev/doc/devel/release) in that support is guaranteed for +the two most recent major versions. + +This does not mean the package will not work with older versions of Go, only that we reserve the right to increase the +MSGV(Minimum Supported Go Version) when the need arises to address Security issues/patches, OS issues & support or newly +introduced functionality that would greatly benefit the maintenance and/or usage of this package. + +If and when the MSGV is increased it will be done so in a minimum of a `Minor` release bump. + Complimentary Software ---------------------- diff --git a/vendor/github.com/go-playground/form/v4/cache.go b/vendor/github.com/go-playground/form/v4/cache.go index 47e5fce96..64e7d0e56 100644 --- a/vendor/github.com/go-playground/form/v4/cache.go +++ b/vendor/github.com/go-playground/form/v4/cache.go @@ -82,7 +82,7 @@ func (s *structCacheMap) parseStruct(mode Mode, current reflect.Value, key refle typ := current.Type() cs = &cachedStruct{fields: make([]cachedField, 0, 4)} // init 4, betting most structs decoding into have at aleast 4 fields. - numFields := current.NumField() + numFields := typ.NumField() var fld reflect.StructField var name string diff --git a/vendor/github.com/go-playground/form/v4/decoder.go b/vendor/github.com/go-playground/form/v4/decoder.go index e21242279..d746ea02c 100644 --- a/vendor/github.com/go-playground/form/v4/decoder.go +++ b/vendor/github.com/go-playground/form/v4/decoder.go @@ -19,6 +19,7 @@ type decoder struct { d *Decoder errs DecodeErrors dm dataMap + aliasMap map[string]*recursiveData values url.Values maxKeyLen int namespace []byte @@ -32,10 +33,8 @@ func (d *decoder) setError(namespace []byte, err error) { } func (d *decoder) findAlias(ns string) *recursiveData { - for i := 0; i < len(d.dm); i++ { - if d.dm[i].alias == ns { - return d.dm[i] - } + if d.aliasMap != nil { + return d.aliasMap[ns] } return nil } @@ -49,6 +48,12 @@ func (d *decoder) parseMapData() { d.maxKeyLen = 0 d.dm = d.dm[0:0] + if d.aliasMap == nil { + d.aliasMap = make(map[string]*recursiveData) + } else { + clear(d.aliasMap) + } + var i int var idx int var l int @@ -94,6 +99,7 @@ func (d *decoder) parseMapData() { } rd.alias = k[:idx] + d.aliasMap[rd.alias] = rd } // is map + key diff --git a/vendor/github.com/go-playground/validator/v10/.golangci.yaml b/vendor/github.com/go-playground/validator/v10/.golangci.yaml index eab557ee2..dd9c05cc8 100644 --- a/vendor/github.com/go-playground/validator/v10/.golangci.yaml +++ b/vendor/github.com/go-playground/validator/v10/.golangci.yaml @@ -2,101 +2,53 @@ version: "2" linters: default: all disable: - - asasalint - - asciicheck - - bidichk - - bodyclose - - canonicalheader - - containedctx - - contextcheck + - noinlineerr + - wsl_v5 - copyloopvar - cyclop - - decorder - depguard - dogsled - dupl - dupword - - durationcheck - err113 - - errcheck - - errchkjson - - errname - errorlint - exhaustive - exhaustruct - - exptostd - - fatcontext - forbidigo - forcetypeassert - funlen - - ginkgolinter - - gocheckcompilerdirectives - gochecknoglobals - - gochecknoinits - - gochecksumtype - gocognit - goconst - gocritic - gocyclo - godot - - godox - - goheader - - gomoddirectives - - gomodguard - - goprintffuncname - gosec - gosmopolitan - - govet - - grouper - - iface - - importas - - inamedparam - - ineffassign - interfacebloat - intrange - ireturn - lll - - loggercheck - maintidx - - makezero - - mirror - misspell - mnd - - musttag - nakedret - nestif - - nilerr - - nilnesserr - nilnil - nlreturn - - noctx - - nolintlint - nonamedreturns - - nosprintfhostport - paralleltest - perfsprint - prealloc - - predeclared - - promlinter - - protogetter - - reassign - recvcheck - revive - - rowserrcheck - - sloglint - - spancheck - - sqlclosecheck - staticcheck - tagalign - tagliatelle - - testableexamples - - testifylint - testpackage - thelper - tparallel - unparam - varnamelen - - whitespace - wrapcheck - wsl - - zerologlint \ No newline at end of file diff --git a/vendor/github.com/go-playground/validator/v10/README.md b/vendor/github.com/go-playground/validator/v10/README.md index 368b966a6..cb5d41945 100644 --- a/vendor/github.com/go-playground/validator/v10/README.md +++ b/vendor/github.com/go-playground/validator/v10/README.md @@ -1,6 +1,6 @@ Package validator ================= -![Project status](https://img.shields.io/badge/version-10.25.0-green.svg) +[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/go-playground/validator)](https://github.com/go-playground/validator/releases) [![Build Status](https://github.com/go-playground/validator/actions/workflows/workflow.yml/badge.svg)](https://github.com/go-playground/validator/actions) [![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=master&service=github)](https://coveralls.io/github/go-playground/validator?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator) @@ -106,8 +106,9 @@ validate := validator.New(validator.WithRequiredStructEnabled()) | datauri | Data URL | | fqdn | Full Qualified Domain Name (FQDN) | | hostname | Hostname RFC 952 | -| hostname_port | HostPort | | hostname_rfc1123 | Hostname RFC 1123 | +| hostname_port | HostPort | +| port | Port number | | ip | Internet Protocol Address IP | | ip4_addr | Internet Protocol Address IPv4 | | ip6_addr | Internet Protocol Address IPv6 | @@ -124,7 +125,8 @@ validate := validator.New(validator.WithRequiredStructEnabled()) | unix_addr | Unix domain socket end point Address | | uri | URI String | | url | URL String | -| http_url | HTTP URL String | +| http_url | HTTP(s) URL String | +| https_url | HTTPS-only URL String | | url_encoded | URL Encoded | | urn_rfc2141 | Urn RFC 2141 String | @@ -133,6 +135,7 @@ validate := validator.New(validator.WithRequiredStructEnabled()) | Tag | Description | | - | - | | alpha | Alpha Only | +| alphaspace | Alpha Space | | alphanum | Alphanumeric | | alphanumunicode | Alphanumeric Unicode | | alphaunicode | Alpha Unicode | @@ -262,6 +265,8 @@ validate := validator.New(validator.WithRequiredStructEnabled()) | excluded_without | Excluded Without | | excluded_without_all | Excluded Without All | | unique | Unique | +| validateFn | Verify if the method `Validate() error` does not return an error (or any specified method) | + #### Aliases: | Tag | Description | diff --git a/vendor/github.com/go-playground/validator/v10/baked_in.go b/vendor/github.com/go-playground/validator/v10/baked_in.go index 5332cf3fa..8fd55e77e 100644 --- a/vendor/github.com/go-playground/validator/v10/baked_in.go +++ b/vendor/github.com/go-playground/validator/v10/baked_in.go @@ -2,10 +2,12 @@ package validator import ( "bytes" + "cmp" "context" "crypto/sha256" "encoding/hex" "encoding/json" + "errors" "fmt" "io/fs" "net" @@ -116,6 +118,7 @@ var ( "fieldcontains": fieldContains, "fieldexcludes": fieldExcludes, "alpha": isAlpha, + "alphaspace": isAlphaSpace, "alphanum": isAlphanum, "alphaunicode": isAlphaUnicode, "alphanumunicode": isAlphanumUnicode, @@ -132,6 +135,7 @@ var ( "email": isEmail, "url": isURL, "http_url": isHttpURL, + "https_url": isHttpsURL, "uri": isURI, "urn_rfc2141": isUrnRFC2141, // RFC 2141 "file": isFile, @@ -244,6 +248,7 @@ var ( "cron": isCron, "spicedb": isSpiceDB, "ein": isEIN, + "validateFn": isValidateFn, } ) @@ -294,7 +299,7 @@ func isOneOf(fl FieldLevel) bool { case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: v = strconv.FormatUint(field.Uint(), 10) default: - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } for i := 0; i < len(vals); i++ { if vals[i] == v { @@ -310,7 +315,7 @@ func isOneOfCI(fl FieldLevel) bool { field := fl.Field() if field.Kind() != reflect.String { - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } v := field.String() for _, val := range vals { @@ -384,13 +389,13 @@ func isUnique(fl FieldLevel) bool { } if uniqueField.Kind() != field.Kind() { - panic(fmt.Sprintf("Bad field type %T:%T", field.Interface(), uniqueField.Interface())) + panic(fmt.Sprintf("Bad field type %s:%s", field.Type(), uniqueField.Type())) } - return field.Interface() != uniqueField.Interface() + return getValue(field) != getValue(uniqueField) } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } } @@ -471,7 +476,7 @@ func isLongitude(fl FieldLevel) bool { case reflect.Float64: v = strconv.FormatFloat(field.Float(), 'f', -1, 64) default: - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } return longitudeRegex().MatchString(v) @@ -494,7 +499,7 @@ func isLatitude(fl FieldLevel) bool { case reflect.Float64: v = strconv.FormatFloat(field.Float(), 'f', -1, 64) default: - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } return latitudeRegex().MatchString(v) @@ -945,7 +950,6 @@ func isNeField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() != currentField.Int() @@ -966,9 +970,8 @@ func isNeField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && currentField.Type().ConvertibleTo(timeType) { - - t := currentField.Interface().(time.Time) - fieldTime := field.Interface().(time.Time) + t := getValue(currentField).(time.Time) + fieldTime := getValue(field).(time.Time) return !fieldTime.Equal(t) } @@ -1005,7 +1008,6 @@ func isLteCrossStructField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() <= topField.Int() @@ -1023,9 +1025,8 @@ func isLteCrossStructField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && topField.Type().ConvertibleTo(timeType) { - - fieldTime := field.Convert(timeType).Interface().(time.Time) - topTime := topField.Convert(timeType).Interface().(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) + topTime := getValue(topField.Convert(timeType)).(time.Time) return fieldTime.Before(topTime) || fieldTime.Equal(topTime) } @@ -1052,7 +1053,6 @@ func isLtCrossStructField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() < topField.Int() @@ -1070,9 +1070,8 @@ func isLtCrossStructField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && topField.Type().ConvertibleTo(timeType) { - - fieldTime := field.Convert(timeType).Interface().(time.Time) - topTime := topField.Convert(timeType).Interface().(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) + topTime := getValue(topField.Convert(timeType)).(time.Time) return fieldTime.Before(topTime) } @@ -1098,7 +1097,6 @@ func isGteCrossStructField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() >= topField.Int() @@ -1116,9 +1114,8 @@ func isGteCrossStructField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && topField.Type().ConvertibleTo(timeType) { - - fieldTime := field.Convert(timeType).Interface().(time.Time) - topTime := topField.Convert(timeType).Interface().(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) + topTime := getValue(topField.Convert(timeType)).(time.Time) return fieldTime.After(topTime) || fieldTime.Equal(topTime) } @@ -1144,7 +1141,6 @@ func isGtCrossStructField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() > topField.Int() @@ -1162,9 +1158,8 @@ func isGtCrossStructField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && topField.Type().ConvertibleTo(timeType) { - - fieldTime := field.Convert(timeType).Interface().(time.Time) - topTime := topField.Convert(timeType).Interface().(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) + topTime := getValue(topField.Convert(timeType)).(time.Time) return fieldTime.After(topTime) } @@ -1190,7 +1185,6 @@ func isNeCrossStructField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return topField.Int() != field.Int() @@ -1211,9 +1205,8 @@ func isNeCrossStructField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && topField.Type().ConvertibleTo(timeType) { - - t := field.Convert(timeType).Interface().(time.Time) - fieldTime := topField.Convert(timeType).Interface().(time.Time) + t := getValue(field.Convert(timeType)).(time.Time) + fieldTime := getValue(topField.Convert(timeType)).(time.Time) return !fieldTime.Equal(t) } @@ -1239,7 +1232,6 @@ func isEqCrossStructField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return topField.Int() == field.Int() @@ -1260,9 +1252,8 @@ func isEqCrossStructField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && topField.Type().ConvertibleTo(timeType) { - - t := field.Convert(timeType).Interface().(time.Time) - fieldTime := topField.Convert(timeType).Interface().(time.Time) + t := getValue(field.Convert(timeType)).(time.Time) + fieldTime := getValue(topField.Convert(timeType)).(time.Time) return fieldTime.Equal(t) } @@ -1288,7 +1279,6 @@ func isEqField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() == currentField.Int() @@ -1309,9 +1299,8 @@ func isEqField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && currentField.Type().ConvertibleTo(timeType) { - - t := currentField.Convert(timeType).Interface().(time.Time) - fieldTime := field.Convert(timeType).Interface().(time.Time) + t := getValue(currentField.Convert(timeType)).(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) return fieldTime.Equal(t) } @@ -1332,7 +1321,6 @@ func isEq(fl FieldLevel) bool { param := fl.Param() switch field.Kind() { - case reflect.String: return field.String() == param @@ -1367,7 +1355,7 @@ func isEq(fl FieldLevel) bool { return field.Bool() == p } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isEqIgnoreCase is the validation function for validating if the current field's string value is @@ -1382,7 +1370,7 @@ func isEqIgnoreCase(fl FieldLevel) bool { return strings.EqualFold(field.String(), param) } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isPostcodeByIso3166Alpha2 validates by value which is country code in iso 3166 alpha 2 @@ -1416,7 +1404,7 @@ func isPostcodeByIso3166Alpha2Field(fl FieldLevel) bool { } if kind != reflect.String { - panic(fmt.Sprintf("Bad field type %T", currentField.Interface())) + panic(fmt.Sprintf("Bad field type %s", currentField.Type())) } postcodeRegexInit.Do(initPostcodes) @@ -1472,16 +1460,7 @@ func isURI(fl FieldLevel) bool { return err == nil } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) -} - -// isFileURL is the helper function for validating if the `path` valid file URL as per RFC8089 -func isFileURL(path string) bool { - if !strings.HasPrefix(path, "file:/") { - return false - } - _, err := url.ParseRequestURI(path) - return err == nil + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isURL is the validation function for validating if the current field's value is a valid URL. @@ -1497,23 +1476,20 @@ func isURL(fl FieldLevel) bool { return false } - if isFileURL(s) { - return true - } - url, err := url.Parse(s) if err != nil || url.Scheme == "" { return false } + isFileScheme := url.Scheme == "file" - if url.Host == "" && url.Fragment == "" && url.Opaque == "" { + if (isFileScheme && (len(url.Path) == 0 || url.Path == "/")) || (!isFileScheme && len(url.Host) == 0 && len(url.Fragment) == 0 && len(url.Opaque) == 0) { return false } return true } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isHttpURL is the validation function for validating if the current field's value is a valid HTTP(s) URL. @@ -1536,7 +1512,30 @@ func isHttpURL(fl FieldLevel) bool { return url.Scheme == "http" || url.Scheme == "https" } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) +} + +// isHttpsURL is the validation function for validating if the current field's value is a valid HTTPS-only URL. +func isHttpsURL(fl FieldLevel) bool { + if !isURL(fl) { + return false + } + + field := fl.Field() + switch field.Kind() { + case reflect.String: + + s := strings.ToLower(field.String()) + + url, err := url.Parse(s) + if err != nil || url.Host == "" { + return false + } + + return url.Scheme == "https" + } + + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isUrnRFC2141 is the validation function for validating if the current field's value is a valid URN as per RFC 2141. @@ -1553,7 +1552,7 @@ func isUrnRFC2141(fl FieldLevel) bool { return match } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isFile is the validation function for validating if the current field's value is a valid existing file path. @@ -1570,7 +1569,7 @@ func isFile(fl FieldLevel) bool { return !fileInfo.IsDir() } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isImage is the validation function for validating if the current field's value contains the path to a valid image file @@ -1632,7 +1631,8 @@ func isImage(fl FieldLevel) bool { return true } } - return false + + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isFilePath is the validation function for validating if the current field's value is a valid file path. @@ -1686,7 +1686,7 @@ func isFilePath(fl FieldLevel) bool { } } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isE164 is the validation function for validating if the current field's value is a valid e.164 formatted phone number. @@ -1768,6 +1768,11 @@ func isAlphanumUnicode(fl FieldLevel) bool { return alphaUnicodeNumericRegex().MatchString(fl.Field().String()) } +// isAlphaSpace is the validation function for validating if the current field's value is a valid alpha value with spaces. +func isAlphaSpace(fl FieldLevel) bool { + return alphaSpaceRegex().MatchString(fl.Field().String()) +} + // isAlphaUnicode is the validation function for validating if the current field's value is a valid alpha unicode value. func isAlphaUnicode(fl FieldLevel) bool { return alphaUnicodeRegex().MatchString(fl.Field().String()) @@ -1796,7 +1801,7 @@ func hasValue(fl FieldLevel) bool { case reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func: return !field.IsNil() default: - if fl.(*validate).fldIsPointer && field.Interface() != nil { + if fl.(*validate).fldIsPointer && getValue(field) != nil { return true } return field.IsValid() && !field.IsZero() @@ -1807,10 +1812,13 @@ func hasValue(fl FieldLevel) bool { func hasNotZeroValue(fl FieldLevel) bool { field := fl.Field() switch field.Kind() { - case reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func: + case reflect.Slice, reflect.Map: + // For slices and maps, consider them "not zero" only if they're both non-nil AND have elements + return !field.IsNil() && field.Len() > 0 + case reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func: return !field.IsNil() default: - if fl.(*validate).fldIsPointer && field.Interface() != nil { + if fl.(*validate).fldIsPointer && getValue(field) != nil { return !field.IsZero() } return field.IsValid() && !field.IsZero() @@ -1834,7 +1842,7 @@ func requireCheckFieldKind(fl FieldLevel, param string, defaultNotFoundValue boo case reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func: return field.IsNil() default: - if nullable && field.Interface() != nil { + if nullable && getValue(field) != nil { return false } return field.IsValid() && field.IsZero() @@ -1851,7 +1859,6 @@ func requireCheckFieldValue( } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() == asInt(value) @@ -1864,7 +1871,13 @@ func requireCheckFieldValue( case reflect.Float64: return field.Float() == asFloat64(value) - case reflect.Slice, reflect.Map, reflect.Array: + case reflect.Slice, reflect.Map: + if value == "nil" { + return field.IsNil() + } + return int64(field.Len()) == asInt(value) + case reflect.Array: + // Arrays can't be nil, so only compare lengths return int64(field.Len()) == asInt(value) case reflect.Bool: @@ -1889,6 +1902,15 @@ func requiredIf(fl FieldLevel) bool { if len(params)%2 != 0 { panic(fmt.Sprintf("Bad param number for required_if %s", fl.FieldName())) } + + seen := make(map[string]struct{}) + for i := 0; i < len(params); i += 2 { + if _, ok := seen[params[i]]; ok { + panic(fmt.Sprintf("Duplicate param %s for required_if %s", params[i], fl.FieldName())) + } + seen[params[i]] = struct{}{} + } + for i := 0; i < len(params); i += 2 { if !requireCheckFieldValue(fl, params[i], params[i+1], false) { return true @@ -2019,8 +2041,11 @@ func excludedWithout(fl FieldLevel) bool { // requiredWithout is the validation function // The field under validation must be present and not empty only when any of the other specified fields are not present. func requiredWithout(fl FieldLevel) bool { - if requireCheckFieldKind(fl, strings.TrimSpace(fl.Param()), true) { - return hasValue(fl) + params := parseOneOfParam2(fl.Param()) + for _, param := range params { + if requireCheckFieldKind(fl, param, true) { + return hasValue(fl) + } } return true } @@ -2060,7 +2085,6 @@ func isGteField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() >= currentField.Int() @@ -2078,9 +2102,8 @@ func isGteField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && currentField.Type().ConvertibleTo(timeType) { - - t := currentField.Convert(timeType).Interface().(time.Time) - fieldTime := field.Convert(timeType).Interface().(time.Time) + t := getValue(currentField.Convert(timeType)).(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) return fieldTime.After(t) || fieldTime.Equal(t) } @@ -2106,7 +2129,6 @@ func isGtField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() > currentField.Int() @@ -2124,9 +2146,8 @@ func isGtField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && currentField.Type().ConvertibleTo(timeType) { - - t := currentField.Convert(timeType).Interface().(time.Time) - fieldTime := field.Convert(timeType).Interface().(time.Time) + t := getValue(currentField.Convert(timeType)).(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) return fieldTime.After(t) } @@ -2147,7 +2168,6 @@ func isGte(fl FieldLevel) bool { param := fl.Param() switch field.Kind() { - case reflect.String: p := asInt(param) @@ -2181,15 +2201,14 @@ func isGte(fl FieldLevel) bool { case reflect.Struct: if field.Type().ConvertibleTo(timeType) { - now := time.Now().UTC() - t := field.Convert(timeType).Interface().(time.Time) + t := getValue(field.Convert(timeType)).(time.Time) return t.After(now) || t.Equal(now) } } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isGt is the validation function for validating if the current field's value is greater than the param's value. @@ -2198,7 +2217,6 @@ func isGt(fl FieldLevel) bool { param := fl.Param() switch field.Kind() { - case reflect.String: p := asInt(param) @@ -2232,11 +2250,11 @@ func isGt(fl FieldLevel) bool { case reflect.Struct: if field.Type().ConvertibleTo(timeType) { - return field.Convert(timeType).Interface().(time.Time).After(time.Now().UTC()) + return getValue(field.Convert(timeType)).(time.Time).After(time.Now().UTC()) } } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // hasLengthOf is the validation function for validating if the current field's value is equal to the param's value. @@ -2245,7 +2263,6 @@ func hasLengthOf(fl FieldLevel) bool { param := fl.Param() switch field.Kind() { - case reflect.String: p := asInt(param) @@ -2277,7 +2294,7 @@ func hasLengthOf(fl FieldLevel) bool { return field.Float() == p } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // hasMinOf is the validation function for validating if the current field's value is greater than or equal to the param's value. @@ -2296,7 +2313,6 @@ func isLteField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() <= currentField.Int() @@ -2314,9 +2330,8 @@ func isLteField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && currentField.Type().ConvertibleTo(timeType) { - - t := currentField.Convert(timeType).Interface().(time.Time) - fieldTime := field.Convert(timeType).Interface().(time.Time) + t := getValue(currentField.Convert(timeType)).(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) return fieldTime.Before(t) || fieldTime.Equal(t) } @@ -2342,7 +2357,6 @@ func isLtField(fl FieldLevel) bool { } switch kind { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return field.Int() < currentField.Int() @@ -2360,9 +2374,8 @@ func isLtField(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(timeType) && currentField.Type().ConvertibleTo(timeType) { - - t := currentField.Convert(timeType).Interface().(time.Time) - fieldTime := field.Convert(timeType).Interface().(time.Time) + t := getValue(currentField.Convert(timeType)).(time.Time) + fieldTime := getValue(field.Convert(timeType)).(time.Time) return fieldTime.Before(t) } @@ -2383,7 +2396,6 @@ func isLte(fl FieldLevel) bool { param := fl.Param() switch field.Kind() { - case reflect.String: p := asInt(param) @@ -2417,15 +2429,14 @@ func isLte(fl FieldLevel) bool { case reflect.Struct: if field.Type().ConvertibleTo(timeType) { - now := time.Now().UTC() - t := field.Convert(timeType).Interface().(time.Time) + t := getValue(field.Convert(timeType)).(time.Time) return t.Before(now) || t.Equal(now) } } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isLt is the validation function for validating if the current field's value is less than the param's value. @@ -2434,7 +2445,6 @@ func isLt(fl FieldLevel) bool { param := fl.Param() switch field.Kind() { - case reflect.String: p := asInt(param) @@ -2468,11 +2478,11 @@ func isLt(fl FieldLevel) bool { case reflect.Struct: if field.Type().ConvertibleTo(timeType) { - return field.Convert(timeType).Interface().(time.Time).Before(time.Now().UTC()) + return getValue(field.Convert(timeType)).(time.Time).Before(time.Now().UTC()) } } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // hasMaxOf is the validation function for validating if the current field's value is less than or equal to the param's value. @@ -2642,7 +2652,7 @@ func isDir(fl FieldLevel) bool { return fileInfo.IsDir() } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isDirPath is the validation function for validating if the current field's value is a valid directory. @@ -2699,7 +2709,7 @@ func isDirPath(fl FieldLevel) bool { } } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isJSON is the validation function for validating if the current field's value is a valid json string. @@ -2714,12 +2724,12 @@ func isJSON(fl FieldLevel) bool { fieldType := field.Type() if fieldType.ConvertibleTo(byteSliceType) { - b := field.Convert(byteSliceType).Interface().([]byte) + b := getValue(field.Convert(byteSliceType)).([]byte) return json.Valid(b) } } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isJWT is the validation function for validating if the current field's value is a valid JWT string. @@ -2766,7 +2776,7 @@ func isLowercase(fl FieldLevel) bool { return field.String() == strings.ToLower(field.String()) } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isUppercase is the validation function for validating if the current field's value is an uppercase string. @@ -2780,7 +2790,7 @@ func isUppercase(fl FieldLevel) bool { return field.String() == strings.ToUpper(field.String()) } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isDatetime is the validation function for validating if the current field's value is a valid datetime string. @@ -2794,7 +2804,7 @@ func isDatetime(fl FieldLevel) bool { return err == nil } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isTimeZone is the validation function for validating if the current field's value is a valid time zone string. @@ -2816,7 +2826,7 @@ func isTimeZone(fl FieldLevel) bool { return err == nil } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isIso3166Alpha2 is the validation function for validating if the current field's value is a valid iso3166-1 alpha-2 country code. @@ -2860,7 +2870,7 @@ func isIso3166AlphaNumeric(fl FieldLevel) bool { case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: code = int(field.Uint() % 1000) default: - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } _, ok := iso3166_1_alpha_numeric[code] @@ -2884,7 +2894,7 @@ func isIso3166AlphaNumericEU(fl FieldLevel) bool { case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: code = int(field.Uint() % 1000) default: - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } _, ok := iso3166_1_alpha_numeric_eu[code] @@ -2914,7 +2924,7 @@ func isIso4217Numeric(fl FieldLevel) bool { case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: code = int(field.Uint()) default: - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } _, ok := iso4217_numeric[code] @@ -2930,7 +2940,7 @@ func isBCP47LanguageTag(fl FieldLevel) bool { return err == nil } - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } // isIsoBicFormat is the validation function for validating if the current field's value is a valid Business Identifier Code (SWIFT code), defined in ISO 9362 @@ -3053,7 +3063,7 @@ func hasLuhnChecksum(fl FieldLevel) bool { case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: str = strconv.FormatUint(field.Uint(), 10) default: - panic(fmt.Sprintf("Bad field type %T", field.Interface())) + panic(fmt.Sprintf("Bad field type %s", field.Type())) } size := len(str) if size < 2 { // there has to be at least one digit that carries a meaning + the checksum @@ -3079,3 +3089,60 @@ func isEIN(fl FieldLevel) bool { return einRegex().MatchString(field.String()) } + +func isValidateFn(fl FieldLevel) bool { + const defaultParam = `Validate` + + field := fl.Field() + validateFn := cmp.Or(fl.Param(), defaultParam) + + ok, err := tryCallValidateFn(field, validateFn) + if err != nil { + return false + } + + return ok +} + +var ( + errMethodNotFound = errors.New(`method not found`) + errMethodReturnNoValues = errors.New(`method return o values (void)`) + errMethodReturnInvalidType = errors.New(`method should return invalid type`) +) + +func tryCallValidateFn(field reflect.Value, validateFn string) (bool, error) { + method := field.MethodByName(validateFn) + if field.CanAddr() && !method.IsValid() { + method = field.Addr().MethodByName(validateFn) + } + + if !method.IsValid() { + return false, fmt.Errorf("unable to call %q on type %q: %w", + validateFn, field.Type().String(), errMethodNotFound) + } + + returnValues := method.Call([]reflect.Value{}) + if len(returnValues) == 0 { + return false, fmt.Errorf("unable to use result of method %q on type %q: %w", + validateFn, field.Type().String(), errMethodReturnNoValues) + } + + firstReturnValue := returnValues[0] + + switch firstReturnValue.Kind() { + case reflect.Bool: + return firstReturnValue.Bool(), nil + case reflect.Interface: + errorType := reflect.TypeOf((*error)(nil)).Elem() + + if firstReturnValue.Type().Implements(errorType) { + return firstReturnValue.IsNil(), nil + } + + return false, fmt.Errorf("unable to use result of method %q on type %q: %w (got interface %v expect error)", + validateFn, field.Type().String(), errMethodReturnInvalidType, firstReturnValue.Type().String()) + default: + return false, fmt.Errorf("unable to use result of method %q on type %q: %w (got %v expect error or bool)", + validateFn, field.Type().String(), errMethodReturnInvalidType, firstReturnValue.Type().String()) + } +} diff --git a/vendor/github.com/go-playground/validator/v10/cache.go b/vendor/github.com/go-playground/validator/v10/cache.go index 41d40bfea..fb101b064 100644 --- a/vendor/github.com/go-playground/validator/v10/cache.go +++ b/vendor/github.com/go-playground/validator/v10/cache.go @@ -124,7 +124,6 @@ func (v *Validate) extractStructCache(current reflect.Value, sName string) *cStr var customName string for i := 0; i < numFields; i++ { - fld = typ.Field(i) if !v.privateFieldValidation && !fld.Anonymous && len(fld.PkgPath) > 0 { @@ -191,7 +190,6 @@ func (v *Validate) parseFieldTagsRecursive(tag string, fieldName string, alias s } else { next, curr := v.parseFieldTagsRecursive(tagsVal, fieldName, t, true) current.next, current = next, curr - } continue } @@ -210,7 +208,6 @@ func (v *Validate) parseFieldTagsRecursive(tag string, fieldName string, alias s switch t { case diveTag: current.typeof = typeDive - continue case keysTag: current.typeof = typeKeys @@ -219,8 +216,6 @@ func (v *Validate) parseFieldTagsRecursive(tag string, fieldName string, alias s panic(fmt.Sprintf("'%s' tag must be immediately preceded by the '%s' tag", keysTag, diveTag)) } - current.typeof = typeKeys - // need to pass along only keys tag // need to increment i to skip over the keys tags b := make([]byte, 0, 64) @@ -228,7 +223,6 @@ func (v *Validate) parseFieldTagsRecursive(tag string, fieldName string, alias s i++ for ; i < len(tags); i++ { - b = append(b, tags[i]...) b = append(b, ',') @@ -238,7 +232,6 @@ func (v *Validate) parseFieldTagsRecursive(tag string, fieldName string, alias s } current.keys, _ = v.parseFieldTagsRecursive(string(b[:len(b)-1]), fieldName, "", false) - continue case endKeysTag: current.typeof = typeEndKeys @@ -256,19 +249,15 @@ func (v *Validate) parseFieldTagsRecursive(tag string, fieldName string, alias s case omitempty: current.typeof = typeOmitEmpty - continue case omitnil: current.typeof = typeOmitNil - continue case structOnlyTag: current.typeof = typeStructOnly - continue case noStructLevelTag: current.typeof = typeNoStructLevel - continue default: if t == isdefault { diff --git a/vendor/github.com/go-playground/validator/v10/doc.go b/vendor/github.com/go-playground/validator/v10/doc.go index e7a241fbc..52918e409 100644 --- a/vendor/github.com/go-playground/validator/v10/doc.go +++ b/vendor/github.com/go-playground/validator/v10/doc.go @@ -188,7 +188,7 @@ Same as structonly tag except that any struct level validations will not run. # Omit Empty -Allows conditional validation, for example if a field is not set with +Allows conditional validation, for example, if a field is not set with a value (Determined by the "required" validator) then other validation such as min or max won't run, but if a value is set validation will run. @@ -264,6 +264,7 @@ The field under validation must be present and not empty only if all the other specified fields are equal to the value following the specified field. For strings ensures value is not "". For slices, maps, pointers, interfaces, channels and functions ensures the value is not nil. For structs ensures value is not the zero value. +Using the same field name multiple times in the parameters will result in a panic at runtime. Usage: required_if @@ -756,12 +757,32 @@ in a field of the struct specified via a parameter. // For slices of struct: Usage: unique=field +# ValidateFn + +This validates that an object responds to a method that can return error or bool. +By default it expects an interface `Validate() error` and check that the method +does not return an error. Other methods can be specified using two signatures: +If the method returns an error, it check if the return value is nil. +If the method returns a boolean, it checks if the value is true. + + // to use the default method Validate() error + Usage: validateFn + + // to use the custom method IsValid() bool (or error) + Usage: validateFn=IsValid + # Alpha Only This validates that a string value contains ASCII alpha characters only Usage: alpha +# Alpha Space + +This validates that a string value contains ASCII alpha characters and spaces only + + Usage: alphaspace + # Alphanumeric This validates that a string value contains ASCII alphanumeric characters only @@ -1316,6 +1337,12 @@ can be used to validate fields typically passed to sockets and connections. Usage: hostname_port +# Port + +This validates that the value falls within the valid port number range of 1 to 65,535. + + Usage: port + # Datetime This validates that a string value is a valid datetime based on the supplied datetime format. diff --git a/vendor/github.com/go-playground/validator/v10/errors.go b/vendor/github.com/go-playground/validator/v10/errors.go index be2676e9e..fd9062567 100644 --- a/vendor/github.com/go-playground/validator/v10/errors.go +++ b/vendor/github.com/go-playground/validator/v10/errors.go @@ -24,7 +24,6 @@ type InvalidValidationError struct { // Error returns InvalidValidationError message func (e *InvalidValidationError) Error() string { - if e.Type == nil { return "validator: (nil)" } @@ -41,11 +40,9 @@ type ValidationErrors []FieldError // All information to create an error message specific to your application is contained within // the FieldError found within the ValidationErrors array func (ve ValidationErrors) Error() string { - buff := bytes.NewBufferString("") for i := 0; i < len(ve); i++ { - buff.WriteString(ve[i].Error()) buff.WriteString("\n") } @@ -55,7 +52,6 @@ func (ve ValidationErrors) Error() string { // Translate translates all of the ValidationErrors func (ve ValidationErrors) Translate(ut ut.Translator) ValidationErrorsTranslations { - trans := make(ValidationErrorsTranslations) var fe *fieldError @@ -109,22 +105,24 @@ type FieldError interface { // StructNamespace returns the namespace for the field error, with the field's // actual name. // - // eq. "User.FirstName" see Namespace for comparison + // eg. "User.FirstName" see Namespace for comparison // // NOTE: this field can be blank when validating a single primitive field // using validate.Field(...) as there is no way to extract its name StructNamespace() string - // Field returns the fields name with the tag name taking precedence over the + // Field returns the field's name with the tag name taking precedence over the // field's actual name. // - // eq. JSON name "fname" + // `RegisterTagNameFunc` must be registered to get tag value. + // + // eg. JSON name "fname" // see StructField for comparison Field() string // StructField returns the field's actual name from the struct, when able to determine. // - // eq. "FirstName" + // eg. "FirstName" // see Field for comparison StructField() string @@ -204,7 +202,6 @@ func (fe *fieldError) StructNamespace() string { // Field returns the field's name with the tag name taking precedence over the // field's actual name. func (fe *fieldError) Field() string { - return fe.ns[len(fe.ns)-int(fe.fieldLen):] // // return fe.field // fld := fe.ns[len(fe.ns)-int(fe.fieldLen):] diff --git a/vendor/github.com/go-playground/validator/v10/regexes.go b/vendor/github.com/go-playground/validator/v10/regexes.go index 93909b2e5..0b3615f5e 100644 --- a/vendor/github.com/go-playground/validator/v10/regexes.go +++ b/vendor/github.com/go-playground/validator/v10/regexes.go @@ -7,6 +7,7 @@ import ( const ( alphaRegexString = "^[a-zA-Z]+$" + alphaSpaceRegexString = "^[a-zA-Z ]+$" alphaNumericRegexString = "^[a-zA-Z0-9]+$" alphaUnicodeRegexString = "^[\\p{L}]+$" alphaUnicodeNumericRegexString = "^[\\p{L}\\p{N}]+$" @@ -93,6 +94,7 @@ func lazyRegexCompile(str string) func() *regexp.Regexp { var ( alphaRegex = lazyRegexCompile(alphaRegexString) + alphaSpaceRegex = lazyRegexCompile(alphaSpaceRegexString) alphaNumericRegex = lazyRegexCompile(alphaNumericRegexString) alphaUnicodeRegex = lazyRegexCompile(alphaUnicodeRegexString) alphaUnicodeNumericRegex = lazyRegexCompile(alphaUnicodeNumericRegexString) diff --git a/vendor/github.com/go-playground/validator/v10/struct_level.go b/vendor/github.com/go-playground/validator/v10/struct_level.go index fa7af9dd5..129b28725 100644 --- a/vendor/github.com/go-playground/validator/v10/struct_level.go +++ b/vendor/github.com/go-playground/validator/v10/struct_level.go @@ -107,7 +107,6 @@ func (v *validate) ExtractType(field reflect.Value) (reflect.Value, reflect.Kind // ReportError reports an error just by passing the field and tag information func (v *validate) ReportError(field interface{}, fieldName, structFieldName, tag, param string) { - fv, kind, _ := v.extractTypeInternal(reflect.ValueOf(field), false) if len(structFieldName) == 0 { @@ -123,7 +122,6 @@ func (v *validate) ReportError(field interface{}, fieldName, structFieldName, ta } if kind == reflect.Invalid { - v.errs = append(v.errs, &fieldError{ v: v.v, @@ -149,7 +147,7 @@ func (v *validate) ReportError(field interface{}, fieldName, structFieldName, ta structNs: v.str2, fieldLen: uint8(len(fieldName)), structfieldLen: uint8(len(structFieldName)), - value: fv.Interface(), + value: getValue(fv), param: param, kind: kind, typ: fv.Type(), @@ -161,11 +159,9 @@ func (v *validate) ReportError(field interface{}, fieldName, structFieldName, ta // // NOTE: this function prepends the current namespace to the relative ones. func (v *validate) ReportValidationErrors(relativeNamespace, relativeStructNamespace string, errs ValidationErrors) { - var err *fieldError for i := 0; i < len(errs); i++ { - err = errs[i].(*fieldError) err.ns = string(append(append(v.ns, relativeNamespace...), err.ns...)) err.structNs = string(append(append(v.actualNs, relativeStructNamespace...), err.structNs...)) diff --git a/vendor/github.com/go-playground/validator/v10/util.go b/vendor/github.com/go-playground/validator/v10/util.go index 9285223a2..b1fd8cc11 100644 --- a/vendor/github.com/go-playground/validator/v10/util.go +++ b/vendor/github.com/go-playground/validator/v10/util.go @@ -13,7 +13,6 @@ import ( // It will dive into pointers, customTypes and return you the // underlying value and it's kind. func (v *validate) extractTypeInternal(current reflect.Value, nullable bool) (reflect.Value, reflect.Kind, bool) { - BEGIN: switch current.Kind() { case reflect.Ptr: @@ -44,7 +43,6 @@ BEGIN: default: if v.v.hasCustomFuncs { - if fn, ok := v.v.customFuncs[current.Type()]; ok { current = reflect.ValueOf(fn(current)) goto BEGIN @@ -61,7 +59,6 @@ BEGIN: // NOTE: when not successful ok will be false, this can happen when a nested struct is nil and so the field // could not be retrieved because it didn't exist. func (v *validate) getStructFieldOKInternal(val reflect.Value, namespace string) (current reflect.Value, kind reflect.Kind, nullable bool, found bool) { - BEGIN: current, kind, nullable = v.ExtractType(val) if kind == reflect.Invalid { @@ -74,7 +71,6 @@ BEGIN: } switch kind { - case reflect.Ptr, reflect.Interface: return @@ -85,7 +81,6 @@ BEGIN: var ns string if !typ.ConvertibleTo(timeType) { - idx := strings.Index(namespace, namespaceSeparator) if idx != -1 { @@ -222,7 +217,7 @@ BEGIN: panic("Invalid field namespace") } -// asInt returns the parameter as a int64 +// asInt returns the parameter as an int64 // or panics if it can't convert func asInt(param string) int64 { i, err := strconv.ParseInt(param, 0, 64) @@ -256,7 +251,6 @@ func asIntFromType(t reflect.Type, param string) int64 { // asUint returns the parameter as a uint64 // or panics if it can't convert func asUint(param string) uint64 { - i, err := strconv.ParseUint(param, 0, 64) panicIf(err) @@ -282,7 +276,6 @@ func asFloat32(param string) float64 { // asBool returns the parameter as a bool // or panics if it can't convert func asBool(param string) bool { - i, err := strconv.ParseBool(param) panicIf(err) @@ -303,7 +296,7 @@ func fieldMatchesRegexByStringerValOrString(regexFn func() *regexp.Regexp, fl Fi case reflect.String: return regex.MatchString(fl.Field().String()) default: - if stringer, ok := fl.Field().Interface().(fmt.Stringer); ok { + if stringer, ok := getValue(fl.Field()).(fmt.Stringer); ok { return regex.MatchString(stringer.String()) } else { return regex.MatchString(fl.Field().String()) diff --git a/vendor/github.com/go-playground/validator/v10/validator.go b/vendor/github.com/go-playground/validator/v10/validator.go index d7c2e6586..995b0e19a 100644 --- a/vendor/github.com/go-playground/validator/v10/validator.go +++ b/vendor/github.com/go-playground/validator/v10/validator.go @@ -32,14 +32,12 @@ type validate struct { // parent and current will be the same the first run of validateStruct func (v *validate) validateStruct(ctx context.Context, parent reflect.Value, current reflect.Value, typ reflect.Type, ns []byte, structNs []byte, ct *cTag) { - cs, ok := v.v.structCache.Get(typ) if !ok { cs = v.v.extractStructCache(current, typ.Name()) } if len(ns) == 0 && len(cs.name) != 0 { - ns = append(ns, cs.name...) ns = append(ns, '.') @@ -50,21 +48,17 @@ func (v *validate) validateStruct(ctx context.Context, parent reflect.Value, cur // ct is nil on top level struct, and structs as fields that have no tag info // so if nil or if not nil and the structonly tag isn't present if ct == nil || ct.typeof != typeStructOnly { - var f *cField for i := 0; i < len(cs.fields); i++ { - f = cs.fields[i] if v.isPartial { - if v.ffn != nil { // used with StructFiltered if v.ffn(append(structNs, f.name...)) { continue } - } else { // used with StructPartial & StructExcept _, ok = v.includeExclude[string(append(structNs, f.name...))] @@ -83,7 +77,6 @@ func (v *validate) validateStruct(ctx context.Context, parent reflect.Value, cur // first iteration will have no info about nostructlevel tag, and is checked prior to // calling the next iteration of validateStruct called from traverseField. if cs.fn != nil { - v.slflParent = parent v.slCurrent = current v.ns = ns @@ -267,7 +260,7 @@ OUTER: return } default: - if v.fldIsPointer && field.Interface() == nil { + if v.fldIsPointer && getValue(field) == nil { return } } @@ -291,7 +284,6 @@ OUTER: reusableCF := &cField{} for i := 0; i < current.Len(); i++ { - i64 = int64(i) v.misc = append(v.misc[0:0], cf.name...) @@ -304,7 +296,6 @@ OUTER: if cf.namesEqual { reusableCF.altName = reusableCF.name } else { - v.misc = append(v.misc[0:0], cf.altName...) v.misc = append(v.misc, '[') v.misc = strconv.AppendInt(v.misc, i64, 10) @@ -321,8 +312,7 @@ OUTER: reusableCF := &cField{} for _, key := range current.MapKeys() { - - pv = fmt.Sprintf("%v", key.Interface()) + pv = fmt.Sprintf("%v", key) v.misc = append(v.misc[0:0], cf.name...) v.misc = append(v.misc, '[') @@ -347,6 +337,18 @@ OUTER: // can be nil when just keys being validated if ct.next != nil { v.traverseField(ctx, parent, current.MapIndex(key), ns, structNs, reusableCF, ct.next) + } else { + // Struct fallback when map values are structs + val := current.MapIndex(key) + switch val.Kind() { + case reflect.Ptr: + if val.Elem().Kind() == reflect.Struct { + // Dive into the struct so its own tags run + v.traverseField(ctx, parent, val, ns, structNs, reusableCF, nil) + } + case reflect.Struct: + v.traverseField(ctx, parent, val, ns, structNs, reusableCF, nil) + } } } else { v.traverseField(ctx, parent, current.MapIndex(key), ns, structNs, reusableCF, ct) @@ -366,7 +368,6 @@ OUTER: v.misc = v.misc[0:0] for { - // set Field Level fields v.slflParent = parent v.flField = current @@ -381,7 +382,6 @@ OUTER: // drain rest of the 'or' values, then continue or leave for { - ct = ct.next if ct == nil { @@ -418,7 +418,6 @@ OUTER: } if ct.hasAlias { - v.errs = append(v.errs, &fieldError{ v: v.v, @@ -434,9 +433,7 @@ OUTER: typ: typ, }, ) - } else { - tVal := string(v.misc)[1:] v.errs = append(v.errs, @@ -500,7 +497,6 @@ OUTER: ct = ct.next } } - } func getValue(val reflect.Value) interface{} { diff --git a/vendor/github.com/go-playground/validator/v10/validator_instance.go b/vendor/github.com/go-playground/validator/v10/validator_instance.go index 779f689a8..5ba64e5ba 100644 --- a/vendor/github.com/go-playground/validator/v10/validator_instance.go +++ b/vendor/github.com/go-playground/validator/v10/validator_instance.go @@ -104,7 +104,6 @@ type Validate struct { // in essence only parsing your validation tags once per struct type. // Using multiple instances neglects the benefit of caching. func New(options ...Option) *Validate { - tc := new(tagCache) tc.m.Store(make(map[string]*cTag)) @@ -126,7 +125,6 @@ func New(options ...Option) *Validate { // must copy validators for separate validations to be used in each instance for k, val := range bakedInValidators { - switch k { // these require that even if the value is nil that the validation should run, omitempty still overrides this behaviour case requiredIfTag, requiredUnlessTag, requiredWithTag, requiredWithAllTag, requiredWithoutTag, requiredWithoutAllTag, @@ -183,7 +181,7 @@ func (v Validate) ValidateMapCtx(ctx context.Context, data map[string]interface{ errs[field] = errors.New("The field: '" + field + "' is not a map to dive") } } else if ruleStr, ok := rule.(string); ok { - err := v.VarCtx(ctx, data[field], ruleStr) + err := v.VarWithKeyCtx(ctx, field, data[field], ruleStr) if err != nil { errs[field] = err } @@ -233,30 +231,12 @@ func (v *Validate) RegisterValidationCtx(tag string, fn FuncCtx, callValidationE return v.registerValidation(tag, fn, false, nilCheckable) } -func (v *Validate) registerValidation(tag string, fn FuncCtx, bakedIn bool, nilCheckable bool) error { - if len(tag) == 0 { - return errors.New("function Key cannot be empty") - } - - if fn == nil { - return errors.New("function cannot be empty") - } - - _, ok := restrictedTags[tag] - if !bakedIn && (ok || strings.ContainsAny(tag, restrictedTagChars)) { - panic(fmt.Sprintf(restrictedTagErr, tag)) - } - v.validations[tag] = internalValidationFuncWrapper{fn: fn, runValidationOnNil: nilCheckable} - return nil -} - // RegisterAlias registers a mapping of a single validation tag that // defines a common or complex set of validation(s) to simplify adding validation // to structs. // // NOTE: this function is not thread-safe it is intended that these all be registered prior to any validation func (v *Validate) RegisterAlias(alias, tags string) { - _, ok := restrictedTags[alias] if ok || strings.ContainsAny(alias, restrictedTagChars) { @@ -280,7 +260,6 @@ func (v *Validate) RegisterStructValidation(fn StructLevelFunc, types ...interfa // NOTE: // - this method is not thread-safe it is intended that these all be registered prior to any validation func (v *Validate) RegisterStructValidationCtx(fn StructLevelFuncCtx, types ...interface{}) { - if v.structLevelFuncs == nil { v.structLevelFuncs = make(map[reflect.Type]StructLevelFuncCtx) } @@ -327,7 +306,6 @@ func (v *Validate) RegisterStructValidationMapRules(rules map[string]string, typ // // NOTE: this method is not thread-safe it is intended that these all be registered prior to any validation func (v *Validate) RegisterCustomTypeFunc(fn CustomTypeFunc, types ...interface{}) { - if v.customFuncs == nil { v.customFuncs = make(map[reflect.Type]CustomTypeFunc) } @@ -341,7 +319,6 @@ func (v *Validate) RegisterCustomTypeFunc(fn CustomTypeFunc, types ...interface{ // RegisterTranslation registers translations against the provided tag. func (v *Validate) RegisterTranslation(tag string, trans ut.Translator, registerFn RegisterTranslationsFunc, translationFn TranslationFunc) (err error) { - if v.transTagFunc == nil { v.transTagFunc = make(map[ut.Translator]map[string]TranslationFunc) } @@ -375,7 +352,6 @@ func (v *Validate) Struct(s interface{}) error { // It returns InvalidValidationError for bad values passed in and nil or ValidationErrors as error otherwise. // You will need to assert the error if it's not nil eg. err.(validator.ValidationErrors) to access the array of errors. func (v *Validate) StructCtx(ctx context.Context, s interface{}) (err error) { - val := reflect.ValueOf(s) top := val @@ -492,10 +468,8 @@ func (v *Validate) StructPartialCtx(ctx context.Context, s interface{}, fields . name := typ.Name() for _, k := range fields { - flds := strings.Split(k, namespaceSeparator) if len(flds) > 0 { - vd.misc = append(vd.misc[0:0], name...) // Don't append empty name for unnamed structs if len(vd.misc) != 0 { @@ -503,7 +477,6 @@ func (v *Validate) StructPartialCtx(ctx context.Context, s interface{}, fields . } for _, s := range flds { - idx := strings.Index(s, leftBracket) if idx != -1 { @@ -519,7 +492,6 @@ func (v *Validate) StructPartialCtx(ctx context.Context, s interface{}, fields . idx = strings.Index(s, leftBracket) } } else { - vd.misc = append(vd.misc, s...) vd.includeExclude[string(vd.misc)] = struct{}{} } @@ -582,7 +554,6 @@ func (v *Validate) StructExceptCtx(ctx context.Context, s interface{}, fields .. name := typ.Name() for _, key := range fields { - vd.misc = vd.misc[0:0] if len(name) > 0 { @@ -709,3 +680,78 @@ func (v *Validate) VarWithValueCtx(ctx context.Context, field interface{}, other v.pool.Put(vd) return } + +// VarWithKey validates a single variable with a key to be included in the returned error using tag style validation +// eg. +// var s string +// validate.VarWithKey("email_address", s, "required,email") +// +// WARNING: a struct can be passed for validation eg. time.Time is a struct or +// if you have a custom type and have registered a custom type handler, so must +// allow it; however unforeseen validations will occur if trying to validate a +// struct that is meant to be passed to 'validate.Struct' +// +// It returns InvalidValidationError for bad values passed in and nil or ValidationErrors as error otherwise. +// You will need to assert the error if it's not nil eg. err.(validator.ValidationErrors) to access the array of errors. +// validate Array, Slice and maps fields which may contain more than one error +func (v *Validate) VarWithKey(key string, field interface{}, tag string) error { + return v.VarWithKeyCtx(context.Background(), key, field, tag) +} + +// VarWithKeyCtx validates a single variable with a key to be included in the returned error using tag style validation +// and allows passing of contextual validation information via context.Context. +// eg. +// var s string +// validate.VarWithKeyCtx("email_address", s, "required,email") +// +// WARNING: a struct can be passed for validation eg. time.Time is a struct or +// if you have a custom type and have registered a custom type handler, so must +// allow it; however unforeseen validations will occur if trying to validate a +// struct that is meant to be passed to 'validate.Struct' +// +// It returns InvalidValidationError for bad values passed in and nil or ValidationErrors as error otherwise. +// You will need to assert the error if it's not nil eg. err.(validator.ValidationErrors) to access the array of errors. +// validate Array, Slice and maps fields which may contain more than one error +func (v *Validate) VarWithKeyCtx(ctx context.Context, key string, field interface{}, tag string) (err error) { + if len(tag) == 0 || tag == skipValidationTag { + return nil + } + + ctag := v.fetchCacheTag(tag) + + cField := &cField{ + name: key, + altName: key, + namesEqual: true, + } + + val := reflect.ValueOf(field) + vd := v.pool.Get().(*validate) + vd.top = val + vd.isPartial = false + vd.traverseField(ctx, val, val, vd.ns[0:0], vd.actualNs[0:0], cField, ctag) + + if len(vd.errs) > 0 { + err = vd.errs + vd.errs = nil + } + v.pool.Put(vd) + return +} + +func (v *Validate) registerValidation(tag string, fn FuncCtx, bakedIn bool, nilCheckable bool) error { + if len(tag) == 0 { + return errors.New("function Key cannot be empty") + } + + if fn == nil { + return errors.New("function cannot be empty") + } + + _, ok := restrictedTags[tag] + if !bakedIn && (ok || strings.ContainsAny(tag, restrictedTagChars)) { + panic(fmt.Sprintf(restrictedTagErr, tag)) + } + v.validations[tag] = internalValidationFuncWrapper{fn: fn, runValidationOnNil: nilCheckable} + return nil +} diff --git a/vendor/github.com/klauspost/cpuid/v2/README.md b/vendor/github.com/klauspost/cpuid/v2/README.md index 7b1d59921..88d68d528 100644 --- a/vendor/github.com/klauspost/cpuid/v2/README.md +++ b/vendor/github.com/klauspost/cpuid/v2/README.md @@ -281,7 +281,7 @@ Exit Code 1 | AMXBF16 | Tile computational operations on BFLOAT16 numbers | | AMXINT8 | Tile computational operations on 8-bit integers | | AMXFP16 | Tile computational operations on FP16 numbers | -| AMXFP8 | Tile computational operations on FP8 numbers | +| AMXFP8 | Tile computational operations on FP8 numbers | | AMXCOMPLEX | Tile computational operations on complex numbers | | AMXTILE | Tile architecture | | AMXTF32 | Matrix Multiplication of TF32 Tiles into Packed Single Precision Tile | @@ -418,6 +418,7 @@ Exit Code 1 | SEV_SNP | AMD SEV Secure Nested Paging supported | | SGX | Software Guard Extensions | | SGXLC | Software Guard Extensions Launch Control | +| SGXPQC | Software Guard Extensions 256-bit Encryption | | SHA | Intel SHA Extensions | | SME | AMD Secure Memory Encryption supported | | SME_COHERENT | AMD Hardware cache coherency across encryption domains enforced | @@ -450,6 +451,9 @@ Exit Code 1 | TLB_FLUSH_NESTED | AMD: Flushing includes all the nested translations for guest translations | | TME | Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. | | TOPEXT | TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. | +| TSA_L1_NO | AMD only: Not vulnerable to TSA-L1 | +| TSA_SQ_NO | AMD only: Not vulnerable to TSA-SQ | +| TSA_VERW_CLEAR | AMD: If set, the memory form of the VERW instruction may be used to help mitigate TSA | | TSCRATEMSR | MSR based TSC rate control. Indicates support for MSR TSC ratio MSRC000_0104 | | TSXLDTRK | Intel TSX Suspend Load Address Tracking | | VAES | Vector AES. AVX(512) versions requires additional checks. | diff --git a/vendor/github.com/klauspost/cpuid/v2/cpuid.go b/vendor/github.com/klauspost/cpuid/v2/cpuid.go index 248439a9a..9cf7738a9 100644 --- a/vendor/github.com/klauspost/cpuid/v2/cpuid.go +++ b/vendor/github.com/klauspost/cpuid/v2/cpuid.go @@ -220,6 +220,7 @@ const ( SEV_SNP // AMD SEV Secure Nested Paging supported SGX // Software Guard Extensions SGXLC // Software Guard Extensions Launch Control + SGXPQC // Software Guard Extensions 256-bit Encryption SHA // Intel SHA Extensions SME // AMD Secure Memory Encryption supported SME_COHERENT // AMD Hardware cache coherency across encryption domains enforced @@ -255,6 +256,9 @@ const ( TLB_FLUSH_NESTED // AMD: Flushing includes all the nested translations for guest translations TME // Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. TOPEXT // TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. + TSA_L1_NO // AMD only: Not vulnerable to TSA-L1 + TSA_SQ_NO // AM onlyD: Not vulnerable to TSA-SQ + TSA_VERW_CLEAR // If set, the memory form of the VERW instruction may be used to help mitigate TSA TSCRATEMSR // MSR based TSC rate control. Indicates support for MSR TSC ratio MSRC000_0104 TSXLDTRK // Intel TSX Suspend Load Address Tracking VAES // Vector AES. AVX(512) versions requires additional checks. @@ -304,6 +308,13 @@ const ( SM3 // SM3 instructions SM4 // SM4 instructions SVE // Scalable Vector Extension + + // PMU + PMU_FIXEDCOUNTER_CYCLES + PMU_FIXEDCOUNTER_REFCYCLES + PMU_FIXEDCOUNTER_INSTRUCTIONS + PMU_FIXEDCOUNTER_TOPDOWN_SLOTS + // Keep it last. It automatically defines the size of []flagSet lastID @@ -336,11 +347,36 @@ type CPUInfo struct { SGX SGXSupport AMDMemEncryption AMDMemEncryptionSupport AVX10Level uint8 + PMU PerformanceMonitoringInfo // holds information about the PMU maxFunc uint32 maxExFunc uint32 } +// PerformanceMonitoringInfo holds information about CPU performance monitoring capabilities. +// This is primarily populated from CPUID leaf 0xAh on x86 +type PerformanceMonitoringInfo struct { + // VersionID (x86 only): Version ID of architectural performance monitoring. + // A value of 0 means architectural performance monitoring is not supported or information is unavailable. + VersionID uint8 + // NumGPPMC: Number of General-Purpose Performance Monitoring Counters per logical processor. + // On ARM, this is derived from PMCR_EL0.N (number of event counters). + NumGPCounters uint8 + // GPPMCWidth: Bit width of General-Purpose Performance Monitoring Counters. + // On ARM, typically 64 for PMU event counters. + GPPMCWidth uint8 + // NumFixedPMC: Number of Fixed-Function Performance Counters. + // Valid on x86 if VersionID > 1. On ARM, this typically includes at least the cycle counter (PMCCNTR_EL0). + NumFixedPMC uint8 + // FixedPMCWidth: Bit width of Fixed-Function Performance Counters. + // Valid on x86 if VersionID > 1. On ARM, the cycle counter (PMCCNTR_EL0) is 64-bit. + FixedPMCWidth uint8 + // Raw register output from CPUID leaf 0xAh. + RawEBX uint32 + RawEAX uint32 + RawEDX uint32 +} + var cpuid func(op uint32) (eax, ebx, ecx, edx uint32) var cpuidex func(op, op2 uint32) (eax, ebx, ecx, edx uint32) var xgetbv func(index uint32) (eax, edx uint32) @@ -1358,6 +1394,11 @@ func support() flagSet { fs.setIf(edx&(1<<4) != 0, BHI_CTRL) fs.setIf(edx&(1<<5) != 0, MCDT_NO) + if fs.inSet(SGX) { + eax, _, _, _ := cpuidex(0x12, 0) + fs.setIf(eax&(1<<12) != 0, SGXPQC) + } + // Add keylocker features. if fs.inSet(KEYLOCKER) && mfi >= 0x19 { _, ebx, _, _ := cpuidex(0x19, 0) @@ -1371,6 +1412,7 @@ func support() flagSet { fs.setIf(ebx&(1<<17) != 0, AVX10_256) fs.setIf(ebx&(1<<18) != 0, AVX10_512) } + } // Processor Extended State Enumeration Sub-leaf (EAX = 0DH, ECX = 1) @@ -1514,12 +1556,28 @@ func support() flagSet { } if maxExtendedFunction() >= 0x80000021 && vend == AMD { - a, _, _, _ := cpuid(0x80000021) + a, _, c, _ := cpuid(0x80000021) fs.setIf((a>>31)&1 == 1, SRSO_MSR_FIX) fs.setIf((a>>30)&1 == 1, SRSO_USER_KERNEL_NO) fs.setIf((a>>29)&1 == 1, SRSO_NO) fs.setIf((a>>28)&1 == 1, IBPB_BRTYPE) fs.setIf((a>>27)&1 == 1, SBPB) + fs.setIf((c>>1)&1 == 1, TSA_L1_NO) + fs.setIf((c>>2)&1 == 1, TSA_SQ_NO) + fs.setIf((a>>5)&1 == 1, TSA_VERW_CLEAR) + } + if vend == AMD { + if family < 0x19 { + // AMD CPUs that are older than Family 19h are not vulnerable to TSA but do not set TSA_L1_NO or TSA_SQ_NO. + // Source: https://www.amd.com/content/dam/amd/en/documents/resources/bulletin/technical-guidance-for-mitigating-transient-scheduler-attacks.pdf + fs.set(TSA_L1_NO) + fs.set(TSA_SQ_NO) + } else if family == 0x1a { + // AMD Family 1Ah models 00h-4Fh and 60h-7Fh are also not vulnerable to TSA but do not set TSA_L1_NO or TSA_SQ_NO. + // Future AMD CPUs will set these CPUID bits if appropriate. CPUs will be designed to set these CPUID bits if appropriate. + notVuln := model <= 0x4f || (model >= 0x60 && model <= 0x7f) + fs.setIf(notVuln, TSA_L1_NO, TSA_SQ_NO) + } } if mfi >= 0x20 { @@ -1575,3 +1633,47 @@ func valAsString(values ...uint32) []byte { } return r } + +func parseLeaf0AH(c *CPUInfo, eax, ebx, edx uint32) (info PerformanceMonitoringInfo) { + info.VersionID = uint8(eax & 0xFF) + info.NumGPCounters = uint8((eax >> 8) & 0xFF) + info.GPPMCWidth = uint8((eax >> 16) & 0xFF) + + info.RawEBX = ebx + info.RawEAX = eax + info.RawEDX = edx + + if info.VersionID > 1 { // This information is only valid if VersionID > 1 + info.NumFixedPMC = uint8(edx & 0x1F) // Bits 4:0 + info.FixedPMCWidth = uint8((edx >> 5) & 0xFF) // Bits 12:5 + } + if info.VersionID > 0 { + // first 4 fixed events are always instructions retired, cycles, ref cycles and topdown slots + if ebx == 0x0 && info.NumFixedPMC == 3 { + c.featureSet.set(PMU_FIXEDCOUNTER_INSTRUCTIONS) + c.featureSet.set(PMU_FIXEDCOUNTER_CYCLES) + c.featureSet.set(PMU_FIXEDCOUNTER_REFCYCLES) + } + if ebx == 0x0 && info.NumFixedPMC == 4 { + c.featureSet.set(PMU_FIXEDCOUNTER_INSTRUCTIONS) + c.featureSet.set(PMU_FIXEDCOUNTER_CYCLES) + c.featureSet.set(PMU_FIXEDCOUNTER_REFCYCLES) + c.featureSet.set(PMU_FIXEDCOUNTER_TOPDOWN_SLOTS) + } + if ebx != 0x0 { + if ((ebx >> 0) & 1) == 0 { + c.featureSet.set(PMU_FIXEDCOUNTER_INSTRUCTIONS) + } + if ((ebx >> 1) & 1) == 0 { + c.featureSet.set(PMU_FIXEDCOUNTER_CYCLES) + } + if ((ebx >> 2) & 1) == 0 { + c.featureSet.set(PMU_FIXEDCOUNTER_REFCYCLES) + } + if ((ebx >> 3) & 1) == 0 { + c.featureSet.set(PMU_FIXEDCOUNTER_TOPDOWN_SLOTS) + } + } + } + return info +} diff --git a/vendor/github.com/klauspost/cpuid/v2/detect_x86.go b/vendor/github.com/klauspost/cpuid/v2/detect_x86.go index f924c9d83..14a56b930 100644 --- a/vendor/github.com/klauspost/cpuid/v2/detect_x86.go +++ b/vendor/github.com/klauspost/cpuid/v2/detect_x86.go @@ -36,6 +36,10 @@ func addInfo(c *CPUInfo, safe bool) { c.AVX10Level = c.supportAVX10() c.cacheSize() c.frequencies() + if c.maxFunc >= 0x0A { + eax, ebx, _, edx := cpuid(0x0A) + c.PMU = parseLeaf0AH(c, eax, ebx, edx) + } } func getVectorLength() (vl, pl uint64) { return 0, 0 } diff --git a/vendor/github.com/klauspost/cpuid/v2/featureid_string.go b/vendor/github.com/klauspost/cpuid/v2/featureid_string.go index 07704351f..2888bae8f 100644 --- a/vendor/github.com/klauspost/cpuid/v2/featureid_string.go +++ b/vendor/github.com/klauspost/cpuid/v2/featureid_string.go @@ -154,95 +154,103 @@ func _() { _ = x[SEV_SNP-144] _ = x[SGX-145] _ = x[SGXLC-146] - _ = x[SHA-147] - _ = x[SME-148] - _ = x[SME_COHERENT-149] - _ = x[SM3_X86-150] - _ = x[SM4_X86-151] - _ = x[SPEC_CTRL_SSBD-152] - _ = x[SRBDS_CTRL-153] - _ = x[SRSO_MSR_FIX-154] - _ = x[SRSO_NO-155] - _ = x[SRSO_USER_KERNEL_NO-156] - _ = x[SSE-157] - _ = x[SSE2-158] - _ = x[SSE3-159] - _ = x[SSE4-160] - _ = x[SSE42-161] - _ = x[SSE4A-162] - _ = x[SSSE3-163] - _ = x[STIBP-164] - _ = x[STIBP_ALWAYSON-165] - _ = x[STOSB_SHORT-166] - _ = x[SUCCOR-167] - _ = x[SVM-168] - _ = x[SVMDA-169] - _ = x[SVMFBASID-170] - _ = x[SVML-171] - _ = x[SVMNP-172] - _ = x[SVMPF-173] - _ = x[SVMPFT-174] - _ = x[SYSCALL-175] - _ = x[SYSEE-176] - _ = x[TBM-177] - _ = x[TDX_GUEST-178] - _ = x[TLB_FLUSH_NESTED-179] - _ = x[TME-180] - _ = x[TOPEXT-181] - _ = x[TSCRATEMSR-182] - _ = x[TSXLDTRK-183] - _ = x[VAES-184] - _ = x[VMCBCLEAN-185] - _ = x[VMPL-186] - _ = x[VMSA_REGPROT-187] - _ = x[VMX-188] - _ = x[VPCLMULQDQ-189] - _ = x[VTE-190] - _ = x[WAITPKG-191] - _ = x[WBNOINVD-192] - _ = x[WRMSRNS-193] - _ = x[X87-194] - _ = x[XGETBV1-195] - _ = x[XOP-196] - _ = x[XSAVE-197] - _ = x[XSAVEC-198] - _ = x[XSAVEOPT-199] - _ = x[XSAVES-200] - _ = x[AESARM-201] - _ = x[ARMCPUID-202] - _ = x[ASIMD-203] - _ = x[ASIMDDP-204] - _ = x[ASIMDHP-205] - _ = x[ASIMDRDM-206] - _ = x[ATOMICS-207] - _ = x[CRC32-208] - _ = x[DCPOP-209] - _ = x[EVTSTRM-210] - _ = x[FCMA-211] - _ = x[FHM-212] - _ = x[FP-213] - _ = x[FPHP-214] - _ = x[GPA-215] - _ = x[JSCVT-216] - _ = x[LRCPC-217] - _ = x[PMULL-218] - _ = x[RNDR-219] - _ = x[TLB-220] - _ = x[TS-221] - _ = x[SHA1-222] - _ = x[SHA2-223] - _ = x[SHA3-224] - _ = x[SHA512-225] - _ = x[SM3-226] - _ = x[SM4-227] - _ = x[SVE-228] - _ = x[lastID-229] + _ = x[SGXPQC-147] + _ = x[SHA-148] + _ = x[SME-149] + _ = x[SME_COHERENT-150] + _ = x[SM3_X86-151] + _ = x[SM4_X86-152] + _ = x[SPEC_CTRL_SSBD-153] + _ = x[SRBDS_CTRL-154] + _ = x[SRSO_MSR_FIX-155] + _ = x[SRSO_NO-156] + _ = x[SRSO_USER_KERNEL_NO-157] + _ = x[SSE-158] + _ = x[SSE2-159] + _ = x[SSE3-160] + _ = x[SSE4-161] + _ = x[SSE42-162] + _ = x[SSE4A-163] + _ = x[SSSE3-164] + _ = x[STIBP-165] + _ = x[STIBP_ALWAYSON-166] + _ = x[STOSB_SHORT-167] + _ = x[SUCCOR-168] + _ = x[SVM-169] + _ = x[SVMDA-170] + _ = x[SVMFBASID-171] + _ = x[SVML-172] + _ = x[SVMNP-173] + _ = x[SVMPF-174] + _ = x[SVMPFT-175] + _ = x[SYSCALL-176] + _ = x[SYSEE-177] + _ = x[TBM-178] + _ = x[TDX_GUEST-179] + _ = x[TLB_FLUSH_NESTED-180] + _ = x[TME-181] + _ = x[TOPEXT-182] + _ = x[TSA_L1_NO-183] + _ = x[TSA_SQ_NO-184] + _ = x[TSA_VERW_CLEAR-185] + _ = x[TSCRATEMSR-186] + _ = x[TSXLDTRK-187] + _ = x[VAES-188] + _ = x[VMCBCLEAN-189] + _ = x[VMPL-190] + _ = x[VMSA_REGPROT-191] + _ = x[VMX-192] + _ = x[VPCLMULQDQ-193] + _ = x[VTE-194] + _ = x[WAITPKG-195] + _ = x[WBNOINVD-196] + _ = x[WRMSRNS-197] + _ = x[X87-198] + _ = x[XGETBV1-199] + _ = x[XOP-200] + _ = x[XSAVE-201] + _ = x[XSAVEC-202] + _ = x[XSAVEOPT-203] + _ = x[XSAVES-204] + _ = x[AESARM-205] + _ = x[ARMCPUID-206] + _ = x[ASIMD-207] + _ = x[ASIMDDP-208] + _ = x[ASIMDHP-209] + _ = x[ASIMDRDM-210] + _ = x[ATOMICS-211] + _ = x[CRC32-212] + _ = x[DCPOP-213] + _ = x[EVTSTRM-214] + _ = x[FCMA-215] + _ = x[FHM-216] + _ = x[FP-217] + _ = x[FPHP-218] + _ = x[GPA-219] + _ = x[JSCVT-220] + _ = x[LRCPC-221] + _ = x[PMULL-222] + _ = x[RNDR-223] + _ = x[TLB-224] + _ = x[TS-225] + _ = x[SHA1-226] + _ = x[SHA2-227] + _ = x[SHA3-228] + _ = x[SHA512-229] + _ = x[SM3-230] + _ = x[SM4-231] + _ = x[SVE-232] + _ = x[PMU_FIXEDCOUNTER_CYCLES-233] + _ = x[PMU_FIXEDCOUNTER_REFCYCLES-234] + _ = x[PMU_FIXEDCOUNTER_INSTRUCTIONS-235] + _ = x[PMU_FIXEDCOUNTER_TOPDOWN_SLOTS-236] + _ = x[lastID-237] _ = x[firstID-0] } -const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXFP8AMXTILEAMXTF32AMXCOMPLEXAMXTRANSPOSEAPX_FAVXAVX10AVX10_128AVX10_256AVX10_512AVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8AVXVNNIINT16BHI_CTRLBMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBPB_BRTYPEIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4IDPRED_CTRLINT_WBINVDINVLPGBKEYLOCKERKEYLOCKERWLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSRLISTMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRRSBA_CTRLRTMRTM_ALWAYS_ABORTSBPBSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSHASMESME_COHERENTSM3_X86SM4_X86SPEC_CTRL_SSBDSRBDS_CTRLSRSO_MSR_FIXSRSO_NOSRSO_USER_KERNEL_NOSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTDX_GUESTTLB_FLUSH_NESTEDTMETOPEXTTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDWRMSRNSX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFHMFPFPHPGPAJSCVTLRCPCPMULLRNDRTLBTSSHA1SHA2SHA3SHA512SM3SM4SVElastID" +const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXFP8AMXTILEAMXTF32AMXCOMPLEXAMXTRANSPOSEAPX_FAVXAVX10AVX10_128AVX10_256AVX10_512AVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8AVXVNNIINT16BHI_CTRLBMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBPB_BRTYPEIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4IDPRED_CTRLINT_WBINVDINVLPGBKEYLOCKERKEYLOCKERWLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSRLISTMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRRSBA_CTRLRTMRTM_ALWAYS_ABORTSBPBSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSGXPQCSHASMESME_COHERENTSM3_X86SM4_X86SPEC_CTRL_SSBDSRBDS_CTRLSRSO_MSR_FIXSRSO_NOSRSO_USER_KERNEL_NOSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTDX_GUESTTLB_FLUSH_NESTEDTMETOPEXTTSA_L1_NOTSA_SQ_NOTSA_VERW_CLEARTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDWRMSRNSX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFHMFPFPHPGPAJSCVTLRCPCPMULLRNDRTLBTSSHA1SHA2SHA3SHA512SM3SM4SVEPMU_FIXEDCOUNTER_CYCLESPMU_FIXEDCOUNTER_REFCYCLESPMU_FIXEDCOUNTER_INSTRUCTIONSPMU_FIXEDCOUNTER_TOPDOWN_SLOTSlastID" -var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 61, 68, 75, 85, 97, 102, 105, 110, 119, 128, 137, 141, 151, 163, 171, 179, 187, 195, 202, 212, 222, 230, 240, 251, 259, 269, 287, 302, 309, 321, 328, 335, 346, 358, 366, 370, 374, 380, 385, 393, 398, 404, 408, 417, 435, 443, 450, 454, 458, 472, 478, 482, 486, 495, 499, 503, 508, 513, 517, 521, 528, 532, 535, 541, 544, 547, 557, 567, 580, 593, 597, 608, 612, 626, 643, 646, 656, 667, 673, 681, 692, 700, 712, 728, 742, 753, 763, 778, 786, 797, 807, 814, 823, 833, 837, 840, 847, 852, 863, 870, 877, 885, 888, 894, 899, 908, 915, 923, 927, 930, 936, 943, 956, 961, 963, 970, 977, 983, 987, 996, 1000, 1005, 1011, 1017, 1023, 1033, 1036, 1052, 1056, 1065, 1068, 1077, 1092, 1105, 1111, 1125, 1132, 1135, 1140, 1143, 1146, 1158, 1165, 1172, 1186, 1196, 1208, 1215, 1234, 1237, 1241, 1245, 1249, 1254, 1259, 1264, 1269, 1283, 1294, 1300, 1303, 1308, 1317, 1321, 1326, 1331, 1337, 1344, 1349, 1352, 1361, 1377, 1380, 1386, 1396, 1404, 1408, 1417, 1421, 1433, 1436, 1446, 1449, 1456, 1464, 1471, 1474, 1481, 1484, 1489, 1495, 1503, 1509, 1515, 1523, 1528, 1535, 1542, 1550, 1557, 1562, 1567, 1574, 1578, 1581, 1583, 1587, 1590, 1595, 1600, 1605, 1609, 1612, 1614, 1618, 1622, 1626, 1632, 1635, 1638, 1641, 1647} +var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 61, 68, 75, 85, 97, 102, 105, 110, 119, 128, 137, 141, 151, 163, 171, 179, 187, 195, 202, 212, 222, 230, 240, 251, 259, 269, 287, 302, 309, 321, 328, 335, 346, 358, 366, 370, 374, 380, 385, 393, 398, 404, 408, 417, 435, 443, 450, 454, 458, 472, 478, 482, 486, 495, 499, 503, 508, 513, 517, 521, 528, 532, 535, 541, 544, 547, 557, 567, 580, 593, 597, 608, 612, 626, 643, 646, 656, 667, 673, 681, 692, 700, 712, 728, 742, 753, 763, 778, 786, 797, 807, 814, 823, 833, 837, 840, 847, 852, 863, 870, 877, 885, 888, 894, 899, 908, 915, 923, 927, 930, 936, 943, 956, 961, 963, 970, 977, 983, 987, 996, 1000, 1005, 1011, 1017, 1023, 1033, 1036, 1052, 1056, 1065, 1068, 1077, 1092, 1105, 1111, 1125, 1132, 1135, 1140, 1146, 1149, 1152, 1164, 1171, 1178, 1192, 1202, 1214, 1221, 1240, 1243, 1247, 1251, 1255, 1260, 1265, 1270, 1275, 1289, 1300, 1306, 1309, 1314, 1323, 1327, 1332, 1337, 1343, 1350, 1355, 1358, 1367, 1383, 1386, 1392, 1401, 1410, 1424, 1434, 1442, 1446, 1455, 1459, 1471, 1474, 1484, 1487, 1494, 1502, 1509, 1512, 1519, 1522, 1527, 1533, 1541, 1547, 1553, 1561, 1566, 1573, 1580, 1588, 1595, 1600, 1605, 1612, 1616, 1619, 1621, 1625, 1628, 1633, 1638, 1643, 1647, 1650, 1652, 1656, 1660, 1664, 1670, 1673, 1676, 1679, 1702, 1728, 1757, 1787, 1793} func (i FeatureID) String() string { if i < 0 || i >= FeatureID(len(_FeatureID_index)-1) { diff --git a/vendor/golang.org/x/crypto/curve25519/curve25519.go b/vendor/golang.org/x/crypto/curve25519/curve25519.go index 8ff087df4..048faef3a 100644 --- a/vendor/golang.org/x/crypto/curve25519/curve25519.go +++ b/vendor/golang.org/x/crypto/curve25519/curve25519.go @@ -3,11 +3,14 @@ // license that can be found in the LICENSE file. // Package curve25519 provides an implementation of the X25519 function, which -// performs scalar multiplication on the elliptic curve known as Curve25519. -// See RFC 7748. +// performs scalar multiplication on the elliptic curve known as Curve25519 +// according to [RFC 7748]. // -// This package is a wrapper for the X25519 implementation -// in the crypto/ecdh package. +// The curve25519 package is a wrapper for the X25519 implementation in the +// crypto/ecdh package. It is [frozen] and is not accepting new features. +// +// [RFC 7748]: https://datatracker.ietf.org/doc/html/rfc7748 +// [frozen]: https://go.dev/wiki/Frozen package curve25519 import "crypto/ecdh" diff --git a/vendor/golang.org/x/crypto/ed25519/ed25519.go b/vendor/golang.org/x/crypto/ed25519/ed25519.go index 59b3a95a7..df453dcce 100644 --- a/vendor/golang.org/x/crypto/ed25519/ed25519.go +++ b/vendor/golang.org/x/crypto/ed25519/ed25519.go @@ -2,16 +2,19 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Package ed25519 implements the Ed25519 signature algorithm. See -// https://ed25519.cr.yp.to/. +// Package ed25519 implements the Ed25519 signature algorithm. // // These functions are also compatible with the “Ed25519” function defined in -// RFC 8032. However, unlike RFC 8032's formulation, this package's private key +// [RFC 8032]. However, unlike RFC 8032's formulation, this package's private key // representation includes a public key suffix to make multiple signing // operations with the same key more efficient. This package refers to the RFC // 8032 private key as the “seed”. // -// This package is a wrapper around the standard library crypto/ed25519 package. +// The ed25519 package is a wrapper for the Ed25519 implementation in the +// crypto/ed25519 package. It is [frozen] and is not accepting new features. +// +// [RFC 8032]: https://datatracker.ietf.org/doc/html/rfc8032 +// [frozen]: https://go.dev/wiki/Frozen package ed25519 import ( diff --git a/vendor/golang.org/x/crypto/ssh/cipher.go b/vendor/golang.org/x/crypto/ssh/cipher.go index 6a5b582aa..7554ed57a 100644 --- a/vendor/golang.org/x/crypto/ssh/cipher.go +++ b/vendor/golang.org/x/crypto/ssh/cipher.go @@ -8,6 +8,7 @@ import ( "crypto/aes" "crypto/cipher" "crypto/des" + "crypto/fips140" "crypto/rc4" "crypto/subtle" "encoding/binary" @@ -15,6 +16,7 @@ import ( "fmt" "hash" "io" + "slices" "golang.org/x/crypto/chacha20" "golang.org/x/crypto/internal/poly1305" @@ -93,41 +95,41 @@ func streamCipherMode(skip int, createFunc func(key, iv []byte) (cipher.Stream, } // cipherModes documents properties of supported ciphers. Ciphers not included -// are not supported and will not be negotiated, even if explicitly requested in -// ClientConfig.Crypto.Ciphers. -var cipherModes = map[string]*cipherMode{ - // Ciphers from RFC 4344, which introduced many CTR-based ciphers. Algorithms - // are defined in the order specified in the RFC. - CipherAES128CTR: {16, aes.BlockSize, streamCipherMode(0, newAESCTR)}, - CipherAES192CTR: {24, aes.BlockSize, streamCipherMode(0, newAESCTR)}, - CipherAES256CTR: {32, aes.BlockSize, streamCipherMode(0, newAESCTR)}, - - // Ciphers from RFC 4345, which introduces security-improved arcfour ciphers. - // They are defined in the order specified in the RFC. - InsecureCipherRC4128: {16, 0, streamCipherMode(1536, newRC4)}, - InsecureCipherRC4256: {32, 0, streamCipherMode(1536, newRC4)}, - - // Cipher defined in RFC 4253, which describes SSH Transport Layer Protocol. - // Note that this cipher is not safe, as stated in RFC 4253: "Arcfour (and - // RC4) has problems with weak keys, and should be used with caution." - // RFC 4345 introduces improved versions of Arcfour. - InsecureCipherRC4: {16, 0, streamCipherMode(0, newRC4)}, - - // AEAD ciphers - CipherAES128GCM: {16, 12, newGCMCipher}, - CipherAES256GCM: {32, 12, newGCMCipher}, - CipherChaCha20Poly1305: {64, 0, newChaCha20Cipher}, - +// are not supported and will not be negotiated, even if explicitly configured. +// When FIPS mode is enabled, only FIPS-approved algorithms are included. +var cipherModes = map[string]*cipherMode{} + +func init() { + cipherModes[CipherAES128CTR] = &cipherMode{16, aes.BlockSize, streamCipherMode(0, newAESCTR)} + cipherModes[CipherAES192CTR] = &cipherMode{24, aes.BlockSize, streamCipherMode(0, newAESCTR)} + cipherModes[CipherAES256CTR] = &cipherMode{32, aes.BlockSize, streamCipherMode(0, newAESCTR)} + // Use of GCM with arbitrary IVs is not allowed in FIPS 140-only mode, + // we'll wire it up to NewGCMForSSH in Go 1.26. + // + // For now it means we'll work with fips140=on but not fips140=only. + cipherModes[CipherAES128GCM] = &cipherMode{16, 12, newGCMCipher} + cipherModes[CipherAES256GCM] = &cipherMode{32, 12, newGCMCipher} + + if fips140.Enabled() { + defaultCiphers = slices.DeleteFunc(defaultCiphers, func(algo string) bool { + _, ok := cipherModes[algo] + return !ok + }) + return + } + + cipherModes[CipherChaCha20Poly1305] = &cipherMode{64, 0, newChaCha20Cipher} + // Insecure ciphers not included in the default configuration. + cipherModes[InsecureCipherRC4128] = &cipherMode{16, 0, streamCipherMode(1536, newRC4)} + cipherModes[InsecureCipherRC4256] = &cipherMode{32, 0, streamCipherMode(1536, newRC4)} + cipherModes[InsecureCipherRC4] = &cipherMode{16, 0, streamCipherMode(0, newRC4)} // CBC mode is insecure and so is not included in the default config. // (See https://www.ieee-security.org/TC/SP2013/papers/4977a526.pdf). If absolutely // needed, it's possible to specify a custom Config to enable it. // You should expect that an active attacker can recover plaintext if // you do. - InsecureCipherAES128CBC: {16, aes.BlockSize, newAESCBCCipher}, - - // 3des-cbc is insecure and is not included in the default - // config. - InsecureCipherTripleDESCBC: {24, des.BlockSize, newTripleDESCBCCipher}, + cipherModes[InsecureCipherAES128CBC] = &cipherMode{16, aes.BlockSize, newAESCBCCipher} + cipherModes[InsecureCipherTripleDESCBC] = &cipherMode{24, des.BlockSize, newTripleDESCBCCipher} } // prefixLen is the length of the packet prefix that contains the packet length diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go index c12818fdc..3127e4990 100644 --- a/vendor/golang.org/x/crypto/ssh/client_auth.go +++ b/vendor/golang.org/x/crypto/ssh/client_auth.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "io" + "slices" "strings" ) @@ -83,7 +84,7 @@ func (c *connection) clientAuthenticate(config *ClientConfig) error { // success return nil } else if ok == authFailure { - if m := auth.method(); !contains(tried, m) { + if m := auth.method(); !slices.Contains(tried, m) { tried = append(tried, m) } } @@ -97,7 +98,7 @@ func (c *connection) clientAuthenticate(config *ClientConfig) error { findNext: for _, a := range config.Auth { candidateMethod := a.method() - if contains(tried, candidateMethod) { + if slices.Contains(tried, candidateMethod) { continue } for _, meth := range methods { @@ -117,15 +118,6 @@ func (c *connection) clientAuthenticate(config *ClientConfig) error { return fmt.Errorf("ssh: unable to authenticate, attempted methods %v, no supported methods remain", tried) } -func contains(list []string, e string) bool { - for _, s := range list { - if s == e { - return true - } - } - return false -} - // An AuthMethod represents an instance of an RFC 4252 authentication method. type AuthMethod interface { // auth authenticates user over transport t. @@ -255,7 +247,7 @@ func pickSignatureAlgorithm(signer Signer, extensions map[string][]byte) (MultiA // Fallback to use if there is no "server-sig-algs" extension or a // common algorithm cannot be found. We use the public key format if the // MultiAlgorithmSigner supports it, otherwise we return an error. - if !contains(as.Algorithms(), underlyingAlgo(keyFormat)) { + if !slices.Contains(as.Algorithms(), underlyingAlgo(keyFormat)) { return "", fmt.Errorf("ssh: no common public key signature algorithm, server only supports %q for key type %q, signer only supports %v", underlyingAlgo(keyFormat), keyFormat, as.Algorithms()) } @@ -284,7 +276,7 @@ func pickSignatureAlgorithm(signer Signer, extensions map[string][]byte) (MultiA // Filter algorithms based on those supported by MultiAlgorithmSigner. var keyAlgos []string for _, algo := range algorithmsForKeyFormat(keyFormat) { - if contains(as.Algorithms(), underlyingAlgo(algo)) { + if slices.Contains(as.Algorithms(), underlyingAlgo(algo)) { keyAlgos = append(keyAlgos, algo) } } @@ -334,7 +326,7 @@ func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand // the key try to use the obtained algorithm as if "server-sig-algs" had // not been implemented if supported from the algorithm signer. if !ok && idx < origSignersLen && isRSACert(algo) && algo != CertAlgoRSAv01 { - if contains(as.Algorithms(), KeyAlgoRSA) { + if slices.Contains(as.Algorithms(), KeyAlgoRSA) { // We retry using the compat algorithm after all signers have // been tried normally. signers = append(signers, &multiAlgorithmSigner{ @@ -385,7 +377,7 @@ func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand // contain the "publickey" method, do not attempt to authenticate with any // other keys. According to RFC 4252 Section 7, the latter can occur when // additional authentication methods are required. - if success == authSuccess || !contains(methods, cb.method()) { + if success == authSuccess || !slices.Contains(methods, cb.method()) { return success, methods, err } } @@ -434,7 +426,7 @@ func confirmKeyAck(key PublicKey, c packetConn) (bool, error) { // servers send the key type instead. OpenSSH allows any algorithm // that matches the public key, so we do the same. // https://github.com/openssh/openssh-portable/blob/86bdd385/sshconnect2.c#L709 - if !contains(algorithmsForKeyFormat(key.Type()), msg.Algo) { + if !slices.Contains(algorithmsForKeyFormat(key.Type()), msg.Algo) { return false, nil } if !bytes.Equal(msg.PubKey, pubKey) { diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go index 8bfad16c4..2e44e9c9e 100644 --- a/vendor/golang.org/x/crypto/ssh/common.go +++ b/vendor/golang.org/x/crypto/ssh/common.go @@ -6,6 +6,7 @@ package ssh import ( "crypto" + "crypto/fips140" "crypto/rand" "fmt" "io" @@ -256,6 +257,40 @@ type Algorithms struct { PublicKeyAuths []string } +func init() { + if fips140.Enabled() { + defaultHostKeyAlgos = slices.DeleteFunc(defaultHostKeyAlgos, func(algo string) bool { + _, err := hashFunc(underlyingAlgo(algo)) + return err != nil + }) + defaultPubKeyAuthAlgos = slices.DeleteFunc(defaultPubKeyAuthAlgos, func(algo string) bool { + _, err := hashFunc(underlyingAlgo(algo)) + return err != nil + }) + } +} + +func hashFunc(format string) (crypto.Hash, error) { + switch format { + case KeyAlgoRSASHA256, KeyAlgoECDSA256, KeyAlgoSKED25519, KeyAlgoSKECDSA256: + return crypto.SHA256, nil + case KeyAlgoECDSA384: + return crypto.SHA384, nil + case KeyAlgoRSASHA512, KeyAlgoECDSA521: + return crypto.SHA512, nil + case KeyAlgoED25519: + // KeyAlgoED25519 doesn't pre-hash. + return 0, nil + case KeyAlgoRSA, InsecureKeyAlgoDSA: + if fips140.Enabled() { + return 0, fmt.Errorf("ssh: hash algorithm for format %q not allowed in FIPS 140 mode", format) + } + return crypto.SHA1, nil + default: + return 0, fmt.Errorf("ssh: hash algorithm for format %q not mapped", format) + } +} + // SupportedAlgorithms returns algorithms currently implemented by this package, // excluding those with security issues, which are returned by // InsecureAlgorithms. The algorithms listed here are in preference order. @@ -283,21 +318,6 @@ func InsecureAlgorithms() Algorithms { var supportedCompressions = []string{compressionNone} -// hashFuncs keeps the mapping of supported signature algorithms to their -// respective hashes needed for signing and verification. -var hashFuncs = map[string]crypto.Hash{ - KeyAlgoRSA: crypto.SHA1, - KeyAlgoRSASHA256: crypto.SHA256, - KeyAlgoRSASHA512: crypto.SHA512, - InsecureKeyAlgoDSA: crypto.SHA1, - KeyAlgoECDSA256: crypto.SHA256, - KeyAlgoECDSA384: crypto.SHA384, - KeyAlgoECDSA521: crypto.SHA512, - // KeyAlgoED25519 doesn't pre-hash. - KeyAlgoSKECDSA256: crypto.SHA256, - KeyAlgoSKED25519: crypto.SHA256, -} - // algorithmsForKeyFormat returns the supported signature algorithms for a given // public key format (PublicKey.Type), in order of preference. See RFC 8332, // Section 2. See also the note in sendKexInit on backwards compatibility. @@ -312,11 +332,40 @@ func algorithmsForKeyFormat(keyFormat string) []string { } } +// keyFormatForAlgorithm returns the key format corresponding to the given +// signature algorithm. It returns an empty string if the signature algorithm is +// invalid or unsupported. +func keyFormatForAlgorithm(sigAlgo string) string { + switch sigAlgo { + case KeyAlgoRSA, KeyAlgoRSASHA256, KeyAlgoRSASHA512: + return KeyAlgoRSA + case CertAlgoRSAv01, CertAlgoRSASHA256v01, CertAlgoRSASHA512v01: + return CertAlgoRSAv01 + case KeyAlgoED25519, + KeyAlgoSKED25519, + KeyAlgoSKECDSA256, + KeyAlgoECDSA256, + KeyAlgoECDSA384, + KeyAlgoECDSA521, + InsecureKeyAlgoDSA, + InsecureCertAlgoDSAv01, + CertAlgoECDSA256v01, + CertAlgoECDSA384v01, + CertAlgoECDSA521v01, + CertAlgoSKECDSA256v01, + CertAlgoED25519v01, + CertAlgoSKED25519v01: + return sigAlgo + default: + return "" + } +} + // isRSA returns whether algo is a supported RSA algorithm, including certificate // algorithms. func isRSA(algo string) bool { algos := algorithmsForKeyFormat(KeyAlgoRSA) - return contains(algos, underlyingAlgo(algo)) + return slices.Contains(algos, underlyingAlgo(algo)) } func isRSACert(algo string) bool { @@ -515,7 +564,7 @@ func (c *Config) SetDefaults() { if kexAlgoMap[k] != nil { // Ignore the KEX if we have no kexAlgoMap definition. kexs = append(kexs, k) - if k == KeyExchangeCurve25519 && !contains(c.KeyExchanges, keyExchangeCurve25519LibSSH) { + if k == KeyExchangeCurve25519 && !slices.Contains(c.KeyExchanges, keyExchangeCurve25519LibSSH) { kexs = append(kexs, keyExchangeCurve25519LibSSH) } } diff --git a/vendor/golang.org/x/crypto/ssh/doc.go b/vendor/golang.org/x/crypto/ssh/doc.go index 04ccce346..5b4de9eff 100644 --- a/vendor/golang.org/x/crypto/ssh/doc.go +++ b/vendor/golang.org/x/crypto/ssh/doc.go @@ -17,8 +17,18 @@ References: [PROTOCOL.certkeys]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL.certkeys?rev=HEAD [SSH-PARAMETERS]: http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xml#ssh-parameters-1 [SSH-CERTS]: https://datatracker.ietf.org/doc/html/draft-miller-ssh-cert-01 + [FIPS 140-3 mode]: https://go.dev/doc/security/fips140 This package does not fall under the stability promise of the Go language itself, so its API may be changed when pressing needs arise. + +# FIPS 140-3 mode + +When the program is in [FIPS 140-3 mode], this package behaves as if only SP +800-140C and SP 800-140D approved cipher suites, signature algorithms, +certificate public key types and sizes, and key exchange and derivation +algorithms were implemented. Others are silently ignored and not negotiated, or +rejected. This set may depend on the algorithms supported by the FIPS 140-3 Go +Cryptographic Module selected with GOFIPS140, and may change across Go versions. */ package ssh diff --git a/vendor/golang.org/x/crypto/ssh/handshake.go b/vendor/golang.org/x/crypto/ssh/handshake.go index a90bfe331..4be3cbb6d 100644 --- a/vendor/golang.org/x/crypto/ssh/handshake.go +++ b/vendor/golang.org/x/crypto/ssh/handshake.go @@ -10,6 +10,7 @@ import ( "io" "log" "net" + "slices" "strings" "sync" ) @@ -527,7 +528,7 @@ func (t *handshakeTransport) sendKexInit() error { switch s := k.(type) { case MultiAlgorithmSigner: for _, algo := range algorithmsForKeyFormat(keyFormat) { - if contains(s.Algorithms(), underlyingAlgo(algo)) { + if slices.Contains(s.Algorithms(), underlyingAlgo(algo)) { msg.ServerHostKeyAlgos = append(msg.ServerHostKeyAlgos, algo) } } @@ -679,7 +680,7 @@ func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { return err } - if t.sessionID == nil && ((isClient && contains(serverInit.KexAlgos, kexStrictServer)) || (!isClient && contains(clientInit.KexAlgos, kexStrictClient))) { + if t.sessionID == nil && ((isClient && slices.Contains(serverInit.KexAlgos, kexStrictServer)) || (!isClient && slices.Contains(clientInit.KexAlgos, kexStrictClient))) { t.strictMode = true if err := t.conn.setStrictMode(); err != nil { return err @@ -736,7 +737,7 @@ func (t *handshakeTransport) enterKeyExchange(otherInitPacket []byte) error { // On the server side, after the first SSH_MSG_NEWKEYS, send a SSH_MSG_EXT_INFO // message with the server-sig-algs extension if the client supports it. See // RFC 8308, Sections 2.4 and 3.1, and [PROTOCOL], Section 1.9. - if !isClient && firstKeyExchange && contains(clientInit.KexAlgos, "ext-info-c") { + if !isClient && firstKeyExchange && slices.Contains(clientInit.KexAlgos, "ext-info-c") { supportedPubKeyAuthAlgosList := strings.Join(t.publicKeyAuthAlgorithms, ",") extInfo := &extInfoMsg{ NumExtensions: 2, @@ -790,7 +791,7 @@ func (a algorithmSignerWrapper) SignWithAlgorithm(rand io.Reader, data []byte, a func pickHostKey(hostKeys []Signer, algo string) AlgorithmSigner { for _, k := range hostKeys { if s, ok := k.(MultiAlgorithmSigner); ok { - if !contains(s.Algorithms(), underlyingAlgo(algo)) { + if !slices.Contains(s.Algorithms(), underlyingAlgo(algo)) { continue } } diff --git a/vendor/golang.org/x/crypto/ssh/kex.go b/vendor/golang.org/x/crypto/ssh/kex.go index 78aaf0310..5f7fdd851 100644 --- a/vendor/golang.org/x/crypto/ssh/kex.go +++ b/vendor/golang.org/x/crypto/ssh/kex.go @@ -8,12 +8,14 @@ import ( "crypto" "crypto/ecdsa" "crypto/elliptic" + "crypto/fips140" "crypto/rand" "encoding/binary" "errors" "fmt" "io" "math/big" + "slices" "golang.org/x/crypto/curve25519" ) @@ -395,9 +397,27 @@ func ecHash(curve elliptic.Curve) crypto.Hash { return crypto.SHA512 } +// kexAlgoMap defines the supported KEXs. KEXs not included are not supported +// and will not be negotiated, even if explicitly configured. When FIPS mode is +// enabled, only FIPS-approved algorithms are included. var kexAlgoMap = map[string]kexAlgorithm{} func init() { + // mlkem768x25519-sha256 we'll work with fips140=on but not fips140=only + // until Go 1.26. + kexAlgoMap[KeyExchangeMLKEM768X25519] = &mlkem768WithCurve25519sha256{} + kexAlgoMap[KeyExchangeECDHP521] = &ecdh{elliptic.P521()} + kexAlgoMap[KeyExchangeECDHP384] = &ecdh{elliptic.P384()} + kexAlgoMap[KeyExchangeECDHP256] = &ecdh{elliptic.P256()} + + if fips140.Enabled() { + defaultKexAlgos = slices.DeleteFunc(defaultKexAlgos, func(algo string) bool { + _, ok := kexAlgoMap[algo] + return !ok + }) + return + } + p, _ := new(big.Int).SetString(oakleyGroup2, 16) kexAlgoMap[InsecureKeyExchangeDH1SHA1] = &dhGroup{ g: new(big.Int).SetInt64(2), @@ -431,14 +451,10 @@ func init() { hashFunc: crypto.SHA512, } - kexAlgoMap[KeyExchangeECDHP521] = &ecdh{elliptic.P521()} - kexAlgoMap[KeyExchangeECDHP384] = &ecdh{elliptic.P384()} - kexAlgoMap[KeyExchangeECDHP256] = &ecdh{elliptic.P256()} kexAlgoMap[KeyExchangeCurve25519] = &curve25519sha256{} kexAlgoMap[keyExchangeCurve25519LibSSH] = &curve25519sha256{} kexAlgoMap[InsecureKeyExchangeDHGEXSHA1] = &dhGEXSHA{hashFunc: crypto.SHA1} kexAlgoMap[KeyExchangeDHGEXSHA256] = &dhGEXSHA{hashFunc: crypto.SHA256} - kexAlgoMap[KeyExchangeMLKEM768X25519] = &mlkem768WithCurve25519sha256{} } // curve25519sha256 implements the curve25519-sha256 (formerly known as diff --git a/vendor/golang.org/x/crypto/ssh/keys.go b/vendor/golang.org/x/crypto/ssh/keys.go index a28c0de50..a035956fc 100644 --- a/vendor/golang.org/x/crypto/ssh/keys.go +++ b/vendor/golang.org/x/crypto/ssh/keys.go @@ -27,6 +27,7 @@ import ( "fmt" "io" "math/big" + "slices" "strings" "golang.org/x/crypto/ssh/internal/bcrypt_pbkdf" @@ -89,6 +90,11 @@ func parsePubKey(in []byte, algo string) (pubKey PublicKey, rest []byte, err err } return cert, nil, nil } + if keyFormat := keyFormatForAlgorithm(algo); keyFormat != "" { + return nil, nil, fmt.Errorf("ssh: signature algorithm %q isn't a key format; key is malformed and should be re-encoded with type %q", + algo, keyFormat) + } + return nil, nil, fmt.Errorf("ssh: unknown key algorithm: %v", algo) } @@ -191,9 +197,10 @@ func ParseKnownHosts(in []byte) (marker string, hosts []string, pubKey PublicKey return "", nil, nil, "", nil, io.EOF } -// ParseAuthorizedKey parses a public key from an authorized_keys -// file used in OpenSSH according to the sshd(8) manual page. +// ParseAuthorizedKey parses a public key from an authorized_keys file used in +// OpenSSH according to the sshd(8) manual page. Invalid lines are ignored. func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []string, rest []byte, err error) { + var lastErr error for len(in) > 0 { end := bytes.IndexByte(in, '\n') if end != -1 { @@ -222,6 +229,8 @@ func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []str if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { return out, comment, options, rest, nil + } else { + lastErr = err } // No key type recognised. Maybe there's an options field at @@ -264,12 +273,18 @@ func ParseAuthorizedKey(in []byte) (out PublicKey, comment string, options []str if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { options = candidateOptions return out, comment, options, rest, nil + } else { + lastErr = err } in = rest continue } + if lastErr != nil { + return nil, "", nil, nil, fmt.Errorf("ssh: no key found; last parsing error for ignored line: %w", lastErr) + } + return nil, "", nil, nil, errors.New("ssh: no key found") } @@ -395,11 +410,11 @@ func NewSignerWithAlgorithms(signer AlgorithmSigner, algorithms []string) (Multi } for _, algo := range algorithms { - if !contains(supportedAlgos, algo) { + if !slices.Contains(supportedAlgos, algo) { return nil, fmt.Errorf("ssh: algorithm %q is not supported for key type %q", algo, signer.PublicKey().Type()) } - if !contains(signerAlgos, algo) { + if !slices.Contains(signerAlgos, algo) { return nil, fmt.Errorf("ssh: algorithm %q is restricted for the provided signer", algo) } } @@ -486,10 +501,13 @@ func (r *rsaPublicKey) Marshal() []byte { func (r *rsaPublicKey) Verify(data []byte, sig *Signature) error { supportedAlgos := algorithmsForKeyFormat(r.Type()) - if !contains(supportedAlgos, sig.Format) { + if !slices.Contains(supportedAlgos, sig.Format) { return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, r.Type()) } - hash := hashFuncs[sig.Format] + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } h := hash.New() h.Write(data) digest := h.Sum(nil) @@ -606,7 +624,11 @@ func (k *dsaPublicKey) Verify(data []byte, sig *Signature) error { if sig.Format != k.Type() { return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) } - h := hashFuncs[sig.Format].New() + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } + h := hash.New() h.Write(data) digest := h.Sum(nil) @@ -651,7 +673,11 @@ func (k *dsaPrivateKey) SignWithAlgorithm(rand io.Reader, data []byte, algorithm return nil, fmt.Errorf("ssh: unsupported signature algorithm %s", algorithm) } - h := hashFuncs[k.PublicKey().Type()].New() + hash, err := hashFunc(k.PublicKey().Type()) + if err != nil { + return nil, err + } + h := hash.New() h.Write(data) digest := h.Sum(nil) r, s, err := dsa.Sign(rand, k.PrivateKey, digest) @@ -801,8 +827,11 @@ func (k *ecdsaPublicKey) Verify(data []byte, sig *Signature) error { if sig.Format != k.Type() { return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) } - - h := hashFuncs[sig.Format].New() + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } + h := hash.New() h.Write(data) digest := h.Sum(nil) @@ -905,8 +934,11 @@ func (k *skECDSAPublicKey) Verify(data []byte, sig *Signature) error { if sig.Format != k.Type() { return fmt.Errorf("ssh: signature type %s for key type %s", sig.Format, k.Type()) } - - h := hashFuncs[sig.Format].New() + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } + h := hash.New() h.Write([]byte(k.application)) appDigest := h.Sum(nil) @@ -1009,7 +1041,11 @@ func (k *skEd25519PublicKey) Verify(data []byte, sig *Signature) error { return fmt.Errorf("invalid size %d for Ed25519 public key", l) } - h := hashFuncs[sig.Format].New() + hash, err := hashFunc(sig.Format) + if err != nil { + return err + } + h := hash.New() h.Write([]byte(k.application)) appDigest := h.Sum(nil) @@ -1112,11 +1148,14 @@ func (s *wrappedSigner) SignWithAlgorithm(rand io.Reader, data []byte, algorithm algorithm = s.pubKey.Type() } - if !contains(s.Algorithms(), algorithm) { + if !slices.Contains(s.Algorithms(), algorithm) { return nil, fmt.Errorf("ssh: unsupported signature algorithm %q for key format %q", algorithm, s.pubKey.Type()) } - hashFunc := hashFuncs[algorithm] + hashFunc, err := hashFunc(algorithm) + if err != nil { + return nil, err + } var digest []byte if hashFunc != 0 { h := hashFunc.New() diff --git a/vendor/golang.org/x/crypto/ssh/mac.go b/vendor/golang.org/x/crypto/ssh/mac.go index de2639d57..87d626fbb 100644 --- a/vendor/golang.org/x/crypto/ssh/mac.go +++ b/vendor/golang.org/x/crypto/ssh/mac.go @@ -7,11 +7,13 @@ package ssh // Message authentication support import ( + "crypto/fips140" "crypto/hmac" "crypto/sha1" "crypto/sha256" "crypto/sha512" "hash" + "slices" ) type macMode struct { @@ -46,23 +48,37 @@ func (t truncatingMAC) Size() int { func (t truncatingMAC) BlockSize() int { return t.hmac.BlockSize() } -var macModes = map[string]*macMode{ - HMACSHA512ETM: {64, true, func(key []byte) hash.Hash { +// macModes defines the supported MACs. MACs not included are not supported +// and will not be negotiated, even if explicitly configured. When FIPS mode is +// enabled, only FIPS-approved algorithms are included. +var macModes = map[string]*macMode{} + +func init() { + macModes[HMACSHA512ETM] = &macMode{64, true, func(key []byte) hash.Hash { return hmac.New(sha512.New, key) - }}, - HMACSHA256ETM: {32, true, func(key []byte) hash.Hash { + }} + macModes[HMACSHA256ETM] = &macMode{32, true, func(key []byte) hash.Hash { return hmac.New(sha256.New, key) - }}, - HMACSHA512: {64, false, func(key []byte) hash.Hash { + }} + macModes[HMACSHA512] = &macMode{64, false, func(key []byte) hash.Hash { return hmac.New(sha512.New, key) - }}, - HMACSHA256: {32, false, func(key []byte) hash.Hash { + }} + macModes[HMACSHA256] = &macMode{32, false, func(key []byte) hash.Hash { return hmac.New(sha256.New, key) - }}, - HMACSHA1: {20, false, func(key []byte) hash.Hash { + }} + + if fips140.Enabled() { + defaultMACs = slices.DeleteFunc(defaultMACs, func(algo string) bool { + _, ok := macModes[algo] + return !ok + }) + return + } + + macModes[HMACSHA1] = &macMode{20, false, func(key []byte) hash.Hash { return hmac.New(sha1.New, key) - }}, - InsecureHMACSHA196: {20, false, func(key []byte) hash.Hash { + }} + macModes[InsecureHMACSHA196] = &macMode{20, false, func(key []byte) hash.Hash { return truncatingMAC{12, hmac.New(sha1.New, key)} - }}, + }} } diff --git a/vendor/golang.org/x/crypto/ssh/server.go b/vendor/golang.org/x/crypto/ssh/server.go index 98679ba5b..064dcbaf5 100644 --- a/vendor/golang.org/x/crypto/ssh/server.go +++ b/vendor/golang.org/x/crypto/ssh/server.go @@ -10,6 +10,7 @@ import ( "fmt" "io" "net" + "slices" "strings" ) @@ -43,6 +44,9 @@ type Permissions struct { // pass data from the authentication callbacks to the server // application layer. Extensions map[string]string + + // ExtraData allows to store user defined data. + ExtraData map[any]any } type GSSAPIWithMICConfig struct { @@ -126,6 +130,21 @@ type ServerConfig struct { // Permissions.Extensions entry. PublicKeyCallback func(conn ConnMetadata, key PublicKey) (*Permissions, error) + // VerifiedPublicKeyCallback, if non-nil, is called after a client + // successfully confirms having control over a key that was previously + // approved by PublicKeyCallback. The permissions object passed to the + // callback is the one returned by PublicKeyCallback for the given public + // key and its ownership is transferred to the callback. The returned + // Permissions object can be the same object, optionally modified, or a + // completely new object. If VerifiedPublicKeyCallback is non-nil, + // PublicKeyCallback is not allowed to return a PartialSuccessError, which + // can instead be returned by VerifiedPublicKeyCallback. + // + // VerifiedPublicKeyCallback does not affect which authentication methods + // are included in the list of methods that can be attempted by the client. + VerifiedPublicKeyCallback func(conn ConnMetadata, key PublicKey, permissions *Permissions, + signatureAlgorithm string) (*Permissions, error) + // KeyboardInteractiveCallback, if non-nil, is called when // keyboard-interactive authentication is selected (RFC // 4256). The client object's Challenge function should be @@ -246,7 +265,7 @@ func NewServerConn(c net.Conn, config *ServerConfig) (*ServerConn, <-chan NewCha fullConf.PublicKeyAuthAlgorithms = defaultPubKeyAuthAlgos } else { for _, algo := range fullConf.PublicKeyAuthAlgorithms { - if !contains(SupportedAlgorithms().PublicKeyAuths, algo) && !contains(InsecureAlgorithms().PublicKeyAuths, algo) { + if !slices.Contains(SupportedAlgorithms().PublicKeyAuths, algo) && !slices.Contains(InsecureAlgorithms().PublicKeyAuths, algo) { c.Close() return nil, nil, nil, fmt.Errorf("ssh: unsupported public key authentication algorithm %s", algo) } @@ -631,7 +650,7 @@ userAuthLoop: return nil, parseError(msgUserAuthRequest) } algo := string(algoBytes) - if !contains(config.PublicKeyAuthAlgorithms, underlyingAlgo(algo)) { + if !slices.Contains(config.PublicKeyAuthAlgorithms, underlyingAlgo(algo)) { authErr = fmt.Errorf("ssh: algorithm %q not accepted", algo) break } @@ -652,6 +671,9 @@ userAuthLoop: candidate.pubKeyData = pubKeyData candidate.perms, candidate.result = authConfig.PublicKeyCallback(s, pubKey) _, isPartialSuccessError := candidate.result.(*PartialSuccessError) + if isPartialSuccessError && config.VerifiedPublicKeyCallback != nil { + return nil, errors.New("ssh: invalid library usage: PublicKeyCallback must not return partial success when VerifiedPublicKeyCallback is defined") + } if (candidate.result == nil || isPartialSuccessError) && candidate.perms != nil && @@ -695,7 +717,7 @@ userAuthLoop: // ssh-rsa-cert-v01@openssh.com algorithm with ssh-rsa public // key type. The algorithm and public key type must be // consistent: both must be certificate algorithms, or neither. - if !contains(algorithmsForKeyFormat(pubKey.Type()), algo) { + if !slices.Contains(algorithmsForKeyFormat(pubKey.Type()), algo) { authErr = fmt.Errorf("ssh: public key type %q not compatible with selected algorithm %q", pubKey.Type(), algo) break @@ -705,7 +727,7 @@ userAuthLoop: // algorithm name that corresponds to algo with // sig.Format. This is usually the same, but // for certs, the names differ. - if !contains(config.PublicKeyAuthAlgorithms, sig.Format) { + if !slices.Contains(config.PublicKeyAuthAlgorithms, sig.Format) { authErr = fmt.Errorf("ssh: algorithm %q not accepted", sig.Format) break } @@ -722,6 +744,12 @@ userAuthLoop: authErr = candidate.result perms = candidate.perms + if authErr == nil && config.VerifiedPublicKeyCallback != nil { + // Only call VerifiedPublicKeyCallback after the key has been accepted + // and successfully verified. If authErr is non-nil, the key is not + // considered verified and the callback must not run. + perms, authErr = config.VerifiedPublicKeyCallback(s, pubKey, perms, algo) + } } case "gssapi-with-mic": if authConfig.GSSAPIWithMICConfig == nil { diff --git a/vendor/golang.org/x/crypto/ssh/transport.go b/vendor/golang.org/x/crypto/ssh/transport.go index 663619845..fa3dd6a42 100644 --- a/vendor/golang.org/x/crypto/ssh/transport.go +++ b/vendor/golang.org/x/crypto/ssh/transport.go @@ -8,6 +8,7 @@ import ( "bufio" "bytes" "errors" + "fmt" "io" "log" ) @@ -254,6 +255,9 @@ var ( // (to setup server->client keys) or clientKeys (for client->server keys). func newPacketCipher(d direction, algs DirectionAlgorithms, kex *kexResult) (packetCipher, error) { cipherMode := cipherModes[algs.Cipher] + if cipherMode == nil { + return nil, fmt.Errorf("ssh: unsupported cipher %v", algs.Cipher) + } iv := make([]byte, cipherMode.ivSize) key := make([]byte, cipherMode.keySize) diff --git a/vendor/golang.org/x/net/html/escape.go b/vendor/golang.org/x/net/html/escape.go index 04c6bec21..12f227370 100644 --- a/vendor/golang.org/x/net/html/escape.go +++ b/vendor/golang.org/x/net/html/escape.go @@ -299,7 +299,7 @@ func escape(w writer, s string) error { case '\r': esc = " " default: - panic("unrecognized escape character") + panic("html: unrecognized escape character") } s = s[i+1:] if _, err := w.WriteString(esc); err != nil { diff --git a/vendor/golang.org/x/net/html/parse.go b/vendor/golang.org/x/net/html/parse.go index 518ee4c94..88fc0056a 100644 --- a/vendor/golang.org/x/net/html/parse.go +++ b/vendor/golang.org/x/net/html/parse.go @@ -136,7 +136,7 @@ func (p *parser) indexOfElementInScope(s scope, matchTags ...a.Atom) int { return -1 } default: - panic("unreachable") + panic(fmt.Sprintf("html: internal error: indexOfElementInScope unknown scope: %d", s)) } } switch s { @@ -179,7 +179,7 @@ func (p *parser) clearStackToContext(s scope) { return } default: - panic("unreachable") + panic(fmt.Sprintf("html: internal error: clearStackToContext unknown scope: %d", s)) } } } @@ -231,7 +231,14 @@ func (p *parser) addChild(n *Node) { } if n.Type == ElementNode { - p.oe = append(p.oe, n) + p.insertOpenElement(n) + } +} + +func (p *parser) insertOpenElement(n *Node) { + p.oe = append(p.oe, n) + if len(p.oe) > 512 { + panic("html: open stack of elements exceeds 512 nodes") } } @@ -810,7 +817,7 @@ func afterHeadIM(p *parser) bool { p.im = inFramesetIM return true case a.Base, a.Basefont, a.Bgsound, a.Link, a.Meta, a.Noframes, a.Script, a.Style, a.Template, a.Title: - p.oe = append(p.oe, p.head) + p.insertOpenElement(p.head) defer p.oe.remove(p.head) return inHeadIM(p) case a.Head: @@ -1678,7 +1685,7 @@ func inTableBodyIM(p *parser) bool { return inTableIM(p) } -// Section 12.2.6.4.14. +// Section 13.2.6.4.14. func inRowIM(p *parser) bool { switch p.tok.Type { case StartTagToken: @@ -1690,7 +1697,9 @@ func inRowIM(p *parser) bool { p.im = inCellIM return true case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead, a.Tr: - if p.popUntil(tableScope, a.Tr) { + if p.elementInScope(tableScope, a.Tr) { + p.clearStackToContext(tableRowScope) + p.oe.pop() p.im = inTableBodyIM return false } @@ -1700,22 +1709,28 @@ func inRowIM(p *parser) bool { case EndTagToken: switch p.tok.DataAtom { case a.Tr: - if p.popUntil(tableScope, a.Tr) { + if p.elementInScope(tableScope, a.Tr) { + p.clearStackToContext(tableRowScope) + p.oe.pop() p.im = inTableBodyIM return true } // Ignore the token. return true case a.Table: - if p.popUntil(tableScope, a.Tr) { + if p.elementInScope(tableScope, a.Tr) { + p.clearStackToContext(tableRowScope) + p.oe.pop() p.im = inTableBodyIM return false } // Ignore the token. return true case a.Tbody, a.Tfoot, a.Thead: - if p.elementInScope(tableScope, p.tok.DataAtom) { - p.parseImpliedToken(EndTagToken, a.Tr, a.Tr.String()) + if p.elementInScope(tableScope, p.tok.DataAtom) && p.elementInScope(tableScope, a.Tr) { + p.clearStackToContext(tableRowScope) + p.oe.pop() + p.im = inTableBodyIM return false } // Ignore the token. @@ -2222,16 +2237,20 @@ func parseForeignContent(p *parser) bool { p.acknowledgeSelfClosingTag() } case EndTagToken: + if strings.EqualFold(p.oe[len(p.oe)-1].Data, p.tok.Data) { + p.oe = p.oe[:len(p.oe)-1] + return true + } for i := len(p.oe) - 1; i >= 0; i-- { - if p.oe[i].Namespace == "" { - return p.im(p) - } if strings.EqualFold(p.oe[i].Data, p.tok.Data) { p.oe = p.oe[:i] + return true + } + if i > 0 && p.oe[i-1].Namespace == "" { break } } - return true + return p.im(p) default: // Ignore the token. } @@ -2312,9 +2331,13 @@ func (p *parser) parseCurrentToken() { } } -func (p *parser) parse() error { +func (p *parser) parse() (err error) { + defer func() { + if panicErr := recover(); panicErr != nil { + err = fmt.Errorf("%s", panicErr) + } + }() // Iterate until EOF. Any other error will cause an early return. - var err error for err != io.EOF { // CDATA sections are allowed only in foreign content. n := p.oe.top() @@ -2343,6 +2366,8 @@ func (p *parser) parse() error { // s. Conversely, explicit s in r's data can be silently dropped, // with no corresponding node in the resulting tree. // +// Parse will reject HTML that is nested deeper than 512 elements. +// // The input is assumed to be UTF-8 encoded. func Parse(r io.Reader) (*Node, error) { return ParseWithOptions(r) diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go index e8c123345..0157d89e1 100644 --- a/vendor/golang.org/x/net/html/render.go +++ b/vendor/golang.org/x/net/html/render.go @@ -184,7 +184,7 @@ func render1(w writer, n *Node) error { return err } - // Add initial newline where there is danger of a newline beging ignored. + // Add initial newline where there is danger of a newline being ignored. if c := n.FirstChild; c != nil && c.Type == TextNode && strings.HasPrefix(c.Data, "\n") { switch n.Data { case "pre", "listing", "textarea": diff --git a/vendor/golang.org/x/net/http2/config.go b/vendor/golang.org/x/net/http2/config.go index 02fe0c2d4..8a7a89d01 100644 --- a/vendor/golang.org/x/net/http2/config.go +++ b/vendor/golang.org/x/net/http2/config.go @@ -27,6 +27,7 @@ import ( // - If the resulting value is zero or out of range, use a default. type http2Config struct { MaxConcurrentStreams uint32 + StrictMaxConcurrentRequests bool MaxDecoderHeaderTableSize uint32 MaxEncoderHeaderTableSize uint32 MaxReadFrameSize uint32 @@ -64,12 +65,13 @@ func configFromServer(h1 *http.Server, h2 *Server) http2Config { // (the net/http Transport). func configFromTransport(h2 *Transport) http2Config { conf := http2Config{ - MaxEncoderHeaderTableSize: h2.MaxEncoderHeaderTableSize, - MaxDecoderHeaderTableSize: h2.MaxDecoderHeaderTableSize, - MaxReadFrameSize: h2.MaxReadFrameSize, - SendPingTimeout: h2.ReadIdleTimeout, - PingTimeout: h2.PingTimeout, - WriteByteTimeout: h2.WriteByteTimeout, + StrictMaxConcurrentRequests: h2.StrictMaxConcurrentStreams, + MaxEncoderHeaderTableSize: h2.MaxEncoderHeaderTableSize, + MaxDecoderHeaderTableSize: h2.MaxDecoderHeaderTableSize, + MaxReadFrameSize: h2.MaxReadFrameSize, + SendPingTimeout: h2.ReadIdleTimeout, + PingTimeout: h2.PingTimeout, + WriteByteTimeout: h2.WriteByteTimeout, } // Unlike most config fields, where out-of-range values revert to the default, @@ -128,6 +130,9 @@ func fillNetHTTPConfig(conf *http2Config, h2 *http.HTTP2Config) { if h2.MaxConcurrentStreams != 0 { conf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams) } + if http2ConfigStrictMaxConcurrentRequests(h2) { + conf.StrictMaxConcurrentRequests = true + } if h2.MaxEncoderHeaderTableSize != 0 { conf.MaxEncoderHeaderTableSize = uint32(h2.MaxEncoderHeaderTableSize) } diff --git a/vendor/golang.org/x/net/http2/config_go125.go b/vendor/golang.org/x/net/http2/config_go125.go new file mode 100644 index 000000000..b4373fe33 --- /dev/null +++ b/vendor/golang.org/x/net/http2/config_go125.go @@ -0,0 +1,15 @@ +// Copyright 2025 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. + +//go:build !go1.26 + +package http2 + +import ( + "net/http" +) + +func http2ConfigStrictMaxConcurrentRequests(h2 *http.HTTP2Config) bool { + return false +} diff --git a/vendor/golang.org/x/net/http2/config_go126.go b/vendor/golang.org/x/net/http2/config_go126.go new file mode 100644 index 000000000..6b071c149 --- /dev/null +++ b/vendor/golang.org/x/net/http2/config_go126.go @@ -0,0 +1,15 @@ +// Copyright 2025 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. + +//go:build go1.26 + +package http2 + +import ( + "net/http" +) + +func http2ConfigStrictMaxConcurrentRequests(h2 *http.HTTP2Config) bool { + return h2.StrictMaxConcurrentRequests +} diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index db3264da8..93bcaab03 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -347,7 +347,7 @@ func (fr *Framer) maxHeaderListSize() uint32 { func (f *Framer) startWrite(ftype FrameType, flags Flags, streamID uint32) { // Write the FrameHeader. f.wbuf = append(f.wbuf[:0], - 0, // 3 bytes of length, filled in in endWrite + 0, // 3 bytes of length, filled in endWrite 0, 0, byte(ftype), @@ -1152,6 +1152,15 @@ type PriorityFrame struct { PriorityParam } +var defaultRFC9218Priority = PriorityParam{ + incremental: 0, + urgency: 3, +} + +// Note that HTTP/2 has had two different prioritization schemes, and +// PriorityParam struct below is a superset of both schemes. The exported +// symbols are from RFC 7540 and the non-exported ones are from RFC 9218. + // PriorityParam are the stream prioritzation parameters. type PriorityParam struct { // StreamDep is a 31-bit stream identifier for the @@ -1167,6 +1176,20 @@ type PriorityParam struct { // the spec, "Add one to the value to obtain a weight between // 1 and 256." Weight uint8 + + // "The urgency (u) parameter value is Integer (see Section 3.3.1 of + // [STRUCTURED-FIELDS]), between 0 and 7 inclusive, in descending order of + // priority. The default is 3." + urgency uint8 + + // "The incremental (i) parameter value is Boolean (see Section 3.3.6 of + // [STRUCTURED-FIELDS]). It indicates if an HTTP response can be processed + // incrementally, i.e., provide some meaningful output as chunks of the + // response arrive." + // + // We use uint8 (i.e. 0 is false, 1 is true) instead of bool so we can + // avoid unnecessary type conversions and because either type takes 1 byte. + incremental uint8 } func (p PriorityParam) IsZero() bool { diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go index 6878f8ecc..105fe12fe 100644 --- a/vendor/golang.org/x/net/http2/http2.go +++ b/vendor/golang.org/x/net/http2/http2.go @@ -34,7 +34,6 @@ var ( VerboseLogs bool logFrameWrites bool logFrameReads bool - inTests bool // Enabling extended CONNECT by causes browsers to attempt to use // WebSockets-over-HTTP/2. This results in problems when the server's websocket diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index 64085f6e1..bdc5520eb 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -181,6 +181,10 @@ type Server struct { type serverInternalState struct { mu sync.Mutex activeConns map[*serverConn]struct{} + + // Pool of error channels. This is per-Server rather than global + // because channels can't be reused across synctest bubbles. + errChanPool sync.Pool } func (s *serverInternalState) registerConn(sc *serverConn) { @@ -212,6 +216,27 @@ func (s *serverInternalState) startGracefulShutdown() { s.mu.Unlock() } +// Global error channel pool used for uninitialized Servers. +// We use a per-Server pool when possible to avoid using channels across synctest bubbles. +var errChanPool = sync.Pool{ + New: func() any { return make(chan error, 1) }, +} + +func (s *serverInternalState) getErrChan() chan error { + if s == nil { + return errChanPool.Get().(chan error) // Server used without calling ConfigureServer + } + return s.errChanPool.Get().(chan error) +} + +func (s *serverInternalState) putErrChan(ch chan error) { + if s == nil { + errChanPool.Put(ch) // Server used without calling ConfigureServer + return + } + s.errChanPool.Put(ch) +} + // ConfigureServer adds HTTP/2 support to a net/http Server. // // The configuration conf may be nil. @@ -224,7 +249,10 @@ func ConfigureServer(s *http.Server, conf *Server) error { if conf == nil { conf = new(Server) } - conf.state = &serverInternalState{activeConns: make(map[*serverConn]struct{})} + conf.state = &serverInternalState{ + activeConns: make(map[*serverConn]struct{}), + errChanPool: sync.Pool{New: func() any { return make(chan error, 1) }}, + } if h1, h2 := s, conf; h2.IdleTimeout == 0 { if h1.IdleTimeout != 0 { h2.IdleTimeout = h1.IdleTimeout @@ -1124,25 +1152,6 @@ func (sc *serverConn) readPreface() error { } } -var errChanPool = sync.Pool{ - New: func() interface{} { return make(chan error, 1) }, -} - -func getErrChan() chan error { - if inTests { - // Channels cannot be reused across synctest tests. - return make(chan error, 1) - } else { - return errChanPool.Get().(chan error) - } -} - -func putErrChan(ch chan error) { - if !inTests { - errChanPool.Put(ch) - } -} - var writeDataPool = sync.Pool{ New: func() interface{} { return new(writeData) }, } @@ -1150,7 +1159,7 @@ var writeDataPool = sync.Pool{ // writeDataFromHandler writes DATA response frames from a handler on // the given stream. func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStream bool) error { - ch := getErrChan() + ch := sc.srv.state.getErrChan() writeArg := writeDataPool.Get().(*writeData) *writeArg = writeData{stream.id, data, endStream} err := sc.writeFrameFromHandler(FrameWriteRequest{ @@ -1182,7 +1191,7 @@ func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStrea return errStreamClosed } } - putErrChan(ch) + sc.srv.state.putErrChan(ch) if frameWriteDone { writeDataPool.Put(writeArg) } @@ -2436,7 +2445,7 @@ func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) erro // waiting for this frame to be written, so an http.Flush mid-handler // writes out the correct value of keys, before a handler later potentially // mutates it. - errc = getErrChan() + errc = sc.srv.state.getErrChan() } if err := sc.writeFrameFromHandler(FrameWriteRequest{ write: headerData, @@ -2448,7 +2457,7 @@ func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) erro if errc != nil { select { case err := <-errc: - putErrChan(errc) + sc.srv.state.putErrChan(errc) return err case <-sc.doneServing: return errClientDisconnected @@ -3129,7 +3138,7 @@ func (w *responseWriter) Push(target string, opts *http.PushOptions) error { method: opts.Method, url: u, header: cloneHeader(opts.Header), - done: getErrChan(), + done: sc.srv.state.getErrChan(), } select { @@ -3146,7 +3155,7 @@ func (w *responseWriter) Push(target string, opts *http.PushOptions) error { case <-st.cw: return errStreamClosed case err := <-msg.done: - putErrChan(msg.done) + sc.srv.state.putErrChan(msg.done) return err } } diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index 35e390251..be759b606 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -355,6 +355,7 @@ type ClientConn struct { readIdleTimeout time.Duration pingTimeout time.Duration extendedConnectAllowed bool + strictMaxConcurrentStreams bool // rstStreamPingsBlocked works around an unfortunate gRPC behavior. // gRPC strictly limits the number of PING frames that it will receive. @@ -784,7 +785,8 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro initialWindowSize: 65535, // spec default initialStreamRecvWindowSize: conf.MaxUploadBufferPerStream, maxConcurrentStreams: initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. - peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. + strictMaxConcurrentStreams: conf.StrictMaxConcurrentRequests, + peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. streams: make(map[uint32]*clientStream), singleUse: singleUse, seenSettingsChan: make(chan struct{}), @@ -1018,7 +1020,7 @@ func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) { return } var maxConcurrentOkay bool - if cc.t.StrictMaxConcurrentStreams { + if cc.strictMaxConcurrentStreams { // We'll tell the caller we can take a new request to // prevent the caller from dialing a new TCP // connection, but then we'll block later before diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go index cc893adc2..4d3890f99 100644 --- a/vendor/golang.org/x/net/http2/writesched.go +++ b/vendor/golang.org/x/net/http2/writesched.go @@ -42,6 +42,8 @@ type OpenStreamOptions struct { // PusherID is zero if the stream was initiated by the client. Otherwise, // PusherID names the stream that pushed the newly opened stream. PusherID uint32 + // priority is used to set the priority of the newly opened stream. + priority PriorityParam } // FrameWriteRequest is a request to write a frame. diff --git a/vendor/golang.org/x/net/http2/writesched_priority.go b/vendor/golang.org/x/net/http2/writesched_priority.go deleted file mode 100644 index f6783339d..000000000 --- a/vendor/golang.org/x/net/http2/writesched_priority.go +++ /dev/null @@ -1,451 +0,0 @@ -// Copyright 2016 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 ( - "fmt" - "math" - "sort" -) - -// RFC 7540, Section 5.3.5: the default weight is 16. -const priorityDefaultWeight = 15 // 16 = 15 + 1 - -// PriorityWriteSchedulerConfig configures a priorityWriteScheduler. -type PriorityWriteSchedulerConfig struct { - // MaxClosedNodesInTree controls the maximum number of closed streams to - // retain in the priority tree. Setting this to zero saves a small amount - // of memory at the cost of performance. - // - // See RFC 7540, Section 5.3.4: - // "It is possible for a stream to become closed while prioritization - // information ... is in transit. ... This potentially creates suboptimal - // prioritization, since the stream could be given a priority that is - // different from what is intended. To avoid these problems, an endpoint - // SHOULD retain stream prioritization state for a period after streams - // become closed. The longer state is retained, the lower the chance that - // streams are assigned incorrect or default priority values." - MaxClosedNodesInTree int - - // MaxIdleNodesInTree controls the maximum number of idle streams to - // retain in the priority tree. Setting this to zero saves a small amount - // of memory at the cost of performance. - // - // See RFC 7540, Section 5.3.4: - // Similarly, streams that are in the "idle" state can be assigned - // priority or become a parent of other streams. This allows for the - // creation of a grouping node in the dependency tree, which enables - // more flexible expressions of priority. Idle streams begin with a - // default priority (Section 5.3.5). - MaxIdleNodesInTree int - - // ThrottleOutOfOrderWrites enables write throttling to help ensure that - // data is delivered in priority order. This works around a race where - // stream B depends on stream A and both streams are about to call Write - // to queue DATA frames. If B wins the race, a naive scheduler would eagerly - // write as much data from B as possible, but this is suboptimal because A - // is a higher-priority stream. With throttling enabled, we write a small - // amount of data from B to minimize the amount of bandwidth that B can - // steal from A. - ThrottleOutOfOrderWrites bool -} - -// NewPriorityWriteScheduler constructs a WriteScheduler that schedules -// frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3. -// If cfg is nil, default options are used. -func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler { - if cfg == nil { - // For justification of these defaults, see: - // https://docs.google.com/document/d/1oLhNg1skaWD4_DtaoCxdSRN5erEXrH-KnLrMwEpOtFY - cfg = &PriorityWriteSchedulerConfig{ - MaxClosedNodesInTree: 10, - MaxIdleNodesInTree: 10, - ThrottleOutOfOrderWrites: false, - } - } - - ws := &priorityWriteScheduler{ - nodes: make(map[uint32]*priorityNode), - maxClosedNodesInTree: cfg.MaxClosedNodesInTree, - maxIdleNodesInTree: cfg.MaxIdleNodesInTree, - enableWriteThrottle: cfg.ThrottleOutOfOrderWrites, - } - ws.nodes[0] = &ws.root - if cfg.ThrottleOutOfOrderWrites { - ws.writeThrottleLimit = 1024 - } else { - ws.writeThrottleLimit = math.MaxInt32 - } - return ws -} - -type priorityNodeState int - -const ( - priorityNodeOpen priorityNodeState = iota - priorityNodeClosed - priorityNodeIdle -) - -// priorityNode is a node in an HTTP/2 priority tree. -// Each node is associated with a single stream ID. -// See RFC 7540, Section 5.3. -type priorityNode struct { - q writeQueue // queue of pending frames to write - id uint32 // id of the stream, or 0 for the root of the tree - weight uint8 // the actual weight is weight+1, so the value is in [1,256] - state priorityNodeState // open | closed | idle - bytes int64 // number of bytes written by this node, or 0 if closed - subtreeBytes int64 // sum(node.bytes) of all nodes in this subtree - - // These links form the priority tree. - parent *priorityNode - kids *priorityNode // start of the kids list - prev, next *priorityNode // doubly-linked list of siblings -} - -func (n *priorityNode) setParent(parent *priorityNode) { - if n == parent { - panic("setParent to self") - } - if n.parent == parent { - return - } - // Unlink from current parent. - if parent := n.parent; parent != nil { - if n.prev == nil { - parent.kids = n.next - } else { - n.prev.next = n.next - } - if n.next != nil { - n.next.prev = n.prev - } - } - // Link to new parent. - // If parent=nil, remove n from the tree. - // Always insert at the head of parent.kids (this is assumed by walkReadyInOrder). - n.parent = parent - if parent == nil { - n.next = nil - n.prev = nil - } else { - n.next = parent.kids - n.prev = nil - if n.next != nil { - n.next.prev = n - } - parent.kids = n - } -} - -func (n *priorityNode) addBytes(b int64) { - n.bytes += b - for ; n != nil; n = n.parent { - n.subtreeBytes += b - } -} - -// walkReadyInOrder iterates over the tree in priority order, calling f for each node -// with a non-empty write queue. When f returns true, this function returns true and the -// walk halts. tmp is used as scratch space for sorting. -// -// f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true -// if any ancestor p of n is still open (ignoring the root node). -func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f func(*priorityNode, bool) bool) bool { - if !n.q.empty() && f(n, openParent) { - return true - } - if n.kids == nil { - return false - } - - // Don't consider the root "open" when updating openParent since - // we can't send data frames on the root stream (only control frames). - if n.id != 0 { - openParent = openParent || (n.state == priorityNodeOpen) - } - - // Common case: only one kid or all kids have the same weight. - // Some clients don't use weights; other clients (like web browsers) - // use mostly-linear priority trees. - w := n.kids.weight - needSort := false - for k := n.kids.next; k != nil; k = k.next { - if k.weight != w { - needSort = true - break - } - } - if !needSort { - for k := n.kids; k != nil; k = k.next { - if k.walkReadyInOrder(openParent, tmp, f) { - return true - } - } - return false - } - - // Uncommon case: sort the child nodes. We remove the kids from the parent, - // then re-insert after sorting so we can reuse tmp for future sort calls. - *tmp = (*tmp)[:0] - for n.kids != nil { - *tmp = append(*tmp, n.kids) - n.kids.setParent(nil) - } - sort.Sort(sortPriorityNodeSiblings(*tmp)) - for i := len(*tmp) - 1; i >= 0; i-- { - (*tmp)[i].setParent(n) // setParent inserts at the head of n.kids - } - for k := n.kids; k != nil; k = k.next { - if k.walkReadyInOrder(openParent, tmp, f) { - return true - } - } - return false -} - -type sortPriorityNodeSiblings []*priorityNode - -func (z sortPriorityNodeSiblings) Len() int { return len(z) } -func (z sortPriorityNodeSiblings) Swap(i, k int) { z[i], z[k] = z[k], z[i] } -func (z sortPriorityNodeSiblings) Less(i, k int) bool { - // Prefer the subtree that has sent fewer bytes relative to its weight. - // See sections 5.3.2 and 5.3.4. - wi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes) - wk, bk := float64(z[k].weight+1), float64(z[k].subtreeBytes) - if bi == 0 && bk == 0 { - return wi >= wk - } - if bk == 0 { - return false - } - return bi/bk <= wi/wk -} - -type priorityWriteScheduler struct { - // root is the root of the priority tree, where root.id = 0. - // The root queues control frames that are not associated with any stream. - root priorityNode - - // nodes maps stream ids to priority tree nodes. - nodes map[uint32]*priorityNode - - // maxID is the maximum stream id in nodes. - maxID uint32 - - // lists of nodes that have been closed or are idle, but are kept in - // the tree for improved prioritization. When the lengths exceed either - // maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded. - closedNodes, idleNodes []*priorityNode - - // From the config. - maxClosedNodesInTree int - maxIdleNodesInTree int - writeThrottleLimit int32 - enableWriteThrottle bool - - // tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations. - tmp []*priorityNode - - // pool of empty queues for reuse. - queuePool writeQueuePool -} - -func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) { - // The stream may be currently idle but cannot be opened or closed. - if curr := ws.nodes[streamID]; curr != nil { - if curr.state != priorityNodeIdle { - panic(fmt.Sprintf("stream %d already opened", streamID)) - } - curr.state = priorityNodeOpen - return - } - - // RFC 7540, Section 5.3.5: - // "All streams are initially assigned a non-exclusive dependency on stream 0x0. - // Pushed streams initially depend on their associated stream. In both cases, - // streams are assigned a default weight of 16." - parent := ws.nodes[options.PusherID] - if parent == nil { - parent = &ws.root - } - n := &priorityNode{ - q: *ws.queuePool.get(), - id: streamID, - weight: priorityDefaultWeight, - state: priorityNodeOpen, - } - n.setParent(parent) - ws.nodes[streamID] = n - if streamID > ws.maxID { - ws.maxID = streamID - } -} - -func (ws *priorityWriteScheduler) CloseStream(streamID uint32) { - if streamID == 0 { - panic("violation of WriteScheduler interface: cannot close stream 0") - } - if ws.nodes[streamID] == nil { - panic(fmt.Sprintf("violation of WriteScheduler interface: unknown stream %d", streamID)) - } - if ws.nodes[streamID].state != priorityNodeOpen { - panic(fmt.Sprintf("violation of WriteScheduler interface: stream %d already closed", streamID)) - } - - n := ws.nodes[streamID] - n.state = priorityNodeClosed - n.addBytes(-n.bytes) - - q := n.q - ws.queuePool.put(&q) - n.q.s = nil - if ws.maxClosedNodesInTree > 0 { - ws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n) - } else { - ws.removeNode(n) - } -} - -func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) { - if streamID == 0 { - panic("adjustPriority on root") - } - - // If streamID does not exist, there are two cases: - // - A closed stream that has been removed (this will have ID <= maxID) - // - An idle stream that is being used for "grouping" (this will have ID > maxID) - n := ws.nodes[streamID] - if n == nil { - if streamID <= ws.maxID || ws.maxIdleNodesInTree == 0 { - return - } - ws.maxID = streamID - n = &priorityNode{ - q: *ws.queuePool.get(), - id: streamID, - weight: priorityDefaultWeight, - state: priorityNodeIdle, - } - n.setParent(&ws.root) - ws.nodes[streamID] = n - ws.addClosedOrIdleNode(&ws.idleNodes, ws.maxIdleNodesInTree, n) - } - - // Section 5.3.1: A dependency on a stream that is not currently in the tree - // results in that stream being given a default priority (Section 5.3.5). - parent := ws.nodes[priority.StreamDep] - if parent == nil { - n.setParent(&ws.root) - n.weight = priorityDefaultWeight - return - } - - // Ignore if the client tries to make a node its own parent. - if n == parent { - return - } - - // Section 5.3.3: - // "If a stream is made dependent on one of its own dependencies, the - // formerly dependent stream is first moved to be dependent on the - // reprioritized stream's previous parent. The moved dependency retains - // its weight." - // - // That is: if parent depends on n, move parent to depend on n.parent. - for x := parent.parent; x != nil; x = x.parent { - if x == n { - parent.setParent(n.parent) - break - } - } - - // Section 5.3.3: The exclusive flag causes the stream to become the sole - // dependency of its parent stream, causing other dependencies to become - // dependent on the exclusive stream. - if priority.Exclusive { - k := parent.kids - for k != nil { - next := k.next - if k != n { - k.setParent(n) - } - k = next - } - } - - n.setParent(parent) - n.weight = priority.Weight -} - -func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) { - var n *priorityNode - if wr.isControl() { - n = &ws.root - } else { - id := wr.StreamID() - n = ws.nodes[id] - if n == nil { - // id is an idle or closed stream. wr should not be a HEADERS or - // DATA frame. In other case, we push wr onto the root, rather - // than creating a new priorityNode. - if wr.DataSize() > 0 { - panic("add DATA on non-open stream") - } - n = &ws.root - } - } - n.q.push(wr) -} - -func (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) { - ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNode, openParent bool) bool { - limit := int32(math.MaxInt32) - if openParent { - limit = ws.writeThrottleLimit - } - wr, ok = n.q.consume(limit) - if !ok { - return false - } - n.addBytes(int64(wr.DataSize())) - // If B depends on A and B continuously has data available but A - // does not, gradually increase the throttling limit to allow B to - // steal more and more bandwidth from A. - if openParent { - ws.writeThrottleLimit += 1024 - if ws.writeThrottleLimit < 0 { - ws.writeThrottleLimit = math.MaxInt32 - } - } else if ws.enableWriteThrottle { - ws.writeThrottleLimit = 1024 - } - return true - }) - return wr, ok -} - -func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, maxSize int, n *priorityNode) { - if maxSize == 0 { - return - } - if len(*list) == maxSize { - // Remove the oldest node, then shift left. - ws.removeNode((*list)[0]) - x := (*list)[1:] - copy(*list, x) - *list = (*list)[:len(x)] - } - *list = append(*list, n) -} - -func (ws *priorityWriteScheduler) removeNode(n *priorityNode) { - for n.kids != nil { - n.kids.setParent(n.parent) - } - n.setParent(nil) - delete(ws.nodes, n.id) -} diff --git a/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go b/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go new file mode 100644 index 000000000..6d24d6a1b --- /dev/null +++ b/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go @@ -0,0 +1,451 @@ +// Copyright 2016 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 ( + "fmt" + "math" + "sort" +) + +// RFC 7540, Section 5.3.5: the default weight is 16. +const priorityDefaultWeightRFC7540 = 15 // 16 = 15 + 1 + +// PriorityWriteSchedulerConfig configures a priorityWriteScheduler. +type PriorityWriteSchedulerConfig struct { + // MaxClosedNodesInTree controls the maximum number of closed streams to + // retain in the priority tree. Setting this to zero saves a small amount + // of memory at the cost of performance. + // + // See RFC 7540, Section 5.3.4: + // "It is possible for a stream to become closed while prioritization + // information ... is in transit. ... This potentially creates suboptimal + // prioritization, since the stream could be given a priority that is + // different from what is intended. To avoid these problems, an endpoint + // SHOULD retain stream prioritization state for a period after streams + // become closed. The longer state is retained, the lower the chance that + // streams are assigned incorrect or default priority values." + MaxClosedNodesInTree int + + // MaxIdleNodesInTree controls the maximum number of idle streams to + // retain in the priority tree. Setting this to zero saves a small amount + // of memory at the cost of performance. + // + // See RFC 7540, Section 5.3.4: + // Similarly, streams that are in the "idle" state can be assigned + // priority or become a parent of other streams. This allows for the + // creation of a grouping node in the dependency tree, which enables + // more flexible expressions of priority. Idle streams begin with a + // default priority (Section 5.3.5). + MaxIdleNodesInTree int + + // ThrottleOutOfOrderWrites enables write throttling to help ensure that + // data is delivered in priority order. This works around a race where + // stream B depends on stream A and both streams are about to call Write + // to queue DATA frames. If B wins the race, a naive scheduler would eagerly + // write as much data from B as possible, but this is suboptimal because A + // is a higher-priority stream. With throttling enabled, we write a small + // amount of data from B to minimize the amount of bandwidth that B can + // steal from A. + ThrottleOutOfOrderWrites bool +} + +// NewPriorityWriteScheduler constructs a WriteScheduler that schedules +// frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3. +// If cfg is nil, default options are used. +func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler { + if cfg == nil { + // For justification of these defaults, see: + // https://docs.google.com/document/d/1oLhNg1skaWD4_DtaoCxdSRN5erEXrH-KnLrMwEpOtFY + cfg = &PriorityWriteSchedulerConfig{ + MaxClosedNodesInTree: 10, + MaxIdleNodesInTree: 10, + ThrottleOutOfOrderWrites: false, + } + } + + ws := &priorityWriteSchedulerRFC7540{ + nodes: make(map[uint32]*priorityNodeRFC7540), + maxClosedNodesInTree: cfg.MaxClosedNodesInTree, + maxIdleNodesInTree: cfg.MaxIdleNodesInTree, + enableWriteThrottle: cfg.ThrottleOutOfOrderWrites, + } + ws.nodes[0] = &ws.root + if cfg.ThrottleOutOfOrderWrites { + ws.writeThrottleLimit = 1024 + } else { + ws.writeThrottleLimit = math.MaxInt32 + } + return ws +} + +type priorityNodeStateRFC7540 int + +const ( + priorityNodeOpenRFC7540 priorityNodeStateRFC7540 = iota + priorityNodeClosedRFC7540 + priorityNodeIdleRFC7540 +) + +// priorityNodeRFC7540 is a node in an HTTP/2 priority tree. +// Each node is associated with a single stream ID. +// See RFC 7540, Section 5.3. +type priorityNodeRFC7540 struct { + q writeQueue // queue of pending frames to write + id uint32 // id of the stream, or 0 for the root of the tree + weight uint8 // the actual weight is weight+1, so the value is in [1,256] + state priorityNodeStateRFC7540 // open | closed | idle + bytes int64 // number of bytes written by this node, or 0 if closed + subtreeBytes int64 // sum(node.bytes) of all nodes in this subtree + + // These links form the priority tree. + parent *priorityNodeRFC7540 + kids *priorityNodeRFC7540 // start of the kids list + prev, next *priorityNodeRFC7540 // doubly-linked list of siblings +} + +func (n *priorityNodeRFC7540) setParent(parent *priorityNodeRFC7540) { + if n == parent { + panic("setParent to self") + } + if n.parent == parent { + return + } + // Unlink from current parent. + if parent := n.parent; parent != nil { + if n.prev == nil { + parent.kids = n.next + } else { + n.prev.next = n.next + } + if n.next != nil { + n.next.prev = n.prev + } + } + // Link to new parent. + // If parent=nil, remove n from the tree. + // Always insert at the head of parent.kids (this is assumed by walkReadyInOrder). + n.parent = parent + if parent == nil { + n.next = nil + n.prev = nil + } else { + n.next = parent.kids + n.prev = nil + if n.next != nil { + n.next.prev = n + } + parent.kids = n + } +} + +func (n *priorityNodeRFC7540) addBytes(b int64) { + n.bytes += b + for ; n != nil; n = n.parent { + n.subtreeBytes += b + } +} + +// walkReadyInOrder iterates over the tree in priority order, calling f for each node +// with a non-empty write queue. When f returns true, this function returns true and the +// walk halts. tmp is used as scratch space for sorting. +// +// f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true +// if any ancestor p of n is still open (ignoring the root node). +func (n *priorityNodeRFC7540) walkReadyInOrder(openParent bool, tmp *[]*priorityNodeRFC7540, f func(*priorityNodeRFC7540, bool) bool) bool { + if !n.q.empty() && f(n, openParent) { + return true + } + if n.kids == nil { + return false + } + + // Don't consider the root "open" when updating openParent since + // we can't send data frames on the root stream (only control frames). + if n.id != 0 { + openParent = openParent || (n.state == priorityNodeOpenRFC7540) + } + + // Common case: only one kid or all kids have the same weight. + // Some clients don't use weights; other clients (like web browsers) + // use mostly-linear priority trees. + w := n.kids.weight + needSort := false + for k := n.kids.next; k != nil; k = k.next { + if k.weight != w { + needSort = true + break + } + } + if !needSort { + for k := n.kids; k != nil; k = k.next { + if k.walkReadyInOrder(openParent, tmp, f) { + return true + } + } + return false + } + + // Uncommon case: sort the child nodes. We remove the kids from the parent, + // then re-insert after sorting so we can reuse tmp for future sort calls. + *tmp = (*tmp)[:0] + for n.kids != nil { + *tmp = append(*tmp, n.kids) + n.kids.setParent(nil) + } + sort.Sort(sortPriorityNodeSiblingsRFC7540(*tmp)) + for i := len(*tmp) - 1; i >= 0; i-- { + (*tmp)[i].setParent(n) // setParent inserts at the head of n.kids + } + for k := n.kids; k != nil; k = k.next { + if k.walkReadyInOrder(openParent, tmp, f) { + return true + } + } + return false +} + +type sortPriorityNodeSiblingsRFC7540 []*priorityNodeRFC7540 + +func (z sortPriorityNodeSiblingsRFC7540) Len() int { return len(z) } +func (z sortPriorityNodeSiblingsRFC7540) Swap(i, k int) { z[i], z[k] = z[k], z[i] } +func (z sortPriorityNodeSiblingsRFC7540) Less(i, k int) bool { + // Prefer the subtree that has sent fewer bytes relative to its weight. + // See sections 5.3.2 and 5.3.4. + wi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes) + wk, bk := float64(z[k].weight+1), float64(z[k].subtreeBytes) + if bi == 0 && bk == 0 { + return wi >= wk + } + if bk == 0 { + return false + } + return bi/bk <= wi/wk +} + +type priorityWriteSchedulerRFC7540 struct { + // root is the root of the priority tree, where root.id = 0. + // The root queues control frames that are not associated with any stream. + root priorityNodeRFC7540 + + // nodes maps stream ids to priority tree nodes. + nodes map[uint32]*priorityNodeRFC7540 + + // maxID is the maximum stream id in nodes. + maxID uint32 + + // lists of nodes that have been closed or are idle, but are kept in + // the tree for improved prioritization. When the lengths exceed either + // maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded. + closedNodes, idleNodes []*priorityNodeRFC7540 + + // From the config. + maxClosedNodesInTree int + maxIdleNodesInTree int + writeThrottleLimit int32 + enableWriteThrottle bool + + // tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations. + tmp []*priorityNodeRFC7540 + + // pool of empty queues for reuse. + queuePool writeQueuePool +} + +func (ws *priorityWriteSchedulerRFC7540) OpenStream(streamID uint32, options OpenStreamOptions) { + // The stream may be currently idle but cannot be opened or closed. + if curr := ws.nodes[streamID]; curr != nil { + if curr.state != priorityNodeIdleRFC7540 { + panic(fmt.Sprintf("stream %d already opened", streamID)) + } + curr.state = priorityNodeOpenRFC7540 + return + } + + // RFC 7540, Section 5.3.5: + // "All streams are initially assigned a non-exclusive dependency on stream 0x0. + // Pushed streams initially depend on their associated stream. In both cases, + // streams are assigned a default weight of 16." + parent := ws.nodes[options.PusherID] + if parent == nil { + parent = &ws.root + } + n := &priorityNodeRFC7540{ + q: *ws.queuePool.get(), + id: streamID, + weight: priorityDefaultWeightRFC7540, + state: priorityNodeOpenRFC7540, + } + n.setParent(parent) + ws.nodes[streamID] = n + if streamID > ws.maxID { + ws.maxID = streamID + } +} + +func (ws *priorityWriteSchedulerRFC7540) CloseStream(streamID uint32) { + if streamID == 0 { + panic("violation of WriteScheduler interface: cannot close stream 0") + } + if ws.nodes[streamID] == nil { + panic(fmt.Sprintf("violation of WriteScheduler interface: unknown stream %d", streamID)) + } + if ws.nodes[streamID].state != priorityNodeOpenRFC7540 { + panic(fmt.Sprintf("violation of WriteScheduler interface: stream %d already closed", streamID)) + } + + n := ws.nodes[streamID] + n.state = priorityNodeClosedRFC7540 + n.addBytes(-n.bytes) + + q := n.q + ws.queuePool.put(&q) + n.q.s = nil + if ws.maxClosedNodesInTree > 0 { + ws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n) + } else { + ws.removeNode(n) + } +} + +func (ws *priorityWriteSchedulerRFC7540) AdjustStream(streamID uint32, priority PriorityParam) { + if streamID == 0 { + panic("adjustPriority on root") + } + + // If streamID does not exist, there are two cases: + // - A closed stream that has been removed (this will have ID <= maxID) + // - An idle stream that is being used for "grouping" (this will have ID > maxID) + n := ws.nodes[streamID] + if n == nil { + if streamID <= ws.maxID || ws.maxIdleNodesInTree == 0 { + return + } + ws.maxID = streamID + n = &priorityNodeRFC7540{ + q: *ws.queuePool.get(), + id: streamID, + weight: priorityDefaultWeightRFC7540, + state: priorityNodeIdleRFC7540, + } + n.setParent(&ws.root) + ws.nodes[streamID] = n + ws.addClosedOrIdleNode(&ws.idleNodes, ws.maxIdleNodesInTree, n) + } + + // Section 5.3.1: A dependency on a stream that is not currently in the tree + // results in that stream being given a default priority (Section 5.3.5). + parent := ws.nodes[priority.StreamDep] + if parent == nil { + n.setParent(&ws.root) + n.weight = priorityDefaultWeightRFC7540 + return + } + + // Ignore if the client tries to make a node its own parent. + if n == parent { + return + } + + // Section 5.3.3: + // "If a stream is made dependent on one of its own dependencies, the + // formerly dependent stream is first moved to be dependent on the + // reprioritized stream's previous parent. The moved dependency retains + // its weight." + // + // That is: if parent depends on n, move parent to depend on n.parent. + for x := parent.parent; x != nil; x = x.parent { + if x == n { + parent.setParent(n.parent) + break + } + } + + // Section 5.3.3: The exclusive flag causes the stream to become the sole + // dependency of its parent stream, causing other dependencies to become + // dependent on the exclusive stream. + if priority.Exclusive { + k := parent.kids + for k != nil { + next := k.next + if k != n { + k.setParent(n) + } + k = next + } + } + + n.setParent(parent) + n.weight = priority.Weight +} + +func (ws *priorityWriteSchedulerRFC7540) Push(wr FrameWriteRequest) { + var n *priorityNodeRFC7540 + if wr.isControl() { + n = &ws.root + } else { + id := wr.StreamID() + n = ws.nodes[id] + if n == nil { + // id is an idle or closed stream. wr should not be a HEADERS or + // DATA frame. In other case, we push wr onto the root, rather + // than creating a new priorityNode. + if wr.DataSize() > 0 { + panic("add DATA on non-open stream") + } + n = &ws.root + } + } + n.q.push(wr) +} + +func (ws *priorityWriteSchedulerRFC7540) Pop() (wr FrameWriteRequest, ok bool) { + ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNodeRFC7540, openParent bool) bool { + limit := int32(math.MaxInt32) + if openParent { + limit = ws.writeThrottleLimit + } + wr, ok = n.q.consume(limit) + if !ok { + return false + } + n.addBytes(int64(wr.DataSize())) + // If B depends on A and B continuously has data available but A + // does not, gradually increase the throttling limit to allow B to + // steal more and more bandwidth from A. + if openParent { + ws.writeThrottleLimit += 1024 + if ws.writeThrottleLimit < 0 { + ws.writeThrottleLimit = math.MaxInt32 + } + } else if ws.enableWriteThrottle { + ws.writeThrottleLimit = 1024 + } + return true + }) + return wr, ok +} + +func (ws *priorityWriteSchedulerRFC7540) addClosedOrIdleNode(list *[]*priorityNodeRFC7540, maxSize int, n *priorityNodeRFC7540) { + if maxSize == 0 { + return + } + if len(*list) == maxSize { + // Remove the oldest node, then shift left. + ws.removeNode((*list)[0]) + x := (*list)[1:] + copy(*list, x) + *list = (*list)[:len(x)] + } + *list = append(*list, n) +} + +func (ws *priorityWriteSchedulerRFC7540) removeNode(n *priorityNodeRFC7540) { + for n.kids != nil { + n.kids.setParent(n.parent) + } + n.setParent(nil) + delete(ws.nodes, n.id) +} diff --git a/vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go b/vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go new file mode 100644 index 000000000..9b5b8808e --- /dev/null +++ b/vendor/golang.org/x/net/http2/writesched_priority_rfc9128.go @@ -0,0 +1,209 @@ +// Copyright 2025 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 ( + "fmt" + "math" +) + +type streamMetadata struct { + location *writeQueue + priority PriorityParam +} + +type priorityWriteSchedulerRFC9218 struct { + // control contains control frames (SETTINGS, PING, etc.). + control writeQueue + + // heads contain the head of a circular list of streams. + // We put these heads within a nested array that represents urgency and + // incremental, as defined in + // https://www.rfc-editor.org/rfc/rfc9218.html#name-priority-parameters. + // 8 represents u=0 up to u=7, and 2 represents i=false and i=true. + heads [8][2]*writeQueue + + // streams contains a mapping between each stream ID and their metadata, so + // we can quickly locate them when needing to, for example, adjust their + // priority. + streams map[uint32]streamMetadata + + // queuePool are empty queues for reuse. + queuePool writeQueuePool + + // prioritizeIncremental is used to determine whether we should prioritize + // incremental streams or not, when urgency is the same in a given Pop() + // call. + prioritizeIncremental bool +} + +func newPriorityWriteSchedulerRFC9128() WriteScheduler { + ws := &priorityWriteSchedulerRFC9218{ + streams: make(map[uint32]streamMetadata), + } + return ws +} + +func (ws *priorityWriteSchedulerRFC9218) OpenStream(streamID uint32, opt OpenStreamOptions) { + if ws.streams[streamID].location != nil { + panic(fmt.Errorf("stream %d already opened", streamID)) + } + q := ws.queuePool.get() + ws.streams[streamID] = streamMetadata{ + location: q, + priority: opt.priority, + } + + u, i := opt.priority.urgency, opt.priority.incremental + if ws.heads[u][i] == nil { + ws.heads[u][i] = q + q.next = q + q.prev = q + } else { + // Queues are stored in a ring. + // Insert the new stream before ws.head, putting it at the end of the list. + q.prev = ws.heads[u][i].prev + q.next = ws.heads[u][i] + q.prev.next = q + q.next.prev = q + } +} + +func (ws *priorityWriteSchedulerRFC9218) CloseStream(streamID uint32) { + metadata := ws.streams[streamID] + q, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental + if q == nil { + return + } + if q.next == q { + // This was the only open stream. + ws.heads[u][i] = nil + } else { + q.prev.next = q.next + q.next.prev = q.prev + if ws.heads[u][i] == q { + ws.heads[u][i] = q.next + } + } + delete(ws.streams, streamID) + ws.queuePool.put(q) +} + +func (ws *priorityWriteSchedulerRFC9218) AdjustStream(streamID uint32, priority PriorityParam) { + metadata := ws.streams[streamID] + q, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental + if q == nil { + return + } + + // Remove stream from current location. + if q.next == q { + // This was the only open stream. + ws.heads[u][i] = nil + } else { + q.prev.next = q.next + q.next.prev = q.prev + if ws.heads[u][i] == q { + ws.heads[u][i] = q.next + } + } + + // Insert stream to the new queue. + u, i = priority.urgency, priority.incremental + if ws.heads[u][i] == nil { + ws.heads[u][i] = q + q.next = q + q.prev = q + } else { + // Queues are stored in a ring. + // Insert the new stream before ws.head, putting it at the end of the list. + q.prev = ws.heads[u][i].prev + q.next = ws.heads[u][i] + q.prev.next = q + q.next.prev = q + } + + // Update the metadata. + ws.streams[streamID] = streamMetadata{ + location: q, + priority: priority, + } +} + +func (ws *priorityWriteSchedulerRFC9218) Push(wr FrameWriteRequest) { + if wr.isControl() { + ws.control.push(wr) + return + } + q := ws.streams[wr.StreamID()].location + if q == nil { + // This is a closed stream. + // wr should not be a HEADERS or DATA frame. + // We push the request onto the control queue. + if wr.DataSize() > 0 { + panic("add DATA on non-open stream") + } + ws.control.push(wr) + return + } + q.push(wr) +} + +func (ws *priorityWriteSchedulerRFC9218) Pop() (FrameWriteRequest, bool) { + // Control and RST_STREAM frames first. + if !ws.control.empty() { + return ws.control.shift(), true + } + + // On the next Pop(), we want to prioritize incremental if we prioritized + // non-incremental request of the same urgency this time. Vice-versa. + // i.e. when there are incremental and non-incremental requests at the same + // priority, we give 50% of our bandwidth to the incremental ones in + // aggregate and 50% to the first non-incremental one (since + // non-incremental streams do not use round-robin writes). + ws.prioritizeIncremental = !ws.prioritizeIncremental + + // Always prioritize lowest u (i.e. highest urgency level). + for u := range ws.heads { + for i := range ws.heads[u] { + // When we want to prioritize incremental, we try to pop i=true + // first before i=false when u is the same. + if ws.prioritizeIncremental { + i = (i + 1) % 2 + } + q := ws.heads[u][i] + if q == nil { + continue + } + for { + if wr, ok := q.consume(math.MaxInt32); ok { + if i == 1 { + // For incremental streams, we update head to q.next so + // we can round-robin between multiple streams that can + // immediately benefit from partial writes. + ws.heads[u][i] = q.next + } else { + // For non-incremental streams, we try to finish one to + // completion rather than doing round-robin. However, + // we update head here so that if q.consume() is !ok + // (e.g. the stream has no more frame to consume), head + // is updated to the next q that has frames to consume + // on future iterations. This way, we do not prioritize + // writing to unavailable stream on next Pop() calls, + // preventing head-of-line blocking. + ws.heads[u][i] = q + } + return wr, true + } + q = q.next + if q == ws.heads[u][i] { + break + } + } + + } + } + return FrameWriteRequest{}, false +} diff --git a/vendor/golang.org/x/net/http2/writesched_roundrobin.go b/vendor/golang.org/x/net/http2/writesched_roundrobin.go index 54fe86322..737cff9ec 100644 --- a/vendor/golang.org/x/net/http2/writesched_roundrobin.go +++ b/vendor/golang.org/x/net/http2/writesched_roundrobin.go @@ -25,7 +25,7 @@ type roundRobinWriteScheduler struct { } // newRoundRobinWriteScheduler constructs a new write scheduler. -// The round robin scheduler priorizes control frames +// The round robin scheduler prioritizes control frames // like SETTINGS and PING over DATA frames. // When there are no control frames to send, it performs a round-robin // selection from the ready streams. diff --git a/vendor/golang.org/x/net/internal/httpcommon/request.go b/vendor/golang.org/x/net/internal/httpcommon/request.go index 4b7055317..1e10f89eb 100644 --- a/vendor/golang.org/x/net/internal/httpcommon/request.go +++ b/vendor/golang.org/x/net/internal/httpcommon/request.go @@ -51,7 +51,7 @@ type EncodeHeadersParam struct { DefaultUserAgent string } -// EncodeHeadersParam is the result of EncodeHeaders. +// EncodeHeadersResult is the result of EncodeHeaders. type EncodeHeadersResult struct { HasBody bool HasTrailers bool @@ -399,7 +399,7 @@ type ServerRequestResult struct { // If the request should be rejected, this is a short string suitable for passing // to the http2 package's CountError function. - // It might be a bit odd to return errors this way rather than returing an error, + // It might be a bit odd to return errors this way rather than returning an error, // but this ensures we don't forget to include a CountError reason. InvalidReason string } diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go index de34feb84..3e3b63069 100644 --- a/vendor/golang.org/x/oauth2/oauth2.go +++ b/vendor/golang.org/x/oauth2/oauth2.go @@ -9,7 +9,6 @@ package oauth2 // import "golang.org/x/oauth2" import ( - "bytes" "context" "errors" "net/http" @@ -158,7 +157,7 @@ func SetAuthURLParam(key, value string) AuthCodeOption { // PKCE), https://www.oauth.com/oauth2-servers/pkce/ and // https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-09.html#name-cross-site-request-forgery (describing both approaches) func (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string { - var buf bytes.Buffer + var buf strings.Builder buf.WriteString(c.Endpoint.AuthURL) v := url.Values{ "response_type": {"code"}, diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go index 3c7a6d6e2..3ea470387 100644 --- a/vendor/golang.org/x/sys/unix/affinity_linux.go +++ b/vendor/golang.org/x/sys/unix/affinity_linux.go @@ -41,6 +41,15 @@ func (s *CPUSet) Zero() { clear(s[:]) } +// Fill adds all possible CPU bits to the set s. On Linux, [SchedSetaffinity] +// will silently ignore any invalid CPU bits in [CPUSet] so this is an +// efficient way of resetting the CPU affinity of a process. +func (s *CPUSet) Fill() { + for i := range s { + s[i] = ^cpuMask(0) + } +} + func cpuBitsIndex(cpu int) int { return cpu / _NCPUBITS } diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go index 9e83d18cd..62ed12645 100644 --- a/vendor/golang.org/x/sys/unix/fdset.go +++ b/vendor/golang.org/x/sys/unix/fdset.go @@ -23,7 +23,5 @@ func (fds *FdSet) IsSet(fd int) bool { // Zero clears the set fds. func (fds *FdSet) Zero() { - for i := range fds.Bits { - fds.Bits[i] = 0 - } + clear(fds.Bits[:]) } diff --git a/vendor/golang.org/x/sys/unix/ifreq_linux.go b/vendor/golang.org/x/sys/unix/ifreq_linux.go index 848840ae4..309f5a2b0 100644 --- a/vendor/golang.org/x/sys/unix/ifreq_linux.go +++ b/vendor/golang.org/x/sys/unix/ifreq_linux.go @@ -111,9 +111,7 @@ func (ifr *Ifreq) SetUint32(v uint32) { // clear zeroes the ifreq's union field to prevent trailing garbage data from // being sent to the kernel if an ifreq is reused. func (ifr *Ifreq) clear() { - for i := range ifr.raw.Ifru { - ifr.raw.Ifru[i] = 0 - } + clear(ifr.raw.Ifru[:]) } // TODO(mdlayher): export as IfreqData? For now we can provide helpers such as diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh index e6f31d374..d0ed61191 100644 --- a/vendor/golang.org/x/sys/unix/mkall.sh +++ b/vendor/golang.org/x/sys/unix/mkall.sh @@ -49,6 +49,7 @@ esac if [[ "$GOOS" = "linux" ]]; then # Use the Docker-based build system # Files generated through docker (use $cmd so you can Ctl-C the build or run) + set -e $cmd docker build --tag generate:$GOOS $GOOS $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS exit diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go index 4958a6570..9439af961 100644 --- a/vendor/golang.org/x/sys/unix/syscall_linux.go +++ b/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -801,9 +801,7 @@ func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { // one. The kernel expects SID to be in network byte order. binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID) copy(sa.raw[8:14], sa.Remote) - for i := 14; i < 14+IFNAMSIZ; i++ { - sa.raw[i] = 0 - } + clear(sa.raw[14 : 14+IFNAMSIZ]) copy(sa.raw[14:], sa.Dev) return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil } diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go index 88162099a..34a467697 100644 --- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go +++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -248,6 +248,23 @@ func Statvfs(path string, buf *Statvfs_t) (err error) { return Statvfs1(path, buf, ST_WAIT) } +func Getvfsstat(buf []Statvfs_t, flags int) (n int, err error) { + var ( + _p0 unsafe.Pointer + bufsize uintptr + ) + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statvfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETVFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + /* * Exposed directly */ diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 640f6b153..bd5133730 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -321,6 +321,8 @@ func NewCallbackCDecl(fn interface{}) uintptr { //sys SetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP //sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW //sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW +//sys GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) = kernel32.GetNumberOfConsoleInputEvents +//sys FlushConsoleInputBuffer(console Handle) (err error) = kernel32.FlushConsoleInputBuffer //sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole //sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot //sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 993a2297d..358be3c7f 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -65,6 +65,22 @@ var signals = [...]string{ 15: "terminated", } +// File flags for [os.OpenFile]. The O_ prefix is used to indicate +// that these flags are specific to the OpenFile function. +const ( + O_FILE_FLAG_OPEN_NO_RECALL = FILE_FLAG_OPEN_NO_RECALL + O_FILE_FLAG_OPEN_REPARSE_POINT = FILE_FLAG_OPEN_REPARSE_POINT + O_FILE_FLAG_SESSION_AWARE = FILE_FLAG_SESSION_AWARE + O_FILE_FLAG_POSIX_SEMANTICS = FILE_FLAG_POSIX_SEMANTICS + O_FILE_FLAG_BACKUP_SEMANTICS = FILE_FLAG_BACKUP_SEMANTICS + O_FILE_FLAG_DELETE_ON_CLOSE = FILE_FLAG_DELETE_ON_CLOSE + O_FILE_FLAG_SEQUENTIAL_SCAN = FILE_FLAG_SEQUENTIAL_SCAN + O_FILE_FLAG_RANDOM_ACCESS = FILE_FLAG_RANDOM_ACCESS + O_FILE_FLAG_NO_BUFFERING = FILE_FLAG_NO_BUFFERING + O_FILE_FLAG_OVERLAPPED = FILE_FLAG_OVERLAPPED + O_FILE_FLAG_WRITE_THROUGH = FILE_FLAG_WRITE_THROUGH +) + const ( FILE_READ_DATA = 0x00000001 FILE_READ_ATTRIBUTES = 0x00000080 diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 641a5f4b7..426151a01 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -238,6 +238,7 @@ var ( procFindResourceW = modkernel32.NewProc("FindResourceW") procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") + procFlushConsoleInputBuffer = modkernel32.NewProc("FlushConsoleInputBuffer") procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") procFormatMessageW = modkernel32.NewProc("FormatMessageW") @@ -284,6 +285,7 @@ var ( procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") procGetNamedPipeServerProcessId = modkernel32.NewProc("GetNamedPipeServerProcessId") + procGetNumberOfConsoleInputEvents = modkernel32.NewProc("GetNumberOfConsoleInputEvents") procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult") procGetPriorityClass = modkernel32.NewProc("GetPriorityClass") procGetProcAddress = modkernel32.NewProc("GetProcAddress") @@ -2111,6 +2113,14 @@ func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { return } +func FlushConsoleInputBuffer(console Handle) (err error) { + r1, _, e1 := syscall.SyscallN(procFlushConsoleInputBuffer.Addr(), uintptr(console)) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func FlushFileBuffers(handle Handle) (err error) { r1, _, e1 := syscall.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle)) if r1 == 0 { @@ -2481,6 +2491,14 @@ func GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err erro return } +func GetNumberOfConsoleInputEvents(console Handle, numevents *uint32) (err error) { + r1, _, e1 := syscall.SyscallN(procGetNumberOfConsoleInputEvents.Addr(), uintptr(console), uintptr(unsafe.Pointer(numevents))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) { var _p0 uint32 if wait { diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go index 9d2ae547b..fb8273236 100644 --- a/vendor/golang.org/x/text/unicode/bidi/core.go +++ b/vendor/golang.org/x/text/unicode/bidi/core.go @@ -427,13 +427,6 @@ type isolatingRunSequence struct { func (i *isolatingRunSequence) Len() int { return len(i.indexes) } -func maxLevel(a, b level) level { - if a > b { - return a - } - return b -} - // Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types, // either L or R, for each isolating run sequence. func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence { @@ -474,8 +467,8 @@ func (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence { indexes: indexes, types: types, level: level, - sos: typeForLevel(maxLevel(prevLevel, level)), - eos: typeForLevel(maxLevel(succLevel, level)), + sos: typeForLevel(max(prevLevel, level)), + eos: typeForLevel(max(succLevel, level)), } } diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go index 5e5601aa4..5bacc0fa4 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/imports.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/imports.go @@ -209,48 +209,46 @@ func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) // DeleteNamedImport deletes the import with the given name and path from the file f, if present. // If there are duplicate import declarations, all matching ones are deleted. func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) { - var delspecs []*ast.ImportSpec - var delcomments []*ast.CommentGroup + var ( + delspecs = make(map[*ast.ImportSpec]bool) + delcomments = make(map[*ast.CommentGroup]bool) + ) // Find the import nodes that import path, if any. for i := 0; i < len(f.Decls); i++ { - decl := f.Decls[i] - gen, ok := decl.(*ast.GenDecl) + gen, ok := f.Decls[i].(*ast.GenDecl) if !ok || gen.Tok != token.IMPORT { continue } for j := 0; j < len(gen.Specs); j++ { - spec := gen.Specs[j] - impspec := spec.(*ast.ImportSpec) + impspec := gen.Specs[j].(*ast.ImportSpec) if importName(impspec) != name || importPath(impspec) != path { continue } // We found an import spec that imports path. // Delete it. - delspecs = append(delspecs, impspec) + delspecs[impspec] = true deleted = true - copy(gen.Specs[j:], gen.Specs[j+1:]) - gen.Specs = gen.Specs[:len(gen.Specs)-1] + gen.Specs = slices.Delete(gen.Specs, j, j+1) // If this was the last import spec in this decl, // delete the decl, too. if len(gen.Specs) == 0 { - copy(f.Decls[i:], f.Decls[i+1:]) - f.Decls = f.Decls[:len(f.Decls)-1] + f.Decls = slices.Delete(f.Decls, i, i+1) i-- break } else if len(gen.Specs) == 1 { if impspec.Doc != nil { - delcomments = append(delcomments, impspec.Doc) + delcomments[impspec.Doc] = true } if impspec.Comment != nil { - delcomments = append(delcomments, impspec.Comment) + delcomments[impspec.Comment] = true } for _, cg := range f.Comments { // Found comment on the same line as the import spec. if cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line { - delcomments = append(delcomments, cg) + delcomments[cg] = true break } } @@ -294,38 +292,21 @@ func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (del } // Delete imports from f.Imports. - for i := 0; i < len(f.Imports); i++ { - imp := f.Imports[i] - for j, del := range delspecs { - if imp == del { - copy(f.Imports[i:], f.Imports[i+1:]) - f.Imports = f.Imports[:len(f.Imports)-1] - copy(delspecs[j:], delspecs[j+1:]) - delspecs = delspecs[:len(delspecs)-1] - i-- - break - } - } + before := len(f.Imports) + f.Imports = slices.DeleteFunc(f.Imports, func(imp *ast.ImportSpec) bool { + _, ok := delspecs[imp] + return ok + }) + if len(f.Imports)+len(delspecs) != before { + // This can happen when the AST is invalid (i.e. imports differ between f.Decls and f.Imports). + panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs)) } // Delete comments from f.Comments. - for i := 0; i < len(f.Comments); i++ { - cg := f.Comments[i] - for j, del := range delcomments { - if cg == del { - copy(f.Comments[i:], f.Comments[i+1:]) - f.Comments = f.Comments[:len(f.Comments)-1] - copy(delcomments[j:], delcomments[j+1:]) - delcomments = delcomments[:len(delcomments)-1] - i-- - break - } - } - } - - if len(delspecs) > 0 { - panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs)) - } + f.Comments = slices.DeleteFunc(f.Comments, func(cg *ast.CommentGroup) bool { + _, ok := delcomments[cg] + return ok + }) return } diff --git a/vendor/golang.org/x/tools/go/ast/edge/edge.go b/vendor/golang.org/x/tools/go/ast/edge/edge.go new file mode 100644 index 000000000..4f6ccfd6e --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/edge/edge.go @@ -0,0 +1,295 @@ +// Copyright 2025 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 edge defines identifiers for each field of an ast.Node +// struct type that refers to another Node. +package edge + +import ( + "fmt" + "go/ast" + "reflect" +) + +// A Kind describes a field of an ast.Node struct. +type Kind uint8 + +// String returns a description of the edge kind. +func (k Kind) String() string { + if k == Invalid { + return "" + } + info := fieldInfos[k] + return fmt.Sprintf("%v.%s", info.nodeType.Elem().Name(), info.name) +} + +// NodeType returns the pointer-to-struct type of the ast.Node implementation. +func (k Kind) NodeType() reflect.Type { return fieldInfos[k].nodeType } + +// FieldName returns the name of the field. +func (k Kind) FieldName() string { return fieldInfos[k].name } + +// FieldType returns the declared type of the field. +func (k Kind) FieldType() reflect.Type { return fieldInfos[k].fieldType } + +// Get returns the direct child of n identified by (k, idx). +// n's type must match k.NodeType(). +// idx must be a valid slice index, or -1 for a non-slice. +func (k Kind) Get(n ast.Node, idx int) ast.Node { + if k.NodeType() != reflect.TypeOf(n) { + panic(fmt.Sprintf("%v.Get(%T): invalid node type", k, n)) + } + v := reflect.ValueOf(n).Elem().Field(fieldInfos[k].index) + if idx != -1 { + v = v.Index(idx) // asserts valid index + } else { + // (The type assertion below asserts that v is not a slice.) + } + return v.Interface().(ast.Node) // may be nil +} + +const ( + Invalid Kind = iota // for nodes at the root of the traversal + + // Kinds are sorted alphabetically. + // Numbering is not stable. + // Each is named Type_Field, where Type is the + // ast.Node struct type and Field is the name of the field + + ArrayType_Elt + ArrayType_Len + AssignStmt_Lhs + AssignStmt_Rhs + BinaryExpr_X + BinaryExpr_Y + BlockStmt_List + BranchStmt_Label + CallExpr_Args + CallExpr_Fun + CaseClause_Body + CaseClause_List + ChanType_Value + CommClause_Body + CommClause_Comm + CommentGroup_List + CompositeLit_Elts + CompositeLit_Type + DeclStmt_Decl + DeferStmt_Call + Ellipsis_Elt + ExprStmt_X + FieldList_List + Field_Comment + Field_Doc + Field_Names + Field_Tag + Field_Type + File_Decls + File_Doc + File_Name + ForStmt_Body + ForStmt_Cond + ForStmt_Init + ForStmt_Post + FuncDecl_Body + FuncDecl_Doc + FuncDecl_Name + FuncDecl_Recv + FuncDecl_Type + FuncLit_Body + FuncLit_Type + FuncType_Params + FuncType_Results + FuncType_TypeParams + GenDecl_Doc + GenDecl_Specs + GoStmt_Call + IfStmt_Body + IfStmt_Cond + IfStmt_Else + IfStmt_Init + ImportSpec_Comment + ImportSpec_Doc + ImportSpec_Name + ImportSpec_Path + IncDecStmt_X + IndexExpr_Index + IndexExpr_X + IndexListExpr_Indices + IndexListExpr_X + InterfaceType_Methods + KeyValueExpr_Key + KeyValueExpr_Value + LabeledStmt_Label + LabeledStmt_Stmt + MapType_Key + MapType_Value + ParenExpr_X + RangeStmt_Body + RangeStmt_Key + RangeStmt_Value + RangeStmt_X + ReturnStmt_Results + SelectStmt_Body + SelectorExpr_Sel + SelectorExpr_X + SendStmt_Chan + SendStmt_Value + SliceExpr_High + SliceExpr_Low + SliceExpr_Max + SliceExpr_X + StarExpr_X + StructType_Fields + SwitchStmt_Body + SwitchStmt_Init + SwitchStmt_Tag + TypeAssertExpr_Type + TypeAssertExpr_X + TypeSpec_Comment + TypeSpec_Doc + TypeSpec_Name + TypeSpec_Type + TypeSpec_TypeParams + TypeSwitchStmt_Assign + TypeSwitchStmt_Body + TypeSwitchStmt_Init + UnaryExpr_X + ValueSpec_Comment + ValueSpec_Doc + ValueSpec_Names + ValueSpec_Type + ValueSpec_Values + + maxKind +) + +// Assert that the encoding fits in 7 bits, +// as the inspector relies on this. +// (We are currently at 104.) +var _ = [1 << 7]struct{}{}[maxKind] + +type fieldInfo struct { + nodeType reflect.Type // pointer-to-struct type of ast.Node implementation + name string + index int + fieldType reflect.Type +} + +func info[N ast.Node](fieldName string) fieldInfo { + nodePtrType := reflect.TypeFor[N]() + f, ok := nodePtrType.Elem().FieldByName(fieldName) + if !ok { + panic(fieldName) + } + return fieldInfo{nodePtrType, fieldName, f.Index[0], f.Type} +} + +var fieldInfos = [...]fieldInfo{ + Invalid: {}, + ArrayType_Elt: info[*ast.ArrayType]("Elt"), + ArrayType_Len: info[*ast.ArrayType]("Len"), + AssignStmt_Lhs: info[*ast.AssignStmt]("Lhs"), + AssignStmt_Rhs: info[*ast.AssignStmt]("Rhs"), + BinaryExpr_X: info[*ast.BinaryExpr]("X"), + BinaryExpr_Y: info[*ast.BinaryExpr]("Y"), + BlockStmt_List: info[*ast.BlockStmt]("List"), + BranchStmt_Label: info[*ast.BranchStmt]("Label"), + CallExpr_Args: info[*ast.CallExpr]("Args"), + CallExpr_Fun: info[*ast.CallExpr]("Fun"), + CaseClause_Body: info[*ast.CaseClause]("Body"), + CaseClause_List: info[*ast.CaseClause]("List"), + ChanType_Value: info[*ast.ChanType]("Value"), + CommClause_Body: info[*ast.CommClause]("Body"), + CommClause_Comm: info[*ast.CommClause]("Comm"), + CommentGroup_List: info[*ast.CommentGroup]("List"), + CompositeLit_Elts: info[*ast.CompositeLit]("Elts"), + CompositeLit_Type: info[*ast.CompositeLit]("Type"), + DeclStmt_Decl: info[*ast.DeclStmt]("Decl"), + DeferStmt_Call: info[*ast.DeferStmt]("Call"), + Ellipsis_Elt: info[*ast.Ellipsis]("Elt"), + ExprStmt_X: info[*ast.ExprStmt]("X"), + FieldList_List: info[*ast.FieldList]("List"), + Field_Comment: info[*ast.Field]("Comment"), + Field_Doc: info[*ast.Field]("Doc"), + Field_Names: info[*ast.Field]("Names"), + Field_Tag: info[*ast.Field]("Tag"), + Field_Type: info[*ast.Field]("Type"), + File_Decls: info[*ast.File]("Decls"), + File_Doc: info[*ast.File]("Doc"), + File_Name: info[*ast.File]("Name"), + ForStmt_Body: info[*ast.ForStmt]("Body"), + ForStmt_Cond: info[*ast.ForStmt]("Cond"), + ForStmt_Init: info[*ast.ForStmt]("Init"), + ForStmt_Post: info[*ast.ForStmt]("Post"), + FuncDecl_Body: info[*ast.FuncDecl]("Body"), + FuncDecl_Doc: info[*ast.FuncDecl]("Doc"), + FuncDecl_Name: info[*ast.FuncDecl]("Name"), + FuncDecl_Recv: info[*ast.FuncDecl]("Recv"), + FuncDecl_Type: info[*ast.FuncDecl]("Type"), + FuncLit_Body: info[*ast.FuncLit]("Body"), + FuncLit_Type: info[*ast.FuncLit]("Type"), + FuncType_Params: info[*ast.FuncType]("Params"), + FuncType_Results: info[*ast.FuncType]("Results"), + FuncType_TypeParams: info[*ast.FuncType]("TypeParams"), + GenDecl_Doc: info[*ast.GenDecl]("Doc"), + GenDecl_Specs: info[*ast.GenDecl]("Specs"), + GoStmt_Call: info[*ast.GoStmt]("Call"), + IfStmt_Body: info[*ast.IfStmt]("Body"), + IfStmt_Cond: info[*ast.IfStmt]("Cond"), + IfStmt_Else: info[*ast.IfStmt]("Else"), + IfStmt_Init: info[*ast.IfStmt]("Init"), + ImportSpec_Comment: info[*ast.ImportSpec]("Comment"), + ImportSpec_Doc: info[*ast.ImportSpec]("Doc"), + ImportSpec_Name: info[*ast.ImportSpec]("Name"), + ImportSpec_Path: info[*ast.ImportSpec]("Path"), + IncDecStmt_X: info[*ast.IncDecStmt]("X"), + IndexExpr_Index: info[*ast.IndexExpr]("Index"), + IndexExpr_X: info[*ast.IndexExpr]("X"), + IndexListExpr_Indices: info[*ast.IndexListExpr]("Indices"), + IndexListExpr_X: info[*ast.IndexListExpr]("X"), + InterfaceType_Methods: info[*ast.InterfaceType]("Methods"), + KeyValueExpr_Key: info[*ast.KeyValueExpr]("Key"), + KeyValueExpr_Value: info[*ast.KeyValueExpr]("Value"), + LabeledStmt_Label: info[*ast.LabeledStmt]("Label"), + LabeledStmt_Stmt: info[*ast.LabeledStmt]("Stmt"), + MapType_Key: info[*ast.MapType]("Key"), + MapType_Value: info[*ast.MapType]("Value"), + ParenExpr_X: info[*ast.ParenExpr]("X"), + RangeStmt_Body: info[*ast.RangeStmt]("Body"), + RangeStmt_Key: info[*ast.RangeStmt]("Key"), + RangeStmt_Value: info[*ast.RangeStmt]("Value"), + RangeStmt_X: info[*ast.RangeStmt]("X"), + ReturnStmt_Results: info[*ast.ReturnStmt]("Results"), + SelectStmt_Body: info[*ast.SelectStmt]("Body"), + SelectorExpr_Sel: info[*ast.SelectorExpr]("Sel"), + SelectorExpr_X: info[*ast.SelectorExpr]("X"), + SendStmt_Chan: info[*ast.SendStmt]("Chan"), + SendStmt_Value: info[*ast.SendStmt]("Value"), + SliceExpr_High: info[*ast.SliceExpr]("High"), + SliceExpr_Low: info[*ast.SliceExpr]("Low"), + SliceExpr_Max: info[*ast.SliceExpr]("Max"), + SliceExpr_X: info[*ast.SliceExpr]("X"), + StarExpr_X: info[*ast.StarExpr]("X"), + StructType_Fields: info[*ast.StructType]("Fields"), + SwitchStmt_Body: info[*ast.SwitchStmt]("Body"), + SwitchStmt_Init: info[*ast.SwitchStmt]("Init"), + SwitchStmt_Tag: info[*ast.SwitchStmt]("Tag"), + TypeAssertExpr_Type: info[*ast.TypeAssertExpr]("Type"), + TypeAssertExpr_X: info[*ast.TypeAssertExpr]("X"), + TypeSpec_Comment: info[*ast.TypeSpec]("Comment"), + TypeSpec_Doc: info[*ast.TypeSpec]("Doc"), + TypeSpec_Name: info[*ast.TypeSpec]("Name"), + TypeSpec_Type: info[*ast.TypeSpec]("Type"), + TypeSpec_TypeParams: info[*ast.TypeSpec]("TypeParams"), + TypeSwitchStmt_Assign: info[*ast.TypeSwitchStmt]("Assign"), + TypeSwitchStmt_Body: info[*ast.TypeSwitchStmt]("Body"), + TypeSwitchStmt_Init: info[*ast.TypeSwitchStmt]("Init"), + UnaryExpr_X: info[*ast.UnaryExpr]("X"), + ValueSpec_Comment: info[*ast.ValueSpec]("Comment"), + ValueSpec_Doc: info[*ast.ValueSpec]("Doc"), + ValueSpec_Names: info[*ast.ValueSpec]("Names"), + ValueSpec_Type: info[*ast.ValueSpec]("Type"), + ValueSpec_Values: info[*ast.ValueSpec]("Values"), +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/cursor.go b/vendor/golang.org/x/tools/go/ast/inspector/cursor.go new file mode 100644 index 000000000..7e72d3c28 --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/cursor.go @@ -0,0 +1,502 @@ +// Copyright 2025 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 inspector + +import ( + "fmt" + "go/ast" + "go/token" + "iter" + "reflect" + + "golang.org/x/tools/go/ast/edge" +) + +// A Cursor represents an [ast.Node]. It is immutable. +// +// Two Cursors compare equal if they represent the same node. +// +// Call [Inspector.Root] to obtain a valid cursor for the virtual root +// node of the traversal. +// +// Use the following methods to navigate efficiently around the tree: +// - for ancestors, use [Cursor.Parent] and [Cursor.Enclosing]; +// - for children, use [Cursor.Child], [Cursor.Children], +// [Cursor.FirstChild], and [Cursor.LastChild]; +// - for siblings, use [Cursor.PrevSibling] and [Cursor.NextSibling]; +// - for descendants, use [Cursor.FindByPos], [Cursor.FindNode], +// [Cursor.Inspect], and [Cursor.Preorder]. +// +// Use the [Cursor.ChildAt] and [Cursor.ParentEdge] methods for +// information about the edges in a tree: which field (and slice +// element) of the parent node holds the child. +type Cursor struct { + in *Inspector + index int32 // index of push node; -1 for virtual root node +} + +// Root returns a cursor for the virtual root node, +// whose children are the files provided to [New]. +// +// Its [Cursor.Node] method return nil. +func (in *Inspector) Root() Cursor { + return Cursor{in, -1} +} + +// At returns the cursor at the specified index in the traversal, +// which must have been obtained from [Cursor.Index] on a Cursor +// belonging to the same Inspector (see [Cursor.Inspector]). +func (in *Inspector) At(index int32) Cursor { + if index < 0 { + panic("negative index") + } + if int(index) >= len(in.events) { + panic("index out of range for this inspector") + } + if in.events[index].index < index { + panic("invalid index") // (a push, not a pop) + } + return Cursor{in, index} +} + +// Inspector returns the cursor's Inspector. +func (c Cursor) Inspector() *Inspector { return c.in } + +// Index returns the index of this cursor position within the package. +// +// Clients should not assume anything about the numeric Index value +// except that it increases monotonically throughout the traversal. +// It is provided for use with [At]. +// +// Index must not be called on the Root node. +func (c Cursor) Index() int32 { + if c.index < 0 { + panic("Index called on Root node") + } + return c.index +} + +// Node returns the node at the current cursor position, +// or nil for the cursor returned by [Inspector.Root]. +func (c Cursor) Node() ast.Node { + if c.index < 0 { + return nil + } + return c.in.events[c.index].node +} + +// String returns information about the cursor's node, if any. +func (c Cursor) String() string { + if c.in == nil { + return "(invalid)" + } + if c.index < 0 { + return "(root)" + } + return reflect.TypeOf(c.Node()).String() +} + +// indices return the [start, end) half-open interval of event indices. +func (c Cursor) indices() (int32, int32) { + if c.index < 0 { + return 0, int32(len(c.in.events)) // root: all events + } else { + return c.index, c.in.events[c.index].index + 1 // just one subtree + } +} + +// Preorder returns an iterator over the nodes of the subtree +// represented by c in depth-first order. Each node in the sequence is +// represented by a Cursor that allows access to the Node, but may +// also be used to start a new traversal, or to obtain the stack of +// nodes enclosing the cursor. +// +// The traversal sequence is determined by [ast.Inspect]. The types +// argument, if non-empty, enables type-based filtering of events. The +// function f if is called only for nodes whose type matches an +// element of the types slice. +// +// If you need control over descent into subtrees, +// or need both pre- and post-order notifications, use [Cursor.Inspect] +func (c Cursor) Preorder(types ...ast.Node) iter.Seq[Cursor] { + mask := maskOf(types) + + return func(yield func(Cursor) bool) { + events := c.in.events + + for i, limit := c.indices(); i < limit; { + ev := events[i] + if ev.index > i { // push? + if ev.typ&mask != 0 && !yield(Cursor{c.in, i}) { + break + } + pop := ev.index + if events[pop].typ&mask == 0 { + // Subtree does not contain types: skip. + i = pop + 1 + continue + } + } + i++ + } + } +} + +// Inspect visits the nodes of the subtree represented by c in +// depth-first order. It calls f(n) for each node n before it +// visits n's children. If f returns true, Inspect invokes f +// recursively for each of the non-nil children of the node. +// +// Each node is represented by a Cursor that allows access to the +// Node, but may also be used to start a new traversal, or to obtain +// the stack of nodes enclosing the cursor. +// +// The complete traversal sequence is determined by [ast.Inspect]. +// The types argument, if non-empty, enables type-based filtering of +// events. The function f if is called only for nodes whose type +// matches an element of the types slice. +func (c Cursor) Inspect(types []ast.Node, f func(c Cursor) (descend bool)) { + mask := maskOf(types) + events := c.in.events + for i, limit := c.indices(); i < limit; { + ev := events[i] + if ev.index > i { + // push + pop := ev.index + if ev.typ&mask != 0 && !f(Cursor{c.in, i}) || + events[pop].typ&mask == 0 { + // The user opted not to descend, or the + // subtree does not contain types: + // skip past the pop. + i = pop + 1 + continue + } + } + i++ + } +} + +// Enclosing returns an iterator over the nodes enclosing the current +// current node, starting with the Cursor itself. +// +// Enclosing must not be called on the Root node (whose [Cursor.Node] returns nil). +// +// The types argument, if non-empty, enables type-based filtering of +// events: the sequence includes only enclosing nodes whose type +// matches an element of the types slice. +func (c Cursor) Enclosing(types ...ast.Node) iter.Seq[Cursor] { + if c.index < 0 { + panic("Cursor.Enclosing called on Root node") + } + + mask := maskOf(types) + + return func(yield func(Cursor) bool) { + events := c.in.events + for i := c.index; i >= 0; i = events[i].parent { + if events[i].typ&mask != 0 && !yield(Cursor{c.in, i}) { + break + } + } + } +} + +// Parent returns the parent of the current node. +// +// Parent must not be called on the Root node (whose [Cursor.Node] returns nil). +func (c Cursor) Parent() Cursor { + if c.index < 0 { + panic("Cursor.Parent called on Root node") + } + + return Cursor{c.in, c.in.events[c.index].parent} +} + +// ParentEdge returns the identity of the field in the parent node +// that holds this cursor's node, and if it is a list, the index within it. +// +// For example, f(x, y) is a CallExpr whose three children are Idents. +// f has edge kind [edge.CallExpr_Fun] and index -1. +// x and y have kind [edge.CallExpr_Args] and indices 0 and 1, respectively. +// +// If called on a child of the Root node, it returns ([edge.Invalid], -1). +// +// ParentEdge must not be called on the Root node (whose [Cursor.Node] returns nil). +func (c Cursor) ParentEdge() (edge.Kind, int) { + if c.index < 0 { + panic("Cursor.ParentEdge called on Root node") + } + events := c.in.events + pop := events[c.index].index + return unpackEdgeKindAndIndex(events[pop].parent) +} + +// ChildAt returns the cursor for the child of the +// current node identified by its edge and index. +// The index must be -1 if the edge.Kind is not a slice. +// The indicated child node must exist. +// +// ChildAt must not be called on the Root node (whose [Cursor.Node] returns nil). +// +// Invariant: c.Parent().ChildAt(c.ParentEdge()) == c. +func (c Cursor) ChildAt(k edge.Kind, idx int) Cursor { + target := packEdgeKindAndIndex(k, idx) + + // Unfortunately there's no shortcut to looping. + events := c.in.events + i := c.index + 1 + for { + pop := events[i].index + if pop < i { + break + } + if events[pop].parent == target { + return Cursor{c.in, i} + } + i = pop + 1 + } + panic(fmt.Sprintf("ChildAt(%v, %d): no such child of %v", k, idx, c)) +} + +// Child returns the cursor for n, which must be a direct child of c's Node. +// +// Child must not be called on the Root node (whose [Cursor.Node] returns nil). +func (c Cursor) Child(n ast.Node) Cursor { + if c.index < 0 { + panic("Cursor.Child called on Root node") + } + + if false { + // reference implementation + for child := range c.Children() { + if child.Node() == n { + return child + } + } + + } else { + // optimized implementation + events := c.in.events + for i := c.index + 1; events[i].index > i; i = events[i].index + 1 { + if events[i].node == n { + return Cursor{c.in, i} + } + } + } + panic(fmt.Sprintf("Child(%T): not a child of %v", n, c)) +} + +// NextSibling returns the cursor for the next sibling node in the same list +// (for example, of files, decls, specs, statements, fields, or expressions) as +// the current node. It returns (zero, false) if the node is the last node in +// the list, or is not part of a list. +// +// NextSibling must not be called on the Root node. +// +// See note at [Cursor.Children]. +func (c Cursor) NextSibling() (Cursor, bool) { + if c.index < 0 { + panic("Cursor.NextSibling called on Root node") + } + + events := c.in.events + i := events[c.index].index + 1 // after corresponding pop + if i < int32(len(events)) { + if events[i].index > i { // push? + return Cursor{c.in, i}, true + } + } + return Cursor{}, false +} + +// PrevSibling returns the cursor for the previous sibling node in the +// same list (for example, of files, decls, specs, statements, fields, +// or expressions) as the current node. It returns zero if the node is +// the first node in the list, or is not part of a list. +// +// It must not be called on the Root node. +// +// See note at [Cursor.Children]. +func (c Cursor) PrevSibling() (Cursor, bool) { + if c.index < 0 { + panic("Cursor.PrevSibling called on Root node") + } + + events := c.in.events + i := c.index - 1 + if i >= 0 { + if j := events[i].index; j < i { // pop? + return Cursor{c.in, j}, true + } + } + return Cursor{}, false +} + +// FirstChild returns the first direct child of the current node, +// or zero if it has no children. +func (c Cursor) FirstChild() (Cursor, bool) { + events := c.in.events + i := c.index + 1 // i=0 if c is root + if i < int32(len(events)) && events[i].index > i { // push? + return Cursor{c.in, i}, true + } + return Cursor{}, false +} + +// LastChild returns the last direct child of the current node, +// or zero if it has no children. +func (c Cursor) LastChild() (Cursor, bool) { + events := c.in.events + if c.index < 0 { // root? + if len(events) > 0 { + // return push of final event (a pop) + return Cursor{c.in, events[len(events)-1].index}, true + } + } else { + j := events[c.index].index - 1 // before corresponding pop + // Inv: j == c.index if c has no children + // or j is last child's pop. + if j > c.index { // c has children + return Cursor{c.in, events[j].index}, true + } + } + return Cursor{}, false +} + +// Children returns an iterator over the direct children of the +// current node, if any. +// +// When using Children, NextChild, and PrevChild, bear in mind that a +// Node's children may come from different fields, some of which may +// be lists of nodes without a distinguished intervening container +// such as [ast.BlockStmt]. +// +// For example, [ast.CaseClause] has a field List of expressions and a +// field Body of statements, so the children of a CaseClause are a mix +// of expressions and statements. Other nodes that have "uncontained" +// list fields include: +// +// - [ast.ValueSpec] (Names, Values) +// - [ast.CompositeLit] (Type, Elts) +// - [ast.IndexListExpr] (X, Indices) +// - [ast.CallExpr] (Fun, Args) +// - [ast.AssignStmt] (Lhs, Rhs) +// +// So, do not assume that the previous sibling of an ast.Stmt is also +// an ast.Stmt, or if it is, that they are executed sequentially, +// unless you have established that, say, its parent is a BlockStmt +// or its [Cursor.ParentEdge] is [edge.BlockStmt_List]. +// For example, given "for S1; ; S2 {}", the predecessor of S2 is S1, +// even though they are not executed in sequence. +func (c Cursor) Children() iter.Seq[Cursor] { + return func(yield func(Cursor) bool) { + c, ok := c.FirstChild() + for ok && yield(c) { + c, ok = c.NextSibling() + } + } +} + +// Contains reports whether c contains or is equal to c2. +// +// Both Cursors must belong to the same [Inspector]; +// neither may be its Root node. +func (c Cursor) Contains(c2 Cursor) bool { + if c.in != c2.in { + panic("different inspectors") + } + events := c.in.events + return c.index <= c2.index && events[c2.index].index <= events[c.index].index +} + +// FindNode returns the cursor for node n if it belongs to the subtree +// rooted at c. It returns zero if n is not found. +func (c Cursor) FindNode(n ast.Node) (Cursor, bool) { + + // FindNode is equivalent to this code, + // but more convenient and 15-20% faster: + if false { + for candidate := range c.Preorder(n) { + if candidate.Node() == n { + return candidate, true + } + } + return Cursor{}, false + } + + // TODO(adonovan): opt: should we assume Node.Pos is accurate + // and combine type-based filtering with position filtering + // like FindByPos? + + mask := maskOf([]ast.Node{n}) + events := c.in.events + + for i, limit := c.indices(); i < limit; i++ { + ev := events[i] + if ev.index > i { // push? + if ev.typ&mask != 0 && ev.node == n { + return Cursor{c.in, i}, true + } + pop := ev.index + if events[pop].typ&mask == 0 { + // Subtree does not contain type of n: skip. + i = pop + } + } + } + return Cursor{}, false +} + +// FindByPos returns the cursor for the innermost node n in the tree +// rooted at c such that n.Pos() <= start && end <= n.End(). +// (For an *ast.File, it uses the bounds n.FileStart-n.FileEnd.) +// +// It returns zero if none is found. +// Precondition: start <= end. +// +// See also [astutil.PathEnclosingInterval], which +// tolerates adjoining whitespace. +func (c Cursor) FindByPos(start, end token.Pos) (Cursor, bool) { + if end < start { + panic("end < start") + } + events := c.in.events + + // This algorithm could be implemented using c.Inspect, + // but it is about 2.5x slower. + + best := int32(-1) // push index of latest (=innermost) node containing range + for i, limit := c.indices(); i < limit; i++ { + ev := events[i] + if ev.index > i { // push? + n := ev.node + var nodeEnd token.Pos + if file, ok := n.(*ast.File); ok { + nodeEnd = file.FileEnd + // Note: files may be out of Pos order. + if file.FileStart > start { + i = ev.index // disjoint, after; skip to next file + continue + } + } else { + nodeEnd = n.End() + if n.Pos() > start { + break // disjoint, after; stop + } + } + // Inv: node.{Pos,FileStart} <= start + if end <= nodeEnd { + // node fully contains target range + best = i + } else if nodeEnd < start { + i = ev.index // disjoint, before; skip forward + } + } + } + if best >= 0 { + return Cursor{c.in, best}, true + } + return Cursor{}, false +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/inspector.go b/vendor/golang.org/x/tools/go/ast/inspector/inspector.go new file mode 100644 index 000000000..a703cdfcf --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/inspector.go @@ -0,0 +1,311 @@ +// Copyright 2018 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 inspector provides helper functions for traversal over the +// syntax trees of a package, including node filtering by type, and +// materialization of the traversal stack. +// +// During construction, the inspector does a complete traversal and +// builds a list of push/pop events and their node type. Subsequent +// method calls that request a traversal scan this list, rather than walk +// the AST, and perform type filtering using efficient bit sets. +// This representation is sometimes called a "balanced parenthesis tree." +// +// Experiments suggest the inspector's traversals are about 2.5x faster +// than [ast.Inspect], but it may take around 5 traversals for this +// benefit to amortize the inspector's construction cost. +// If efficiency is the primary concern, do not use Inspector for +// one-off traversals. +// +// The [Cursor] type provides a more flexible API for efficient +// navigation of syntax trees in all four "cardinal directions". For +// example, traversals may be nested, so you can find each node of +// type A and then search within it for nodes of type B. Or you can +// traverse from a node to its immediate neighbors: its parent, its +// previous and next sibling, or its first and last child. We +// recommend using methods of Cursor in preference to Inspector where +// possible. +package inspector + +// There are four orthogonal features in a traversal: +// 1 type filtering +// 2 pruning +// 3 postorder calls to f +// 4 stack +// Rather than offer all of them in the API, +// only a few combinations are exposed: +// - Preorder is the fastest and has fewest features, +// but is the most commonly needed traversal. +// - Nodes and WithStack both provide pruning and postorder calls, +// even though few clients need it, because supporting two versions +// is not justified. +// More combinations could be supported by expressing them as +// wrappers around a more generic traversal, but this was measured +// and found to degrade performance significantly (30%). + +import ( + "go/ast" + + "golang.org/x/tools/go/ast/edge" +) + +// An Inspector provides methods for inspecting +// (traversing) the syntax trees of a package. +type Inspector struct { + events []event +} + +func packEdgeKindAndIndex(ek edge.Kind, index int) int32 { + return int32(uint32(index+1)<<7 | uint32(ek)) +} + +// unpackEdgeKindAndIndex unpacks the edge kind and edge index (within +// an []ast.Node slice) from the parent field of a pop event. +func unpackEdgeKindAndIndex(x int32) (edge.Kind, int) { + // The "parent" field of a pop node holds the + // edge Kind in the lower 7 bits and the index+1 + // in the upper 25. + return edge.Kind(x & 0x7f), int(x>>7) - 1 +} + +// New returns an Inspector for the specified syntax trees. +func New(files []*ast.File) *Inspector { + return &Inspector{traverse(files)} +} + +// An event represents a push or a pop +// of an ast.Node during a traversal. +type event struct { + node ast.Node + typ uint64 // typeOf(node) on push event, or union of typ strictly between push and pop events on pop events + index int32 // index of corresponding push or pop event + parent int32 // index of parent's push node (push nodes only), or packed edge kind/index (pop nodes only) +} + +// TODO: Experiment with storing only the second word of event.node (unsafe.Pointer). +// Type can be recovered from the sole bit in typ. +// [Tried this, wasn't faster. --adonovan] + +// Preorder visits all the nodes of the files supplied to New in +// depth-first order. It calls f(n) for each node n before it visits +// n's children. +// +// The complete traversal sequence is determined by [ast.Inspect]. +// The types argument, if non-empty, enables type-based filtering of +// events. The function f is called only for nodes whose type +// matches an element of the types slice. +// +// The [Cursor.Preorder] method provides a richer alternative interface. +// Example: +// +// for c := range in.Root().Preorder(types) { ... } +func (in *Inspector) Preorder(types []ast.Node, f func(ast.Node)) { + // Because it avoids postorder calls to f, and the pruning + // check, Preorder is almost twice as fast as Nodes. The two + // features seem to contribute similar slowdowns (~1.4x each). + + // This function is equivalent to the PreorderSeq call below, + // but to avoid the additional dynamic call (which adds 13-35% + // to the benchmarks), we expand it out. + // + // in.PreorderSeq(types...)(func(n ast.Node) bool { + // f(n) + // return true + // }) + + mask := maskOf(types) + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + if ev.typ&mask != 0 { + f(ev.node) + } + pop := ev.index + if in.events[pop].typ&mask == 0 { + // Subtrees do not contain types: skip them and pop. + i = pop + 1 + continue + } + } + i++ + } +} + +// Nodes visits the nodes of the files supplied to New in depth-first +// order. It calls f(n, true) for each node n before it visits n's +// children. If f returns true, Nodes invokes f recursively for each +// of the non-nil children of the node, followed by a call of +// f(n, false). +// +// The complete traversal sequence is determined by [ast.Inspect]. +// The types argument, if non-empty, enables type-based filtering of +// events. The function f if is called only for nodes whose type +// matches an element of the types slice. +// +// The [Cursor.Inspect] method provides a richer alternative interface. +// Example: +// +// in.Root().Inspect(types, func(c Cursor) bool { +// ... +// return true +// } +func (in *Inspector) Nodes(types []ast.Node, f func(n ast.Node, push bool) (proceed bool)) { + mask := maskOf(types) + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + pop := ev.index + if ev.typ&mask != 0 { + if !f(ev.node, true) { + i = pop + 1 // jump to corresponding pop + 1 + continue + } + } + if in.events[pop].typ&mask == 0 { + // Subtrees do not contain types: skip them. + i = pop + continue + } + } else { + // pop + push := ev.index + if in.events[push].typ&mask != 0 { + f(ev.node, false) + } + } + i++ + } +} + +// WithStack visits nodes in a similar manner to Nodes, but it +// supplies each call to f an additional argument, the current +// traversal stack. The stack's first element is the outermost node, +// an *ast.File; its last is the innermost, n. +// +// The [Cursor.Inspect] method provides a richer alternative interface. +// Example: +// +// in.Root().Inspect(types, func(c Cursor) bool { +// stack := slices.Collect(c.Enclosing()) +// ... +// return true +// }) +func (in *Inspector) WithStack(types []ast.Node, f func(n ast.Node, push bool, stack []ast.Node) (proceed bool)) { + mask := maskOf(types) + var stack []ast.Node + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + pop := ev.index + stack = append(stack, ev.node) + if ev.typ&mask != 0 { + if !f(ev.node, true, stack) { + i = pop + 1 + stack = stack[:len(stack)-1] + continue + } + } + if in.events[pop].typ&mask == 0 { + // Subtrees does not contain types: skip them. + i = pop + continue + } + } else { + // pop + push := ev.index + if in.events[push].typ&mask != 0 { + f(ev.node, false, stack) + } + stack = stack[:len(stack)-1] + } + i++ + } +} + +// traverse builds the table of events representing a traversal. +func traverse(files []*ast.File) []event { + // Preallocate approximate number of events + // based on source file extent of the declarations. + // (We use End-Pos not FileStart-FileEnd to neglect + // the effect of long doc comments.) + // This makes traverse faster by 4x (!). + var extent int + for _, f := range files { + extent += int(f.End() - f.Pos()) + } + // This estimate is based on the net/http package. + capacity := min(extent*33/100, 1e6) // impose some reasonable maximum (1M) + + v := &visitor{ + events: make([]event, 0, capacity), + stack: []item{{index: -1}}, // include an extra event so file nodes have a parent + } + for _, file := range files { + walk(v, edge.Invalid, -1, file) + } + return v.events +} + +type visitor struct { + events []event + stack []item +} + +type item struct { + index int32 // index of current node's push event + parentIndex int32 // index of parent node's push event + typAccum uint64 // accumulated type bits of current node's descendants + edgeKindAndIndex int32 // edge.Kind and index, bit packed +} + +func (v *visitor) push(ek edge.Kind, eindex int, node ast.Node) { + var ( + index = int32(len(v.events)) + parentIndex = v.stack[len(v.stack)-1].index + ) + v.events = append(v.events, event{ + node: node, + parent: parentIndex, + typ: typeOf(node), + index: 0, // (pop index is set later by visitor.pop) + }) + v.stack = append(v.stack, item{ + index: index, + parentIndex: parentIndex, + edgeKindAndIndex: packEdgeKindAndIndex(ek, eindex), + }) + + // 2B nodes ought to be enough for anyone! + if int32(len(v.events)) < 0 { + panic("event index exceeded int32") + } + + // 32M elements in an []ast.Node ought to be enough for anyone! + if ek2, eindex2 := unpackEdgeKindAndIndex(packEdgeKindAndIndex(ek, eindex)); ek2 != ek || eindex2 != eindex { + panic("Node slice index exceeded uint25") + } +} + +func (v *visitor) pop(node ast.Node) { + top := len(v.stack) - 1 + current := v.stack[top] + + push := &v.events[current.index] + parent := &v.stack[top-1] + + push.index = int32(len(v.events)) // make push event refer to pop + parent.typAccum |= current.typAccum | push.typ // accumulate type bits into parent + + v.stack = v.stack[:top] + + v.events = append(v.events, event{ + node: node, + typ: current.typAccum, + index: current.index, + parent: current.edgeKindAndIndex, // see [unpackEdgeKindAndIndex] + }) +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/iter.go b/vendor/golang.org/x/tools/go/ast/inspector/iter.go new file mode 100644 index 000000000..c576dc70a --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/iter.go @@ -0,0 +1,85 @@ +// 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. + +//go:build go1.23 + +package inspector + +import ( + "go/ast" + "iter" +) + +// PreorderSeq returns an iterator that visits all the +// nodes of the files supplied to New in depth-first order. +// It visits each node n before n's children. +// The complete traversal sequence is determined by ast.Inspect. +// +// The types argument, if non-empty, enables type-based +// filtering of events: only nodes whose type matches an +// element of the types slice are included in the sequence. +func (in *Inspector) PreorderSeq(types ...ast.Node) iter.Seq[ast.Node] { + + // This implementation is identical to Preorder, + // except that it supports breaking out of the loop. + + return func(yield func(ast.Node) bool) { + mask := maskOf(types) + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + if ev.typ&mask != 0 { + if !yield(ev.node) { + break + } + } + pop := ev.index + if in.events[pop].typ&mask == 0 { + // Subtrees do not contain types: skip them and pop. + i = pop + 1 + continue + } + } + i++ + } + } +} + +// All[N] returns an iterator over all the nodes of type N. +// N must be a pointer-to-struct type that implements ast.Node. +// +// Example: +// +// for call := range All[*ast.CallExpr](in) { ... } +func All[N interface { + *S + ast.Node +}, S any](in *Inspector) iter.Seq[N] { + + // To avoid additional dynamic call overheads, + // we duplicate rather than call the logic of PreorderSeq. + + mask := typeOf((N)(nil)) + return func(yield func(N) bool) { + for i := int32(0); i < int32(len(in.events)); { + ev := in.events[i] + if ev.index > i { + // push + if ev.typ&mask != 0 { + if !yield(ev.node.(N)) { + break + } + } + pop := ev.index + if in.events[pop].typ&mask == 0 { + // Subtrees do not contain types: skip them and pop. + i = pop + 1 + continue + } + } + i++ + } + } +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/typeof.go b/vendor/golang.org/x/tools/go/ast/inspector/typeof.go new file mode 100644 index 000000000..9852331a3 --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/typeof.go @@ -0,0 +1,227 @@ +// Copyright 2018 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 inspector + +// This file defines func typeOf(ast.Node) uint64. +// +// The initial map-based implementation was too slow; +// see https://go-review.googlesource.com/c/tools/+/135655/1/go/ast/inspector/inspector.go#196 + +import ( + "go/ast" + "math" +) + +const ( + nArrayType = iota + nAssignStmt + nBadDecl + nBadExpr + nBadStmt + nBasicLit + nBinaryExpr + nBlockStmt + nBranchStmt + nCallExpr + nCaseClause + nChanType + nCommClause + nComment + nCommentGroup + nCompositeLit + nDeclStmt + nDeferStmt + nEllipsis + nEmptyStmt + nExprStmt + nField + nFieldList + nFile + nForStmt + nFuncDecl + nFuncLit + nFuncType + nGenDecl + nGoStmt + nIdent + nIfStmt + nImportSpec + nIncDecStmt + nIndexExpr + nIndexListExpr + nInterfaceType + nKeyValueExpr + nLabeledStmt + nMapType + nPackage + nParenExpr + nRangeStmt + nReturnStmt + nSelectStmt + nSelectorExpr + nSendStmt + nSliceExpr + nStarExpr + nStructType + nSwitchStmt + nTypeAssertExpr + nTypeSpec + nTypeSwitchStmt + nUnaryExpr + nValueSpec +) + +// typeOf returns a distinct single-bit value that represents the type of n. +// +// Various implementations were benchmarked with BenchmarkNewInspector: +// +// GOGC=off +// - type switch 4.9-5.5ms 2.1ms +// - binary search over a sorted list of types 5.5-5.9ms 2.5ms +// - linear scan, frequency-ordered list 5.9-6.1ms 2.7ms +// - linear scan, unordered list 6.4ms 2.7ms +// - hash table 6.5ms 3.1ms +// +// A perfect hash seemed like overkill. +// +// The compiler's switch statement is the clear winner +// as it produces a binary tree in code, +// with constant conditions and good branch prediction. +// (Sadly it is the most verbose in source code.) +// Binary search suffered from poor branch prediction. +func typeOf(n ast.Node) uint64 { + // Fast path: nearly half of all nodes are identifiers. + if _, ok := n.(*ast.Ident); ok { + return 1 << nIdent + } + + // These cases include all nodes encountered by ast.Inspect. + switch n.(type) { + case *ast.ArrayType: + return 1 << nArrayType + case *ast.AssignStmt: + return 1 << nAssignStmt + case *ast.BadDecl: + return 1 << nBadDecl + case *ast.BadExpr: + return 1 << nBadExpr + case *ast.BadStmt: + return 1 << nBadStmt + case *ast.BasicLit: + return 1 << nBasicLit + case *ast.BinaryExpr: + return 1 << nBinaryExpr + case *ast.BlockStmt: + return 1 << nBlockStmt + case *ast.BranchStmt: + return 1 << nBranchStmt + case *ast.CallExpr: + return 1 << nCallExpr + case *ast.CaseClause: + return 1 << nCaseClause + case *ast.ChanType: + return 1 << nChanType + case *ast.CommClause: + return 1 << nCommClause + case *ast.Comment: + return 1 << nComment + case *ast.CommentGroup: + return 1 << nCommentGroup + case *ast.CompositeLit: + return 1 << nCompositeLit + case *ast.DeclStmt: + return 1 << nDeclStmt + case *ast.DeferStmt: + return 1 << nDeferStmt + case *ast.Ellipsis: + return 1 << nEllipsis + case *ast.EmptyStmt: + return 1 << nEmptyStmt + case *ast.ExprStmt: + return 1 << nExprStmt + case *ast.Field: + return 1 << nField + case *ast.FieldList: + return 1 << nFieldList + case *ast.File: + return 1 << nFile + case *ast.ForStmt: + return 1 << nForStmt + case *ast.FuncDecl: + return 1 << nFuncDecl + case *ast.FuncLit: + return 1 << nFuncLit + case *ast.FuncType: + return 1 << nFuncType + case *ast.GenDecl: + return 1 << nGenDecl + case *ast.GoStmt: + return 1 << nGoStmt + case *ast.Ident: + return 1 << nIdent + case *ast.IfStmt: + return 1 << nIfStmt + case *ast.ImportSpec: + return 1 << nImportSpec + case *ast.IncDecStmt: + return 1 << nIncDecStmt + case *ast.IndexExpr: + return 1 << nIndexExpr + case *ast.IndexListExpr: + return 1 << nIndexListExpr + case *ast.InterfaceType: + return 1 << nInterfaceType + case *ast.KeyValueExpr: + return 1 << nKeyValueExpr + case *ast.LabeledStmt: + return 1 << nLabeledStmt + case *ast.MapType: + return 1 << nMapType + case *ast.Package: + return 1 << nPackage + case *ast.ParenExpr: + return 1 << nParenExpr + case *ast.RangeStmt: + return 1 << nRangeStmt + case *ast.ReturnStmt: + return 1 << nReturnStmt + case *ast.SelectStmt: + return 1 << nSelectStmt + case *ast.SelectorExpr: + return 1 << nSelectorExpr + case *ast.SendStmt: + return 1 << nSendStmt + case *ast.SliceExpr: + return 1 << nSliceExpr + case *ast.StarExpr: + return 1 << nStarExpr + case *ast.StructType: + return 1 << nStructType + case *ast.SwitchStmt: + return 1 << nSwitchStmt + case *ast.TypeAssertExpr: + return 1 << nTypeAssertExpr + case *ast.TypeSpec: + return 1 << nTypeSpec + case *ast.TypeSwitchStmt: + return 1 << nTypeSwitchStmt + case *ast.UnaryExpr: + return 1 << nUnaryExpr + case *ast.ValueSpec: + return 1 << nValueSpec + } + return 0 +} + +func maskOf(nodes []ast.Node) uint64 { + if len(nodes) == 0 { + return math.MaxUint64 // match all node types + } + var mask uint64 + for _, n := range nodes { + mask |= typeOf(n) + } + return mask +} diff --git a/vendor/golang.org/x/tools/go/ast/inspector/walk.go b/vendor/golang.org/x/tools/go/ast/inspector/walk.go new file mode 100644 index 000000000..5f1c93c8a --- /dev/null +++ b/vendor/golang.org/x/tools/go/ast/inspector/walk.go @@ -0,0 +1,341 @@ +// Copyright 2025 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 inspector + +// This file is a fork of ast.Inspect to reduce unnecessary dynamic +// calls and to gather edge information. +// +// Consistency with the original is ensured by TestInspectAllNodes. + +import ( + "fmt" + "go/ast" + + "golang.org/x/tools/go/ast/edge" +) + +func walkList[N ast.Node](v *visitor, ek edge.Kind, list []N) { + for i, node := range list { + walk(v, ek, i, node) + } +} + +func walk(v *visitor, ek edge.Kind, index int, node ast.Node) { + v.push(ek, index, node) + + // walk children + // (the order of the cases matches the order + // of the corresponding node types in ast.go) + switch n := node.(type) { + // Comments and fields + case *ast.Comment: + // nothing to do + + case *ast.CommentGroup: + walkList(v, edge.CommentGroup_List, n.List) + + case *ast.Field: + if n.Doc != nil { + walk(v, edge.Field_Doc, -1, n.Doc) + } + walkList(v, edge.Field_Names, n.Names) + if n.Type != nil { + walk(v, edge.Field_Type, -1, n.Type) + } + if n.Tag != nil { + walk(v, edge.Field_Tag, -1, n.Tag) + } + if n.Comment != nil { + walk(v, edge.Field_Comment, -1, n.Comment) + } + + case *ast.FieldList: + walkList(v, edge.FieldList_List, n.List) + + // Expressions + case *ast.BadExpr, *ast.Ident, *ast.BasicLit: + // nothing to do + + case *ast.Ellipsis: + if n.Elt != nil { + walk(v, edge.Ellipsis_Elt, -1, n.Elt) + } + + case *ast.FuncLit: + walk(v, edge.FuncLit_Type, -1, n.Type) + walk(v, edge.FuncLit_Body, -1, n.Body) + + case *ast.CompositeLit: + if n.Type != nil { + walk(v, edge.CompositeLit_Type, -1, n.Type) + } + walkList(v, edge.CompositeLit_Elts, n.Elts) + + case *ast.ParenExpr: + walk(v, edge.ParenExpr_X, -1, n.X) + + case *ast.SelectorExpr: + walk(v, edge.SelectorExpr_X, -1, n.X) + walk(v, edge.SelectorExpr_Sel, -1, n.Sel) + + case *ast.IndexExpr: + walk(v, edge.IndexExpr_X, -1, n.X) + walk(v, edge.IndexExpr_Index, -1, n.Index) + + case *ast.IndexListExpr: + walk(v, edge.IndexListExpr_X, -1, n.X) + walkList(v, edge.IndexListExpr_Indices, n.Indices) + + case *ast.SliceExpr: + walk(v, edge.SliceExpr_X, -1, n.X) + if n.Low != nil { + walk(v, edge.SliceExpr_Low, -1, n.Low) + } + if n.High != nil { + walk(v, edge.SliceExpr_High, -1, n.High) + } + if n.Max != nil { + walk(v, edge.SliceExpr_Max, -1, n.Max) + } + + case *ast.TypeAssertExpr: + walk(v, edge.TypeAssertExpr_X, -1, n.X) + if n.Type != nil { + walk(v, edge.TypeAssertExpr_Type, -1, n.Type) + } + + case *ast.CallExpr: + walk(v, edge.CallExpr_Fun, -1, n.Fun) + walkList(v, edge.CallExpr_Args, n.Args) + + case *ast.StarExpr: + walk(v, edge.StarExpr_X, -1, n.X) + + case *ast.UnaryExpr: + walk(v, edge.UnaryExpr_X, -1, n.X) + + case *ast.BinaryExpr: + walk(v, edge.BinaryExpr_X, -1, n.X) + walk(v, edge.BinaryExpr_Y, -1, n.Y) + + case *ast.KeyValueExpr: + walk(v, edge.KeyValueExpr_Key, -1, n.Key) + walk(v, edge.KeyValueExpr_Value, -1, n.Value) + + // Types + case *ast.ArrayType: + if n.Len != nil { + walk(v, edge.ArrayType_Len, -1, n.Len) + } + walk(v, edge.ArrayType_Elt, -1, n.Elt) + + case *ast.StructType: + walk(v, edge.StructType_Fields, -1, n.Fields) + + case *ast.FuncType: + if n.TypeParams != nil { + walk(v, edge.FuncType_TypeParams, -1, n.TypeParams) + } + if n.Params != nil { + walk(v, edge.FuncType_Params, -1, n.Params) + } + if n.Results != nil { + walk(v, edge.FuncType_Results, -1, n.Results) + } + + case *ast.InterfaceType: + walk(v, edge.InterfaceType_Methods, -1, n.Methods) + + case *ast.MapType: + walk(v, edge.MapType_Key, -1, n.Key) + walk(v, edge.MapType_Value, -1, n.Value) + + case *ast.ChanType: + walk(v, edge.ChanType_Value, -1, n.Value) + + // Statements + case *ast.BadStmt: + // nothing to do + + case *ast.DeclStmt: + walk(v, edge.DeclStmt_Decl, -1, n.Decl) + + case *ast.EmptyStmt: + // nothing to do + + case *ast.LabeledStmt: + walk(v, edge.LabeledStmt_Label, -1, n.Label) + walk(v, edge.LabeledStmt_Stmt, -1, n.Stmt) + + case *ast.ExprStmt: + walk(v, edge.ExprStmt_X, -1, n.X) + + case *ast.SendStmt: + walk(v, edge.SendStmt_Chan, -1, n.Chan) + walk(v, edge.SendStmt_Value, -1, n.Value) + + case *ast.IncDecStmt: + walk(v, edge.IncDecStmt_X, -1, n.X) + + case *ast.AssignStmt: + walkList(v, edge.AssignStmt_Lhs, n.Lhs) + walkList(v, edge.AssignStmt_Rhs, n.Rhs) + + case *ast.GoStmt: + walk(v, edge.GoStmt_Call, -1, n.Call) + + case *ast.DeferStmt: + walk(v, edge.DeferStmt_Call, -1, n.Call) + + case *ast.ReturnStmt: + walkList(v, edge.ReturnStmt_Results, n.Results) + + case *ast.BranchStmt: + if n.Label != nil { + walk(v, edge.BranchStmt_Label, -1, n.Label) + } + + case *ast.BlockStmt: + walkList(v, edge.BlockStmt_List, n.List) + + case *ast.IfStmt: + if n.Init != nil { + walk(v, edge.IfStmt_Init, -1, n.Init) + } + walk(v, edge.IfStmt_Cond, -1, n.Cond) + walk(v, edge.IfStmt_Body, -1, n.Body) + if n.Else != nil { + walk(v, edge.IfStmt_Else, -1, n.Else) + } + + case *ast.CaseClause: + walkList(v, edge.CaseClause_List, n.List) + walkList(v, edge.CaseClause_Body, n.Body) + + case *ast.SwitchStmt: + if n.Init != nil { + walk(v, edge.SwitchStmt_Init, -1, n.Init) + } + if n.Tag != nil { + walk(v, edge.SwitchStmt_Tag, -1, n.Tag) + } + walk(v, edge.SwitchStmt_Body, -1, n.Body) + + case *ast.TypeSwitchStmt: + if n.Init != nil { + walk(v, edge.TypeSwitchStmt_Init, -1, n.Init) + } + walk(v, edge.TypeSwitchStmt_Assign, -1, n.Assign) + walk(v, edge.TypeSwitchStmt_Body, -1, n.Body) + + case *ast.CommClause: + if n.Comm != nil { + walk(v, edge.CommClause_Comm, -1, n.Comm) + } + walkList(v, edge.CommClause_Body, n.Body) + + case *ast.SelectStmt: + walk(v, edge.SelectStmt_Body, -1, n.Body) + + case *ast.ForStmt: + if n.Init != nil { + walk(v, edge.ForStmt_Init, -1, n.Init) + } + if n.Cond != nil { + walk(v, edge.ForStmt_Cond, -1, n.Cond) + } + if n.Post != nil { + walk(v, edge.ForStmt_Post, -1, n.Post) + } + walk(v, edge.ForStmt_Body, -1, n.Body) + + case *ast.RangeStmt: + if n.Key != nil { + walk(v, edge.RangeStmt_Key, -1, n.Key) + } + if n.Value != nil { + walk(v, edge.RangeStmt_Value, -1, n.Value) + } + walk(v, edge.RangeStmt_X, -1, n.X) + walk(v, edge.RangeStmt_Body, -1, n.Body) + + // Declarations + case *ast.ImportSpec: + if n.Doc != nil { + walk(v, edge.ImportSpec_Doc, -1, n.Doc) + } + if n.Name != nil { + walk(v, edge.ImportSpec_Name, -1, n.Name) + } + walk(v, edge.ImportSpec_Path, -1, n.Path) + if n.Comment != nil { + walk(v, edge.ImportSpec_Comment, -1, n.Comment) + } + + case *ast.ValueSpec: + if n.Doc != nil { + walk(v, edge.ValueSpec_Doc, -1, n.Doc) + } + walkList(v, edge.ValueSpec_Names, n.Names) + if n.Type != nil { + walk(v, edge.ValueSpec_Type, -1, n.Type) + } + walkList(v, edge.ValueSpec_Values, n.Values) + if n.Comment != nil { + walk(v, edge.ValueSpec_Comment, -1, n.Comment) + } + + case *ast.TypeSpec: + if n.Doc != nil { + walk(v, edge.TypeSpec_Doc, -1, n.Doc) + } + walk(v, edge.TypeSpec_Name, -1, n.Name) + if n.TypeParams != nil { + walk(v, edge.TypeSpec_TypeParams, -1, n.TypeParams) + } + walk(v, edge.TypeSpec_Type, -1, n.Type) + if n.Comment != nil { + walk(v, edge.TypeSpec_Comment, -1, n.Comment) + } + + case *ast.BadDecl: + // nothing to do + + case *ast.GenDecl: + if n.Doc != nil { + walk(v, edge.GenDecl_Doc, -1, n.Doc) + } + walkList(v, edge.GenDecl_Specs, n.Specs) + + case *ast.FuncDecl: + if n.Doc != nil { + walk(v, edge.FuncDecl_Doc, -1, n.Doc) + } + if n.Recv != nil { + walk(v, edge.FuncDecl_Recv, -1, n.Recv) + } + walk(v, edge.FuncDecl_Name, -1, n.Name) + walk(v, edge.FuncDecl_Type, -1, n.Type) + if n.Body != nil { + walk(v, edge.FuncDecl_Body, -1, n.Body) + } + + case *ast.File: + if n.Doc != nil { + walk(v, edge.File_Doc, -1, n.Doc) + } + walk(v, edge.File_Name, -1, n.Name) + walkList(v, edge.File_Decls, n.Decls) + // don't walk n.Comments - they have been + // visited already through the individual + // nodes + + default: + // (includes *ast.Package) + panic(fmt.Sprintf("Walk: unexpected node type %T", n)) + } + + v.pop(node) +} diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go index 89f89dd2d..680a70ca8 100644 --- a/vendor/golang.org/x/tools/go/packages/golist.go +++ b/vendor/golang.org/x/tools/go/packages/golist.go @@ -364,12 +364,6 @@ type jsonPackage struct { DepsErrors []*packagesinternal.PackageError } -type jsonPackageError struct { - ImportStack []string - Pos string - Err string -} - func otherFiles(p *jsonPackage) [][]string { return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles} } diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go index df14ffd94..af6a60d75 100644 --- a/vendor/golang.org/x/tools/go/packages/visit.go +++ b/vendor/golang.org/x/tools/go/packages/visit.go @@ -5,9 +5,11 @@ package packages import ( + "cmp" "fmt" + "iter" "os" - "sort" + "slices" ) // Visit visits all the packages in the import graph whose roots are @@ -16,6 +18,20 @@ import ( // package's dependencies have been visited (postorder). // The boolean result of pre(pkg) determines whether // the imports of package pkg are visited. +// +// Example: +// +// pkgs, err := Load(...) +// if err != nil { ... } +// Visit(pkgs, nil, func(pkg *Package) { +// log.Println(pkg) +// }) +// +// In most cases, it is more convenient to use [Postorder]: +// +// for pkg := range Postorder(pkgs) { +// log.Println(pkg) +// } func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { seen := make(map[*Package]bool) var visit func(*Package) @@ -24,13 +40,8 @@ func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { seen[pkg] = true if pre == nil || pre(pkg) { - paths := make([]string, 0, len(pkg.Imports)) - for path := range pkg.Imports { - paths = append(paths, path) - } - sort.Strings(paths) // Imports is a map, this makes visit stable - for _, path := range paths { - visit(pkg.Imports[path]) + for _, imp := range sorted(pkg.Imports) { // for determinism + visit(imp) } } @@ -50,7 +61,7 @@ func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { func PrintErrors(pkgs []*Package) int { var n int errModules := make(map[*Module]bool) - Visit(pkgs, nil, func(pkg *Package) { + for pkg := range Postorder(pkgs) { for _, err := range pkg.Errors { fmt.Fprintln(os.Stderr, err) n++ @@ -63,6 +74,60 @@ func PrintErrors(pkgs []*Package) int { fmt.Fprintln(os.Stderr, mod.Error.Err) n++ } - }) + } return n } + +// Postorder returns an iterator over the the packages in +// the import graph whose roots are pkg. +// Packages are enumerated in dependencies-first order. +func Postorder(pkgs []*Package) iter.Seq[*Package] { + return func(yield func(*Package) bool) { + seen := make(map[*Package]bool) + var visit func(*Package) bool + visit = func(pkg *Package) bool { + if !seen[pkg] { + seen[pkg] = true + for _, imp := range sorted(pkg.Imports) { // for determinism + if !visit(imp) { + return false + } + } + if !yield(pkg) { + return false + } + } + return true + } + for _, pkg := range pkgs { + if !visit(pkg) { + break + } + } + } +} + +// -- copied from golang.org.x/tools/gopls/internal/util/moremaps -- + +// sorted returns an iterator over the entries of m in key order. +func sorted[M ~map[K]V, K cmp.Ordered, V any](m M) iter.Seq2[K, V] { + // TODO(adonovan): use maps.Sorted if proposal #68598 is accepted. + return func(yield func(K, V) bool) { + keys := keySlice(m) + slices.Sort(keys) + for _, k := range keys { + if !yield(k, m[k]) { + break + } + } + } +} + +// KeySlice returns the keys of the map M, like slices.Collect(maps.Keys(m)). +func keySlice[M ~map[K]V, K comparable, V any](m M) []K { + r := make([]K, 0, len(m)) + for k := range m { + r = append(r, k) + } + return r +} diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go index d3c2913be..6c0c74968 100644 --- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go +++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go @@ -698,7 +698,10 @@ func Object(pkg *types.Package, p Path) (types.Object, error) { } else if false && aliases.Enabled() { // The Enabled check is too expensive, so for now we // simply assume that aliases are not enabled. - // TODO(adonovan): replace with "if true {" when go1.24 is assured. + // + // Now that go1.24 is assured, we should be able to + // replace this with "if true {", but it causes tests + // to fail. TODO(adonovan): investigate. return nil, fmt.Errorf("cannot apply %q to %s (got %T, want alias)", code, t, t) } diff --git a/vendor/golang.org/x/tools/go/types/typeutil/map.go b/vendor/golang.org/x/tools/go/types/typeutil/map.go index b6d542c64..f035a0b6b 100644 --- a/vendor/golang.org/x/tools/go/types/typeutil/map.go +++ b/vendor/golang.org/x/tools/go/types/typeutil/map.go @@ -11,7 +11,6 @@ import ( "fmt" "go/types" "hash/maphash" - "unsafe" "golang.org/x/tools/internal/typeparams" ) @@ -380,22 +379,8 @@ var theSeed = maphash.MakeSeed() func (hasher) hashTypeName(tname *types.TypeName) uint32 { // Since types.Identical uses == to compare TypeNames, // the Hash function uses maphash.Comparable. - // TODO(adonovan): or will, when it becomes available in go1.24. - // In the meantime we use the pointer's numeric value. - // - // hash := maphash.Comparable(theSeed, tname) - // - // (Another approach would be to hash the name and package - // path, and whether or not it is a package-level typename. It - // is rare for a package to define multiple local types with - // the same name.) - ptr := uintptr(unsafe.Pointer(tname)) - if unsafe.Sizeof(ptr) == 8 { - hash := uint64(ptr) - return uint32(hash ^ (hash >> 32)) - } else { - return uint32(ptr) - } + hash := maphash.Comparable(theSeed, tname) + return uint32(hash ^ (hash >> 32)) } // shallowHash computes a hash of t without looking at any of its diff --git a/vendor/golang.org/x/tools/imports/forward.go b/vendor/golang.org/x/tools/imports/forward.go index cb6db8893..22ae77772 100644 --- a/vendor/golang.org/x/tools/imports/forward.go +++ b/vendor/golang.org/x/tools/imports/forward.go @@ -69,9 +69,3 @@ func Process(filename string, src []byte, opt *Options) ([]byte, error) { } return intimp.Process(filename, src, intopt) } - -// VendorlessPath returns the devendorized version of the import path ipath. -// For example, VendorlessPath("foo/bar/vendor/a/b") returns "a/b". -func VendorlessPath(ipath string) string { - return intimp.VendorlessPath(ipath) -} diff --git a/vendor/golang.org/x/tools/internal/event/core/event.go b/vendor/golang.org/x/tools/internal/event/core/event.go index a6cf0e64a..ade5d1e79 100644 --- a/vendor/golang.org/x/tools/internal/event/core/event.go +++ b/vendor/golang.org/x/tools/internal/event/core/event.go @@ -28,11 +28,6 @@ type Event struct { dynamic []label.Label // dynamically sized storage for remaining labels } -// eventLabelMap implements label.Map for a the labels of an Event. -type eventLabelMap struct { - event Event -} - func (ev Event) At() time.Time { return ev.at } func (ev Event) Format(f fmt.State, r rune) { diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go index 780873e3a..4a4357d2b 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -569,7 +569,6 @@ func (p *iexporter) exportName(obj types.Object) (res string) { type iexporter struct { fset *token.FileSet - out *bytes.Buffer version int shallow bool // don't put types from other packages in the index diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go deleted file mode 100644 index 7586bfaca..000000000 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go +++ /dev/null @@ -1,53 +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. - -//go:build go1.22 && !go1.24 - -package gcimporter - -import ( - "go/token" - "go/types" - "unsafe" -) - -// TODO(rfindley): delete this workaround once go1.24 is assured. - -func init() { - // Update markBlack so that it correctly sets the color - // of imported TypeNames. - // - // See the doc comment for markBlack for details. - - type color uint32 - const ( - white color = iota - black - grey - ) - type object struct { - _ *types.Scope - _ token.Pos - _ *types.Package - _ string - _ types.Type - _ uint32 - color_ color - _ token.Pos - } - type typeName struct { - object - } - - // If the size of types.TypeName changes, this will fail to compile. - const delta = int64(unsafe.Sizeof(typeName{})) - int64(unsafe.Sizeof(types.TypeName{})) - var _ [-delta * delta]int - - markBlack = func(obj *types.TypeName) { - type uP = unsafe.Pointer - var ptr *typeName - *(*uP)(uP(&ptr)) = uP(obj) - ptr.color_ = black - } -} diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index 50b6ca51a..1b4dc0cb5 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -16,6 +16,7 @@ import ( "go/types" "io/fs" "io/ioutil" + "maps" "os" "path" "path/filepath" @@ -27,8 +28,6 @@ import ( "unicode" "unicode/utf8" - "maps" - "golang.org/x/tools/go/ast/astutil" "golang.org/x/tools/internal/event" "golang.org/x/tools/internal/gocommand" @@ -43,7 +42,7 @@ var importToGroup = []func(localPrefix, importPath string) (num int, ok bool){ if localPrefix == "" { return } - for _, p := range strings.Split(localPrefix, ",") { + for p := range strings.SplitSeq(localPrefix, ",") { if strings.HasPrefix(importPath, p) || strings.TrimSuffix(p, "/") == importPath { return 3, true } @@ -1251,7 +1250,6 @@ func ImportPathToAssumedName(importPath string) string { // gopathResolver implements resolver for GOPATH workspaces. type gopathResolver struct { env *ProcessEnv - walked bool cache *DirInfoCache scanSema chan struct{} // scanSema prevents concurrent scans. } diff --git a/vendor/golang.org/x/tools/internal/modindex/symbols.go b/vendor/golang.org/x/tools/internal/modindex/symbols.go index fe24db9b1..8e9702d84 100644 --- a/vendor/golang.org/x/tools/internal/modindex/symbols.go +++ b/vendor/golang.org/x/tools/internal/modindex/symbols.go @@ -206,8 +206,7 @@ func isDeprecated(doc *ast.CommentGroup) bool { // go.dev/wiki/Deprecated Paragraph starting 'Deprecated:' // This code fails for /* Deprecated: */, but it's the code from // gopls/internal/analysis/deprecated - lines := strings.Split(doc.Text(), "\n\n") - for _, line := range lines { + for line := range strings.SplitSeq(doc.Text(), "\n\n") { if strings.HasPrefix(line, "Deprecated:") { return true } diff --git a/vendor/golang.org/x/tools/internal/stdlib/deps.go b/vendor/golang.org/x/tools/internal/stdlib/deps.go index 77cf8d218..96ad6c582 100644 --- a/vendor/golang.org/x/tools/internal/stdlib/deps.go +++ b/vendor/golang.org/x/tools/internal/stdlib/deps.go @@ -12,348 +12,354 @@ type pkginfo struct { } var deps = [...]pkginfo{ - {"archive/tar", "\x03j\x03E5\x01\v\x01#\x01\x01\x02\x05\n\x02\x01\x02\x02\v"}, - {"archive/zip", "\x02\x04`\a\x16\x0205\x01+\x05\x01\x11\x03\x02\r\x04"}, - {"bufio", "\x03j}F\x13"}, - {"bytes", "m+R\x03\fH\x02\x02"}, + {"archive/tar", "\x03k\x03E;\x01\n\x01$\x01\x01\x02\x05\b\x02\x01\x02\x02\f"}, + {"archive/zip", "\x02\x04a\a\x03\x12\x021;\x01+\x05\x01\x0f\x03\x02\x0e\x04"}, + {"bufio", "\x03k\x83\x01D\x14"}, + {"bytes", "n*Y\x03\fG\x02\x02"}, {"cmp", ""}, - {"compress/bzip2", "\x02\x02\xe6\x01C"}, - {"compress/flate", "\x02k\x03z\r\x025\x01\x03"}, - {"compress/gzip", "\x02\x04`\a\x03\x15eU"}, - {"compress/lzw", "\x02k\x03z"}, - {"compress/zlib", "\x02\x04`\a\x03\x13\x01f"}, - {"container/heap", "\xae\x02"}, + {"compress/bzip2", "\x02\x02\xed\x01A"}, + {"compress/flate", "\x02l\x03\x80\x01\f\x033\x01\x03"}, + {"compress/gzip", "\x02\x04a\a\x03\x14lT"}, + {"compress/lzw", "\x02l\x03\x80\x01"}, + {"compress/zlib", "\x02\x04a\a\x03\x12\x01m"}, + {"container/heap", "\xb3\x02"}, {"container/list", ""}, {"container/ring", ""}, - {"context", "m\\i\x01\f"}, - {"crypto", "\x83\x01gE"}, - {"crypto/aes", "\x10\n\a\x8e\x02"}, - {"crypto/cipher", "\x03\x1e\x01\x01\x1d\x11\x1c,Q"}, - {"crypto/des", "\x10\x13\x1d-,\x96\x01\x03"}, - {"crypto/dsa", "@\x04)}\x0e"}, - {"crypto/ecdh", "\x03\v\f\x0e\x04\x14\x04\r\x1c}"}, - {"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\x16\x01\x04\f\x01\x1c}\x0e\x04L\x01"}, - {"crypto/ed25519", "\x0e\x1c\x16\n\a\x1c}E"}, - {"crypto/elliptic", "0=}\x0e:"}, - {"crypto/fips140", " \x05\x90\x01"}, - {"crypto/hkdf", "-\x12\x01-\x16"}, - {"crypto/hmac", "\x1a\x14\x11\x01\x112"}, + {"context", "n\\m\x01\r"}, + {"crypto", "\x83\x01nC"}, + {"crypto/aes", "\x10\n\a\x93\x02"}, + {"crypto/cipher", "\x03\x1e\x01\x01\x1e\x11\x1c+X"}, + {"crypto/des", "\x10\x13\x1e-+\x9b\x01\x03"}, + {"crypto/dsa", "A\x04)\x83\x01\r"}, + {"crypto/ecdh", "\x03\v\f\x0e\x04\x15\x04\r\x1c\x83\x01"}, + {"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\a\v\x05\x01\x04\f\x01\x1c\x83\x01\r\x05K\x01"}, + {"crypto/ed25519", "\x0e\x1c\x11\x06\n\a\x1c\x83\x01C"}, + {"crypto/elliptic", "0>\x83\x01\r9"}, + {"crypto/fips140", " \x05"}, + {"crypto/hkdf", "-\x13\x01-\x15"}, + {"crypto/hmac", "\x1a\x14\x12\x01\x111"}, {"crypto/internal/boring", "\x0e\x02\rf"}, - {"crypto/internal/boring/bbig", "\x1a\xde\x01M"}, - {"crypto/internal/boring/bcache", "\xb3\x02\x12"}, + {"crypto/internal/boring/bbig", "\x1a\xe4\x01M"}, + {"crypto/internal/boring/bcache", "\xb8\x02\x13"}, {"crypto/internal/boring/sig", ""}, - {"crypto/internal/cryptotest", "\x03\r\n)\x0e\x19\x06\x13\x12#\a\t\x11\x11\x11\x1b\x01\f\r\x05\n"}, - {"crypto/internal/entropy", "E"}, - {"crypto/internal/fips140", ">/}9\r\x15"}, - {"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x04\x01\x01\x05*\x8c\x016"}, - {"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x04\x01\x06*\x8a\x01"}, - {"crypto/internal/fips140/alias", "\xc5\x02"}, - {"crypto/internal/fips140/bigmod", "%\x17\x01\x06*\x8c\x01"}, - {"crypto/internal/fips140/check", " \x0e\x06\b\x02\xac\x01["}, - {"crypto/internal/fips140/check/checktest", "%\xfe\x01\""}, - {"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x04\b\x01(}\x0f9"}, - {"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\f1}\x0f9"}, - {"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x067}H"}, - {"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v7\xc2\x01\x03"}, - {"crypto/internal/fips140/edwards25519", "%\a\f\x041\x8c\x019"}, - {"crypto/internal/fips140/edwards25519/field", "%\x13\x041\x8c\x01"}, - {"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x069"}, - {"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x017"}, - {"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x041"}, - {"crypto/internal/fips140/nistec", "%\f\a\x041\x8c\x01*\x0f\x13"}, - {"crypto/internal/fips140/nistec/fiat", "%\x135\x8c\x01"}, - {"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x069"}, - {"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x025}H"}, - {"crypto/internal/fips140/sha256", "\x03\x1d\x1c\x01\x06*\x8c\x01"}, - {"crypto/internal/fips140/sha3", "\x03\x1d\x18\x04\x010\x8c\x01L"}, - {"crypto/internal/fips140/sha512", "\x03\x1d\x1c\x01\x06*\x8c\x01"}, - {"crypto/internal/fips140/ssh", " \x05"}, - {"crypto/internal/fips140/subtle", "#"}, - {"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x027"}, - {"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\b1"}, + {"crypto/internal/cryptotest", "\x03\r\n\x06$\x0e\x19\x06\x12\x12 \x04\a\t\x16\x01\x11\x11\x1b\x01\a\x05\b\x03\x05\v"}, + {"crypto/internal/entropy", "F"}, + {"crypto/internal/fips140", "?/\x15\xa7\x01\v\x16"}, + {"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x05\x01\x01\x05*\x92\x014"}, + {"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x05\x01\x06*\x8f\x01"}, + {"crypto/internal/fips140/alias", "\xcb\x02"}, + {"crypto/internal/fips140/bigmod", "%\x18\x01\x06*\x92\x01"}, + {"crypto/internal/fips140/check", " \x0e\x06\t\x02\xb2\x01Z"}, + {"crypto/internal/fips140/check/checktest", "%\x85\x02!"}, + {"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x05\b\x01(\x83\x01\x0f7"}, + {"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\r1\x83\x01\x0f7"}, + {"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x068\x15nF"}, + {"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v8\xc6\x01\x03"}, + {"crypto/internal/fips140/edwards25519", "%\a\f\x051\x92\x017"}, + {"crypto/internal/fips140/edwards25519/field", "%\x13\x051\x92\x01"}, + {"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x06:\x15"}, + {"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x018\x15"}, + {"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x051"}, + {"crypto/internal/fips140/nistec", "%\f\a\x051\x92\x01*\r\x14"}, + {"crypto/internal/fips140/nistec/fiat", "%\x136\x92\x01"}, + {"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x06:\x15"}, + {"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x026\x15nF"}, + {"crypto/internal/fips140/sha256", "\x03\x1d\x1d\x01\x06*\x15}"}, + {"crypto/internal/fips140/sha3", "\x03\x1d\x18\x05\x010\x92\x01K"}, + {"crypto/internal/fips140/sha512", "\x03\x1d\x1d\x01\x06*\x15}"}, + {"crypto/internal/fips140/ssh", "%^"}, + {"crypto/internal/fips140/subtle", "#\x1a\xc3\x01"}, + {"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x028\x15"}, + {"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\t1\x15"}, + {"crypto/internal/fips140cache", "\xaa\x02\r&"}, {"crypto/internal/fips140deps", ""}, {"crypto/internal/fips140deps/byteorder", "\x99\x01"}, - {"crypto/internal/fips140deps/cpu", "\xad\x01\a"}, - {"crypto/internal/fips140deps/godebug", "\xb5\x01"}, - {"crypto/internal/fips140hash", "5\x1a4\xc2\x01"}, - {"crypto/internal/fips140only", "'\r\x01\x01M25"}, + {"crypto/internal/fips140deps/cpu", "\xae\x01\a"}, + {"crypto/internal/fips140deps/godebug", "\xb6\x01"}, + {"crypto/internal/fips140hash", "5\x1b3\xc8\x01"}, + {"crypto/internal/fips140only", "'\r\x01\x01M3;"}, {"crypto/internal/fips140test", ""}, - {"crypto/internal/hpke", "\x0e\x01\x01\x03\x1a\x1d#,`N"}, - {"crypto/internal/impl", "\xb0\x02"}, - {"crypto/internal/randutil", "\xea\x01\x12"}, - {"crypto/internal/sysrand", "mi!\x1f\r\x0f\x01\x01\v\x06"}, - {"crypto/internal/sysrand/internal/seccomp", "m"}, - {"crypto/md5", "\x0e2-\x16\x16`"}, + {"crypto/internal/hpke", "\x0e\x01\x01\x03\x053#+gM"}, + {"crypto/internal/impl", "\xb5\x02"}, + {"crypto/internal/randutil", "\xf1\x01\x12"}, + {"crypto/internal/sysrand", "nn! \r\r\x01\x01\f\x06"}, + {"crypto/internal/sysrand/internal/seccomp", "n"}, + {"crypto/md5", "\x0e3-\x15\x16g"}, {"crypto/mlkem", "/"}, - {"crypto/pbkdf2", "2\r\x01-\x16"}, - {"crypto/rand", "\x1a\x06\a\x19\x04\x01(}\x0eM"}, - {"crypto/rc4", "#\x1d-\xc2\x01"}, - {"crypto/rsa", "\x0e\f\x01\t\x0f\f\x01\x04\x06\a\x1c\x03\x1325\r\x01"}, - {"crypto/sha1", "\x0e\f&-\x16\x16\x14L"}, + {"crypto/pbkdf2", "2\x0e\x01-\x15"}, + {"crypto/rand", "\x1a\x06\a\x1a\x04\x01(\x83\x01\rM"}, + {"crypto/rc4", "#\x1e-\xc6\x01"}, + {"crypto/rsa", "\x0e\f\x01\t\x0f\r\x01\x04\x06\a\x1c\x03\x123;\f\x01"}, + {"crypto/sha1", "\x0e\f'\x03*\x15\x16\x15R"}, {"crypto/sha256", "\x0e\f\x1aO"}, - {"crypto/sha3", "\x0e'N\xc2\x01"}, + {"crypto/sha3", "\x0e'N\xc8\x01"}, {"crypto/sha512", "\x0e\f\x1cM"}, - {"crypto/subtle", "8\x96\x01U"}, - {"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x03\x01\a\x01\v\x02\n\x01\b\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x13\x16\x14\b5\x16\x16\r\n\x01\x01\x01\x02\x01\f\x06\x02\x01"}, - {"crypto/tls/internal/fips140tls", " \x93\x02"}, - {"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x011\x03\x02\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x032\x01\x02\t\x01\x01\x01\a\x10\x05\x01\x06\x02\x05\f\x01\x02\r\x02\x01\x01\x02\x03\x01"}, - {"crypto/x509/pkix", "c\x06\a\x88\x01G"}, - {"database/sql", "\x03\nJ\x16\x03z\f\x06\"\x05\n\x02\x03\x01\f\x02\x02\x02"}, - {"database/sql/driver", "\r`\x03\xae\x01\x11\x10"}, - {"debug/buildinfo", "\x03W\x02\x01\x01\b\a\x03`\x18\x02\x01+\x0f "}, - {"debug/dwarf", "\x03c\a\x03z1\x13\x01\x01"}, - {"debug/elf", "\x03\x06P\r\a\x03`\x19\x01,\x19\x01\x15"}, - {"debug/gosym", "\x03c\n\xbe\x01\x01\x01\x02"}, - {"debug/macho", "\x03\x06P\r\n`\x1a,\x19\x01"}, - {"debug/pe", "\x03\x06P\r\a\x03`\x1a,\x19\x01\x15"}, - {"debug/plan9obj", "f\a\x03`\x1a,"}, - {"embed", "m+:\x18\x01T"}, + {"crypto/subtle", "8\x9b\x01W"}, + {"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x02\x01\x01\a\x01\r\n\x01\t\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x12\x16\x15\b;\x16\x16\r\b\x01\x01\x01\x02\x01\r\x06\x02\x01\x0f"}, + {"crypto/tls/internal/fips140tls", "\x17\xa1\x02"}, + {"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x012\x05\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x038\x01\x02\b\x01\x01\x02\a\x10\x05\x01\x06\x02\x05\n\x01\x02\x0e\x02\x01\x01\x02\x03\x01"}, + {"crypto/x509/pkix", "d\x06\a\x8d\x01G"}, + {"database/sql", "\x03\nK\x16\x03\x80\x01\v\a\"\x05\b\x02\x03\x01\r\x02\x02\x02"}, + {"database/sql/driver", "\ra\x03\xb4\x01\x0f\x11"}, + {"debug/buildinfo", "\x03X\x02\x01\x01\b\a\x03e\x19\x02\x01+\x0f\x1f"}, + {"debug/dwarf", "\x03d\a\x03\x80\x011\x11\x01\x01"}, + {"debug/elf", "\x03\x06Q\r\a\x03e\x1a\x01,\x17\x01\x16"}, + {"debug/gosym", "\x03d\n\xc2\x01\x01\x01\x02"}, + {"debug/macho", "\x03\x06Q\r\ne\x1b,\x17\x01"}, + {"debug/pe", "\x03\x06Q\r\a\x03e\x1b,\x17\x01\x16"}, + {"debug/plan9obj", "g\a\x03e\x1b,"}, + {"embed", "n*@\x19\x01S"}, {"embed/internal/embedtest", ""}, {"encoding", ""}, - {"encoding/ascii85", "\xea\x01E"}, - {"encoding/asn1", "\x03j\x03\x87\x01\x01&\x0f\x02\x01\x0f\x03\x01"}, - {"encoding/base32", "\xea\x01C\x02"}, - {"encoding/base64", "\x99\x01QC\x02"}, - {"encoding/binary", "m}\r'\x0f\x05"}, - {"encoding/csv", "\x02\x01j\x03zF\x11\x02"}, - {"encoding/gob", "\x02_\x05\a\x03`\x1a\f\x01\x02\x1d\b\x14\x01\x0e\x02"}, - {"encoding/hex", "m\x03zC\x03"}, - {"encoding/json", "\x03\x01]\x04\b\x03z\r'\x0f\x02\x01\x02\x0f\x01\x01\x02"}, - {"encoding/pem", "\x03b\b}C\x03"}, - {"encoding/xml", "\x02\x01^\f\x03z4\x05\f\x01\x02\x0f\x02"}, - {"errors", "\xc9\x01|"}, - {"expvar", "jK9\t\n\x15\r\n\x02\x03\x01\x10"}, - {"flag", "a\f\x03z,\b\x05\n\x02\x01\x0f"}, - {"fmt", "mE8\r\x1f\b\x0f\x02\x03\x11"}, - {"go/ast", "\x03\x01l\x0f\x01j\x03)\b\x0f\x02\x01"}, - {"go/ast/internal/tests", ""}, - {"go/build", "\x02\x01j\x03\x01\x03\x02\a\x02\x01\x17\x1e\x04\x02\t\x14\x12\x01+\x01\x04\x01\a\n\x02\x01\x11\x02\x02"}, - {"go/build/constraint", "m\xc2\x01\x01\x11\x02"}, - {"go/constant", "p\x10w\x01\x016\x01\x02\x11"}, - {"go/doc", "\x04l\x01\x06\t=-1\x12\x02\x01\x11\x02"}, - {"go/doc/comment", "\x03m\xbd\x01\x01\x01\x01\x11\x02"}, - {"go/format", "\x03m\x01\f\x01\x02jF"}, - {"go/importer", "s\a\x01\x01\x04\x01i9"}, - {"go/internal/gccgoimporter", "\x02\x01W\x13\x03\x05\v\x01g\x02,\x01\x05\x13\x01\v\b"}, - {"go/internal/gcimporter", "\x02n\x10\x01/\x05\x0e',\x17\x03\x02"}, - {"go/internal/srcimporter", "p\x01\x02\n\x03\x01i,\x01\x05\x14\x02\x13"}, - {"go/parser", "\x03j\x03\x01\x03\v\x01j\x01+\x06\x14"}, - {"go/printer", "p\x01\x03\x03\tj\r\x1f\x17\x02\x01\x02\n\x05\x02"}, - {"go/scanner", "\x03m\x10j2\x12\x01\x12\x02"}, - {"go/token", "\x04l\xbd\x01\x02\x03\x01\x0e\x02"}, - {"go/types", "\x03\x01\x06c\x03\x01\x04\b\x03\x02\x15\x1e\x06+\x04\x03\n%\a\n\x01\x01\x01\x02\x01\x0e\x02\x02"}, - {"go/version", "\xba\x01v"}, - {"hash", "\xea\x01"}, - {"hash/adler32", "m\x16\x16"}, - {"hash/crc32", "m\x16\x16\x14\x85\x01\x01\x12"}, - {"hash/crc64", "m\x16\x16\x99\x01"}, - {"hash/fnv", "m\x16\x16`"}, - {"hash/maphash", "\x94\x01\x05\x1b\x03@N"}, - {"html", "\xb0\x02\x02\x11"}, - {"html/template", "\x03g\x06\x19,5\x01\v \x05\x01\x02\x03\x0e\x01\x02\v\x01\x03\x02"}, - {"image", "\x02k\x1f^\x0f6\x03\x01"}, + {"encoding/ascii85", "\xf1\x01C"}, + {"encoding/asn1", "\x03k\x03\x8c\x01\x01'\r\x02\x01\x10\x03\x01"}, + {"encoding/base32", "\xf1\x01A\x02"}, + {"encoding/base64", "\x99\x01XA\x02"}, + {"encoding/binary", "n\x83\x01\f(\r\x05"}, + {"encoding/csv", "\x02\x01k\x03\x80\x01D\x12\x02"}, + {"encoding/gob", "\x02`\x05\a\x03e\x1b\v\x01\x03\x1d\b\x12\x01\x0f\x02"}, + {"encoding/hex", "n\x03\x80\x01A\x03"}, + {"encoding/json", "\x03\x01^\x04\b\x03\x80\x01\f(\r\x02\x01\x02\x10\x01\x01\x02"}, + {"encoding/pem", "\x03c\b\x83\x01A\x03"}, + {"encoding/xml", "\x02\x01_\f\x03\x80\x014\x05\n\x01\x02\x10\x02"}, + {"errors", "\xca\x01\x81\x01"}, + {"expvar", "kK?\b\v\x15\r\b\x02\x03\x01\x11"}, + {"flag", "b\f\x03\x80\x01,\b\x05\b\x02\x01\x10"}, + {"fmt", "nE>\f \b\r\x02\x03\x12"}, + {"go/ast", "\x03\x01m\x0e\x01q\x03)\b\r\x02\x01"}, + {"go/build", "\x02\x01k\x03\x01\x02\x02\a\x02\x01\x17\x1f\x04\x02\t\x19\x13\x01+\x01\x04\x01\a\b\x02\x01\x12\x02\x02"}, + {"go/build/constraint", "n\xc6\x01\x01\x12\x02"}, + {"go/constant", "q\x0f}\x01\x024\x01\x02\x12"}, + {"go/doc", "\x04m\x01\x05\t>31\x10\x02\x01\x12\x02"}, + {"go/doc/comment", "\x03n\xc1\x01\x01\x01\x01\x12\x02"}, + {"go/format", "\x03n\x01\v\x01\x02qD"}, + {"go/importer", "s\a\x01\x01\x04\x01p9"}, + {"go/internal/gccgoimporter", "\x02\x01X\x13\x03\x04\v\x01n\x02,\x01\x05\x11\x01\f\b"}, + {"go/internal/gcimporter", "\x02o\x0f\x010\x05\x0e-,\x15\x03\x02"}, + {"go/internal/srcimporter", "q\x01\x01\n\x03\x01p,\x01\x05\x12\x02\x14"}, + {"go/parser", "\x03k\x03\x01\x02\v\x01q\x01+\x06\x12"}, + {"go/printer", "q\x01\x02\x03\tq\f \x15\x02\x01\x02\v\x05\x02"}, + {"go/scanner", "\x03n\x0fq2\x10\x01\x13\x02"}, + {"go/token", "\x04m\x83\x01>\x02\x03\x01\x0f\x02"}, + {"go/types", "\x03\x01\x06d\x03\x01\x03\b\x03\x02\x15\x1f\x061\x04\x03\t \x06\a\b\x01\x01\x01\x02\x01\x0f\x02\x02"}, + {"go/version", "\xbb\x01z"}, + {"hash", "\xf1\x01"}, + {"hash/adler32", "n\x15\x16"}, + {"hash/crc32", "n\x15\x16\x15\x89\x01\x01\x13"}, + {"hash/crc64", "n\x15\x16\x9e\x01"}, + {"hash/fnv", "n\x15\x16g"}, + {"hash/maphash", "\x83\x01\x11!\x03\x93\x01"}, + {"html", "\xb5\x02\x02\x12"}, + {"html/template", "\x03h\x06\x18-;\x01\n!\x05\x01\x02\x03\f\x01\x02\f\x01\x03\x02"}, + {"image", "\x02l\x1ee\x0f4\x03\x01"}, {"image/color", ""}, {"image/color/palette", "\x8c\x01"}, {"image/draw", "\x8b\x01\x01\x04"}, - {"image/gif", "\x02\x01\x05e\x03\x1b\x01\x01\x01\vQ"}, + {"image/gif", "\x02\x01\x05f\x03\x1a\x01\x01\x01\vX"}, {"image/internal/imageutil", "\x8b\x01"}, - {"image/jpeg", "\x02k\x1e\x01\x04Z"}, - {"image/png", "\x02\a]\n\x13\x02\x06\x01^E"}, - {"index/suffixarray", "\x03c\a}\r*\f\x01"}, - {"internal/abi", "\xb4\x01\x91\x01"}, - {"internal/asan", "\xc5\x02"}, - {"internal/bisect", "\xa3\x02\x0f\x01"}, - {"internal/buildcfg", "pG_\x06\x02\x05\f\x01"}, - {"internal/bytealg", "\xad\x01\x98\x01"}, + {"image/jpeg", "\x02l\x1d\x01\x04a"}, + {"image/png", "\x02\a^\n\x12\x02\x06\x01eC"}, + {"index/suffixarray", "\x03d\a\x83\x01\f+\n\x01"}, + {"internal/abi", "\xb5\x01\x96\x01"}, + {"internal/asan", "\xcb\x02"}, + {"internal/bisect", "\xaa\x02\r\x01"}, + {"internal/buildcfg", "qGe\x06\x02\x05\n\x01"}, + {"internal/bytealg", "\xae\x01\x9d\x01"}, {"internal/byteorder", ""}, {"internal/cfg", ""}, - {"internal/chacha8rand", "\x99\x01\x1b\x91\x01"}, + {"internal/cgrouptest", "q[Q\x06\x0f\x02\x01\x04\x01"}, + {"internal/chacha8rand", "\x99\x01\x15\a\x96\x01"}, {"internal/copyright", ""}, {"internal/coverage", ""}, {"internal/coverage/calloc", ""}, - {"internal/coverage/cfile", "j\x06\x17\x16\x01\x02\x01\x01\x01\x01\x01\x01\x01#\x01\x1f,\x06\a\f\x01\x03\f\x06"}, - {"internal/coverage/cformat", "\x04l-\x04I\f7\x01\x02\f"}, - {"internal/coverage/cmerge", "p-Z"}, - {"internal/coverage/decodecounter", "f\n-\v\x02@,\x19\x16"}, - {"internal/coverage/decodemeta", "\x02d\n\x17\x16\v\x02@,"}, - {"internal/coverage/encodecounter", "\x02d\n-\f\x01\x02>\f \x17"}, - {"internal/coverage/encodemeta", "\x02\x01c\n\x13\x04\x16\r\x02>,/"}, - {"internal/coverage/pods", "\x04l-y\x06\x05\f\x02\x01"}, - {"internal/coverage/rtcov", "\xc5\x02"}, - {"internal/coverage/slicereader", "f\nz["}, - {"internal/coverage/slicewriter", "pz"}, - {"internal/coverage/stringtab", "p8\x04>"}, + {"internal/coverage/cfile", "k\x06\x16\x17\x01\x02\x01\x01\x01\x01\x01\x01\x01#\x02$,\x06\a\n\x01\x03\r\x06"}, + {"internal/coverage/cformat", "\x04m-\x04O\v6\x01\x02\r"}, + {"internal/coverage/cmerge", "q-_"}, + {"internal/coverage/decodecounter", "g\n-\v\x02F,\x17\x17"}, + {"internal/coverage/decodemeta", "\x02e\n\x16\x17\v\x02F,"}, + {"internal/coverage/encodecounter", "\x02e\n-\f\x01\x02D\v!\x15"}, + {"internal/coverage/encodemeta", "\x02\x01d\n\x12\x04\x17\r\x02D,."}, + {"internal/coverage/pods", "\x04m-\x7f\x06\x05\n\x02\x01"}, + {"internal/coverage/rtcov", "\xcb\x02"}, + {"internal/coverage/slicereader", "g\n\x80\x01Z"}, + {"internal/coverage/slicewriter", "q\x80\x01"}, + {"internal/coverage/stringtab", "q8\x04D"}, {"internal/coverage/test", ""}, {"internal/coverage/uleb128", ""}, - {"internal/cpu", "\xc5\x02"}, - {"internal/dag", "\x04l\xbd\x01\x03"}, - {"internal/diff", "\x03m\xbe\x01\x02"}, - {"internal/exportdata", "\x02\x01j\x03\x03]\x1a,\x01\x05\x13\x01\x02"}, - {"internal/filepathlite", "m+:\x19B"}, - {"internal/fmtsort", "\x04\x9a\x02\x0f"}, - {"internal/fuzz", "\x03\nA\x18\x04\x03\x03\x01\f\x0355\r\x02\x1d\x01\x05\x02\x05\f\x01\x02\x01\x01\v\x04\x02"}, + {"internal/cpu", "\xcb\x02"}, + {"internal/dag", "\x04m\xc1\x01\x03"}, + {"internal/diff", "\x03n\xc2\x01\x02"}, + {"internal/exportdata", "\x02\x01k\x03\x02c\x1b,\x01\x05\x11\x01\x02"}, + {"internal/filepathlite", "n*@\x1a@"}, + {"internal/fmtsort", "\x04\xa1\x02\r"}, + {"internal/fuzz", "\x03\nB\x18\x04\x03\x03\x01\v\x036;\f\x03\x1d\x01\x05\x02\x05\n\x01\x02\x01\x01\f\x04\x02"}, {"internal/goarch", ""}, - {"internal/godebug", "\x96\x01 |\x01\x12"}, + {"internal/godebug", "\x96\x01!\x80\x01\x01\x13"}, {"internal/godebugs", ""}, {"internal/goexperiment", ""}, {"internal/goos", ""}, - {"internal/goroot", "\x96\x02\x01\x05\x14\x02"}, + {"internal/goroot", "\x9d\x02\x01\x05\x12\x02"}, {"internal/gover", "\x04"}, {"internal/goversion", ""}, {"internal/itoa", ""}, - {"internal/lazyregexp", "\x96\x02\v\x0f\x02"}, - {"internal/lazytemplate", "\xea\x01,\x1a\x02\v"}, - {"internal/msan", "\xc5\x02"}, + {"internal/lazyregexp", "\x9d\x02\v\r\x02"}, + {"internal/lazytemplate", "\xf1\x01,\x18\x02\f"}, + {"internal/msan", "\xcb\x02"}, {"internal/nettrace", ""}, - {"internal/obscuretestdata", "e\x85\x01,"}, - {"internal/oserror", "m"}, - {"internal/pkgbits", "\x03K\x18\a\x03\x05\vj\x0e\x1e\r\f\x01"}, + {"internal/obscuretestdata", "f\x8b\x01,"}, + {"internal/oserror", "n"}, + {"internal/pkgbits", "\x03L\x18\a\x03\x04\vq\r\x1f\r\n\x01"}, {"internal/platform", ""}, - {"internal/poll", "mO\x1a\x149\x0f\x01\x01\v\x06"}, - {"internal/profile", "\x03\x04f\x03z7\r\x01\x01\x0f"}, + {"internal/poll", "nO\x1f\x159\r\x01\x01\f\x06"}, + {"internal/profile", "\x03\x04g\x03\x80\x017\v\x01\x01\x10"}, {"internal/profilerecord", ""}, - {"internal/race", "\x94\x01\xb1\x01"}, - {"internal/reflectlite", "\x94\x01 3<\""}, - {"internal/runtime/atomic", "\xc5\x02"}, - {"internal/runtime/exithook", "\xca\x01{"}, - {"internal/runtime/maps", "\x94\x01\x01\x1f\v\t\x05\x01w"}, - {"internal/runtime/math", "\xb4\x01"}, - {"internal/runtime/sys", "\xb4\x01\x04"}, - {"internal/runtime/syscall", "\xc5\x02"}, - {"internal/saferio", "\xea\x01["}, - {"internal/singleflight", "\xb2\x02"}, - {"internal/stringslite", "\x98\x01\xad\x01"}, - {"internal/sync", "\x94\x01 \x14k\x12"}, - {"internal/synctest", "\xc5\x02"}, - {"internal/syscall/execenv", "\xb4\x02"}, - {"internal/syscall/unix", "\xa3\x02\x10\x01\x11"}, - {"internal/sysinfo", "\x02\x01\xaa\x01=,\x1a\x02"}, + {"internal/race", "\x94\x01\xb7\x01"}, + {"internal/reflectlite", "\x94\x01!9\b\x13\x01\a\x03E;\x01\x03\a\x01\x03\x02\x02\x01\x02\x06\x02\x01\x01\n\x01\x01\x05\x01\x02\x05\b\x01\x01\x01\x02\x01\r\x02\x02\x02\b\x01\x01\x01"}, + {"net/http/cgi", "\x02Q\x1b\x03\x80\x01\x04\a\v\x01\x13\x01\x01\x01\x04\x01\x05\x02\b\x02\x01\x10\x0e"}, + {"net/http/cookiejar", "\x04j\x03\x96\x01\x01\b\f\x16\x03\x02\x0e\x04"}, + {"net/http/fcgi", "\x02\x01\nZ\a\x03\x80\x01\x16\x01\x01\x14\x18\x02\x0e"}, + {"net/http/httptest", "\x02\x01\nF\x02\x1b\x01\x80\x01\x04\x12\x01\n\t\x02\x17\x01\x02\x0e\x0e"}, + {"net/http/httptrace", "\rFnF\x14\n "}, + {"net/http/httputil", "\x02\x01\na\x03\x80\x01\x04\x0f\x03\x01\x05\x02\x01\v\x01\x19\x02\x0e\x0e"}, + {"net/http/internal", "\x02\x01k\x03\x80\x01"}, + {"net/http/internal/ascii", "\xb5\x02\x12"}, + {"net/http/internal/httpcommon", "\ra\x03\x9c\x01\x0e\x01\x17\x01\x01\x02\x1c\x02"}, + {"net/http/internal/testcert", "\xb5\x02"}, + {"net/http/pprof", "\x02\x01\nd\x18-\x11*\x04\x13\x14\x01\r\x04\x03\x01\x02\x01\x10"}, {"net/internal/cgotest", ""}, - {"net/internal/socktest", "p\xc2\x01\x02"}, - {"net/mail", "\x02k\x03z\x04\x0f\x03\x14\x1c\x02\r\x04"}, - {"net/netip", "\x04i+\x01#;\x026\x15"}, - {"net/rpc", "\x02f\x05\x03\x10\n`\x04\x12\x01\x1d\x0f\x03\x02"}, - {"net/rpc/jsonrpc", "j\x03\x03z\x16\x11!"}, - {"net/smtp", "\x19.\v\x13\b\x03z\x16\x14\x1c"}, - {"net/textproto", "\x02\x01j\x03z\r\t/\x01\x02\x13"}, - {"net/url", "m\x03\x86\x01%\x12\x02\x01\x15"}, - {"os", "m+\x01\x18\x03\b\t\r\x03\x01\x04\x10\x018\n\x05\x01\x01\v\x06"}, - {"os/exec", "\x03\n`H \x01\x14\x01+\x06\a\f\x01\x04\v"}, - {"os/exec/internal/fdtest", "\xb4\x02"}, - {"os/signal", "\r\x89\x02\x17\x05\x02"}, - {"os/user", "\x02\x01j\x03z,\r\f\x01\x02"}, - {"path", "m+\xab\x01"}, - {"path/filepath", "m+\x19:+\r\n\x03\x04\x0f"}, - {"plugin", "m"}, - {"reflect", "m'\x04\x1c\b\f\x04\x02\x19\x10,\f\x03\x0f\x02\x02"}, + {"net/internal/socktest", "q\xc6\x01\x02"}, + {"net/mail", "\x02l\x03\x80\x01\x04\x0f\x03\x14\x1a\x02\x0e\x04"}, + {"net/netip", "\x04j*\x01$@\x034\x16"}, + {"net/rpc", "\x02g\x05\x03\x0f\ng\x04\x12\x01\x1d\r\x03\x02"}, + {"net/rpc/jsonrpc", "k\x03\x03\x80\x01\x16\x11\x1f"}, + {"net/smtp", "\x19/\v\x13\b\x03\x80\x01\x16\x14\x1a"}, + {"net/textproto", "\x02\x01k\x03\x80\x01\f\n-\x01\x02\x14"}, + {"net/url", "n\x03\x8b\x01&\x10\x02\x01\x16"}, + {"os", "n*\x01\x19\x03\b\t\x12\x03\x01\x05\x10\x018\b\x05\x01\x01\f\x06"}, + {"os/exec", "\x03\naH%\x01\x15\x01+\x06\a\n\x01\x04\f"}, + {"os/exec/internal/fdtest", "\xb9\x02"}, + {"os/signal", "\r\x90\x02\x15\x05\x02"}, + {"os/user", "\x02\x01k\x03\x80\x01,\r\n\x01\x02"}, + {"path", "n*\xb1\x01"}, + {"path/filepath", "n*\x1a@+\r\b\x03\x04\x10"}, + {"plugin", "n"}, + {"reflect", "n&\x04\x1d\b\f\x06\x04\x1b\x06\t-\n\x03\x10\x02\x02"}, {"reflect/internal/example1", ""}, {"reflect/internal/example2", ""}, - {"regexp", "\x03\xe7\x018\v\x02\x01\x02\x0f\x02"}, - {"regexp/syntax", "\xad\x02\x01\x01\x01\x11\x02"}, - {"runtime", "\x94\x01\x04\x01\x02\f\x06\a\x02\x01\x01\x0f\x03\x01\x01\x01\x01\x01\x03\x0fd"}, - {"runtime/coverage", "\x9f\x01K"}, - {"runtime/debug", "pUQ\r\n\x02\x01\x0f\x06"}, - {"runtime/internal/startlinetest", ""}, - {"runtime/internal/wasitest", ""}, - {"runtime/metrics", "\xb6\x01A,\""}, - {"runtime/pprof", "\x02\x01\x01\x03\x06Y\a\x03$3#\r\x1f\r\n\x01\x01\x01\x02\x02\b\x03\x06"}, - {"runtime/race", "\xab\x02"}, + {"regexp", "\x03\xee\x018\t\x02\x01\x02\x10\x02"}, + {"regexp/syntax", "\xb2\x02\x01\x01\x01\x02\x10\x02"}, + {"runtime", "\x94\x01\x04\x01\x03\f\x06\a\x02\x01\x01\x0f\x03\x01\x01\x01\x01\x01\x02\x01\x01\x04\x10c"}, + {"runtime/coverage", "\xa0\x01Q"}, + {"runtime/debug", "qUW\r\b\x02\x01\x10\x06"}, + {"runtime/metrics", "\xb7\x01F-!"}, + {"runtime/pprof", "\x02\x01\x01\x03\x06Z\a\x03#4)\f \r\b\x01\x01\x01\x02\x02\t\x03\x06"}, + {"runtime/race", "\xb0\x02"}, {"runtime/race/internal/amd64v1", ""}, - {"runtime/trace", "\rcz9\x0f\x01\x12"}, - {"slices", "\x04\xe9\x01\fL"}, - {"sort", "\xc9\x0104"}, - {"strconv", "m+:%\x02J"}, - {"strings", "m'\x04:\x18\x03\f9\x0f\x02\x02"}, + {"runtime/trace", "\ra\x03w\t9\b\x05\x01\r\x06"}, + {"slices", "\x04\xf0\x01\fK"}, + {"sort", "\xca\x0162"}, + {"strconv", "n*@%\x03I"}, + {"strings", "n&\x04@\x19\x03\f7\x10\x02\x02"}, {"structs", ""}, - {"sync", "\xc8\x01\vP\x10\x12"}, - {"sync/atomic", "\xc5\x02"}, - {"syscall", "m(\x03\x01\x1b\b\x03\x03\x06\aT\n\x05\x01\x12"}, - {"testing", "\x03\n`\x02\x01X\x0f\x13\r\x04\x1b\x06\x02\x05\x02\a\x01\x02\x01\x02\x01\f\x02\x02\x02"}, - {"testing/fstest", "m\x03z\x01\v%\x12\x03\b\a"}, - {"testing/internal/testdeps", "\x02\v\xa6\x01'\x10,\x03\x05\x03\b\a\x02\r"}, - {"testing/iotest", "\x03j\x03z\x04"}, - {"testing/quick", "o\x01\x87\x01\x04#\x12\x0f"}, - {"testing/slogtest", "\r`\x03\x80\x01.\x05\x12\n"}, - {"text/scanner", "\x03mz,+\x02"}, - {"text/tabwriter", "pzY"}, - {"text/template", "m\x03B8\x01\v\x1f\x01\x05\x01\x02\x05\r\x02\f\x03\x02"}, - {"text/template/parse", "\x03m\xb3\x01\f\x01\x11\x02"}, - {"time", "m+\x1d\x1d'*\x0f\x02\x11"}, - {"time/tzdata", "m\xc7\x01\x11"}, + {"sync", "\xc9\x01\x10\x01P\x0e\x13"}, + {"sync/atomic", "\xcb\x02"}, + {"syscall", "n'\x03\x01\x1c\b\x03\x03\x06\vV\b\x05\x01\x13"}, + {"testing", "\x03\na\x02\x01X\x14\x14\f\x05\x1b\x06\x02\x05\x02\x05\x01\x02\x01\x02\x01\r\x02\x02\x02"}, + {"testing/fstest", "n\x03\x80\x01\x01\n&\x10\x03\b\b"}, + {"testing/internal/testdeps", "\x02\v\xa7\x01-\x10,\x03\x05\x03\x06\a\x02\x0e"}, + {"testing/iotest", "\x03k\x03\x80\x01\x04"}, + {"testing/quick", "p\x01\x8c\x01\x05#\x10\x10"}, + {"testing/slogtest", "\ra\x03\x86\x01.\x05\x10\v"}, + {"testing/synctest", "\xda\x01`\x11"}, + {"text/scanner", "\x03n\x80\x01,*\x02"}, + {"text/tabwriter", "q\x80\x01X"}, + {"text/template", "n\x03B>\x01\n \x01\x05\x01\x02\x05\v\x02\r\x03\x02"}, + {"text/template/parse", "\x03n\xb9\x01\n\x01\x12\x02"}, + {"time", "n*\x1e\"(*\r\x02\x12"}, + {"time/tzdata", "n\xcb\x01\x12"}, {"unicode", ""}, {"unicode/utf16", ""}, {"unicode/utf8", ""}, - {"unique", "\x94\x01>\x01P\x0f\x13\x12"}, + {"unique", "\x94\x01!#\x01Q\r\x01\x13\x12"}, {"unsafe", ""}, - {"vendor/golang.org/x/crypto/chacha20", "\x10V\a\x8c\x01*'"}, - {"vendor/golang.org/x/crypto/chacha20poly1305", "\x10V\a\xd9\x01\x04\x01\a"}, - {"vendor/golang.org/x/crypto/cryptobyte", "c\n\x03\x88\x01&!\n"}, + {"vendor/golang.org/x/crypto/chacha20", "\x10W\a\x92\x01*&"}, + {"vendor/golang.org/x/crypto/chacha20poly1305", "\x10W\a\xde\x01\x04\x01\a"}, + {"vendor/golang.org/x/crypto/cryptobyte", "d\n\x03\x8d\x01' \n"}, {"vendor/golang.org/x/crypto/cryptobyte/asn1", ""}, - {"vendor/golang.org/x/crypto/internal/alias", "\xc5\x02"}, - {"vendor/golang.org/x/crypto/internal/poly1305", "Q\x15\x93\x01"}, - {"vendor/golang.org/x/net/dns/dnsmessage", "m"}, - {"vendor/golang.org/x/net/http/httpguts", "\x80\x02\x14\x1c\x13\r"}, - {"vendor/golang.org/x/net/http/httpproxy", "m\x03\x90\x01\x15\x01\x1a\x13\r"}, - {"vendor/golang.org/x/net/http2/hpack", "\x03j\x03zH"}, - {"vendor/golang.org/x/net/idna", "p\x87\x019\x13\x10\x02\x01"}, - {"vendor/golang.org/x/net/nettest", "\x03c\a\x03z\x11\x05\x16\x01\f\f\x01\x02\x02\x01\n"}, - {"vendor/golang.org/x/sys/cpu", "\x96\x02\r\f\x01\x15"}, - {"vendor/golang.org/x/text/secure/bidirule", "m\xd6\x01\x11\x01"}, - {"vendor/golang.org/x/text/transform", "\x03j}Y"}, - {"vendor/golang.org/x/text/unicode/bidi", "\x03\be~@\x15"}, - {"vendor/golang.org/x/text/unicode/norm", "f\nzH\x11\x11"}, - {"weak", "\x94\x01\x8f\x01\""}, + {"vendor/golang.org/x/crypto/internal/alias", "\xcb\x02"}, + {"vendor/golang.org/x/crypto/internal/poly1305", "R\x15\x99\x01"}, + {"vendor/golang.org/x/net/dns/dnsmessage", "n"}, + {"vendor/golang.org/x/net/http/httpguts", "\x87\x02\x14\x1a\x14\r"}, + {"vendor/golang.org/x/net/http/httpproxy", "n\x03\x96\x01\x10\x05\x01\x18\x14\r"}, + {"vendor/golang.org/x/net/http2/hpack", "\x03k\x03\x80\x01F"}, + {"vendor/golang.org/x/net/idna", "q\x8c\x018\x14\x10\x02\x01"}, + {"vendor/golang.org/x/net/nettest", "\x03d\a\x03\x80\x01\x11\x05\x16\x01\f\n\x01\x02\x02\x01\v"}, + {"vendor/golang.org/x/sys/cpu", "\x9d\x02\r\n\x01\x16"}, + {"vendor/golang.org/x/text/secure/bidirule", "n\xdb\x01\x11\x01"}, + {"vendor/golang.org/x/text/transform", "\x03k\x83\x01X"}, + {"vendor/golang.org/x/text/unicode/bidi", "\x03\bf\x84\x01>\x16"}, + {"vendor/golang.org/x/text/unicode/norm", "g\n\x80\x01F\x12\x11"}, + {"weak", "\x94\x01\x96\x01!"}, } diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go index 64f0326b6..c1faa50d3 100644 --- a/vendor/golang.org/x/tools/internal/stdlib/manifest.go +++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go @@ -502,6 +502,7 @@ var PackageSymbols = map[string][]Symbol{ {"MD4", Const, 0, ""}, {"MD5", Const, 0, ""}, {"MD5SHA1", Const, 0, ""}, + {"MessageSigner", Type, 25, ""}, {"PrivateKey", Type, 0, ""}, {"PublicKey", Type, 2, ""}, {"RIPEMD160", Const, 0, ""}, @@ -517,6 +518,7 @@ var PackageSymbols = map[string][]Symbol{ {"SHA512", Const, 0, ""}, {"SHA512_224", Const, 5, ""}, {"SHA512_256", Const, 5, ""}, + {"SignMessage", Func, 25, "func(signer Signer, rand io.Reader, msg []byte, opts SignerOpts) (signature []byte, err error)"}, {"Signer", Type, 4, ""}, {"SignerOpts", Type, 4, ""}, }, @@ -600,10 +602,12 @@ var PackageSymbols = map[string][]Symbol{ {"X25519", Func, 20, "func() Curve"}, }, "crypto/ecdsa": { + {"(*PrivateKey).Bytes", Method, 25, ""}, {"(*PrivateKey).ECDH", Method, 20, ""}, {"(*PrivateKey).Equal", Method, 15, ""}, {"(*PrivateKey).Public", Method, 4, ""}, {"(*PrivateKey).Sign", Method, 4, ""}, + {"(*PublicKey).Bytes", Method, 25, ""}, {"(*PublicKey).ECDH", Method, 20, ""}, {"(*PublicKey).Equal", Method, 15, ""}, {"(PrivateKey).Add", Method, 0, ""}, @@ -619,6 +623,8 @@ var PackageSymbols = map[string][]Symbol{ {"(PublicKey).ScalarBaseMult", Method, 0, ""}, {"(PublicKey).ScalarMult", Method, 0, ""}, {"GenerateKey", Func, 0, "func(c elliptic.Curve, rand io.Reader) (*PrivateKey, error)"}, + {"ParseRawPrivateKey", Func, 25, "func(curve elliptic.Curve, data []byte) (*PrivateKey, error)"}, + {"ParseUncompressedPublicKey", Func, 25, "func(curve elliptic.Curve, data []byte) (*PublicKey, error)"}, {"PrivateKey", Type, 0, ""}, {"PrivateKey.D", Field, 0, ""}, {"PrivateKey.PublicKey", Field, 0, ""}, @@ -815,6 +821,7 @@ var PackageSymbols = map[string][]Symbol{ "crypto/sha3": { {"(*SHA3).AppendBinary", Method, 24, ""}, {"(*SHA3).BlockSize", Method, 24, ""}, + {"(*SHA3).Clone", Method, 25, ""}, {"(*SHA3).MarshalBinary", Method, 24, ""}, {"(*SHA3).Reset", Method, 24, ""}, {"(*SHA3).Size", Method, 24, ""}, @@ -967,6 +974,7 @@ var PackageSymbols = map[string][]Symbol{ {"Config.GetCertificate", Field, 4, ""}, {"Config.GetClientCertificate", Field, 8, ""}, {"Config.GetConfigForClient", Field, 8, ""}, + {"Config.GetEncryptedClientHelloKeys", Field, 25, ""}, {"Config.InsecureSkipVerify", Field, 0, ""}, {"Config.KeyLogWriter", Field, 8, ""}, {"Config.MaxVersion", Field, 2, ""}, @@ -5463,6 +5471,7 @@ var PackageSymbols = map[string][]Symbol{ {"ParenExpr.X", Field, 0, ""}, {"Pkg", Const, 0, ""}, {"Preorder", Func, 23, "func(root Node) iter.Seq[Node]"}, + {"PreorderStack", Func, 25, "func(root Node, stack []Node, f func(n Node, stack []Node) bool)"}, {"Print", Func, 0, "func(fset *token.FileSet, x any) error"}, {"RECV", Const, 0, ""}, {"RangeStmt", Type, 0, ""}, @@ -5933,6 +5942,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*File).SetLines", Method, 0, ""}, {"(*File).SetLinesForContent", Method, 0, ""}, {"(*File).Size", Method, 0, ""}, + {"(*FileSet).AddExistingFiles", Method, 25, ""}, {"(*FileSet).AddFile", Method, 0, ""}, {"(*FileSet).Base", Method, 0, ""}, {"(*FileSet).File", Method, 0, ""}, @@ -6382,7 +6392,7 @@ var PackageSymbols = map[string][]Symbol{ {"Label", Type, 5, ""}, {"LocalVar", Const, 25, ""}, {"LookupFieldOrMethod", Func, 5, "func(T Type, addressable bool, pkg *Package, name string) (obj Object, index []int, indirect bool)"}, - {"LookupSelection", Func, 25, ""}, + {"LookupSelection", Func, 25, "func(T Type, addressable bool, pkg *Package, name string) (Selection, bool)"}, {"Map", Type, 5, ""}, {"MethodExpr", Const, 5, ""}, {"MethodSet", Type, 5, ""}, @@ -6490,9 +6500,11 @@ var PackageSymbols = map[string][]Symbol{ {"Lang", Func, 22, "func(x string) string"}, }, "hash": { + {"Cloner", Type, 25, ""}, {"Hash", Type, 0, ""}, {"Hash32", Type, 0, ""}, {"Hash64", Type, 0, ""}, + {"XOF", Type, 25, ""}, }, "hash/adler32": { {"Checksum", Func, 0, "func(data []byte) uint32"}, @@ -6533,6 +6545,7 @@ var PackageSymbols = map[string][]Symbol{ }, "hash/maphash": { {"(*Hash).BlockSize", Method, 14, ""}, + {"(*Hash).Clone", Method, 25, ""}, {"(*Hash).Reset", Method, 14, ""}, {"(*Hash).Seed", Method, 14, ""}, {"(*Hash).SetSeed", Method, 14, ""}, @@ -7133,7 +7146,7 @@ var PackageSymbols = map[string][]Symbol{ {"FormatFileInfo", Func, 21, "func(info FileInfo) string"}, {"Glob", Func, 16, "func(fsys FS, pattern string) (matches []string, err error)"}, {"GlobFS", Type, 16, ""}, - {"Lstat", Func, 25, ""}, + {"Lstat", Func, 25, "func(fsys FS, name string) (FileInfo, error)"}, {"ModeAppend", Const, 16, ""}, {"ModeCharDevice", Const, 16, ""}, {"ModeDevice", Const, 16, ""}, @@ -7158,7 +7171,7 @@ var PackageSymbols = map[string][]Symbol{ {"ReadDirFile", Type, 16, ""}, {"ReadFile", Func, 16, "func(fsys FS, name string) ([]byte, error)"}, {"ReadFileFS", Type, 16, ""}, - {"ReadLink", Func, 25, ""}, + {"ReadLink", Func, 25, "func(fsys FS, name string) (string, error)"}, {"ReadLinkFS", Type, 25, ""}, {"SkipAll", Var, 20, ""}, {"SkipDir", Var, 16, ""}, @@ -7275,6 +7288,7 @@ var PackageSymbols = map[string][]Symbol{ {"(Record).Attrs", Method, 21, ""}, {"(Record).Clone", Method, 21, ""}, {"(Record).NumAttrs", Method, 21, ""}, + {"(Record).Source", Method, 25, ""}, {"(Value).Any", Method, 21, ""}, {"(Value).Bool", Method, 21, ""}, {"(Value).Duration", Method, 21, ""}, @@ -7306,6 +7320,7 @@ var PackageSymbols = map[string][]Symbol{ {"Float64", Func, 21, "func(key string, v float64) Attr"}, {"Float64Value", Func, 21, "func(v float64) Value"}, {"Group", Func, 21, "func(key string, args ...any) Attr"}, + {"GroupAttrs", Func, 25, "func(key string, attrs ...Attr) Attr"}, {"GroupValue", Func, 21, "func(as ...Attr) Value"}, {"Handler", Type, 21, ""}, {"HandlerOptions", Type, 21, ""}, @@ -7916,7 +7931,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*Writer).WriteField", Method, 0, ""}, {"ErrMessageTooLarge", Var, 9, ""}, {"File", Type, 0, ""}, - {"FileContentDisposition", Func, 25, ""}, + {"FileContentDisposition", Func, 25, "func(fieldname string, filename string) string"}, {"FileHeader", Type, 0, ""}, {"FileHeader.Filename", Field, 0, ""}, {"FileHeader.Header", Field, 0, ""}, @@ -8294,6 +8309,11 @@ var PackageSymbols = map[string][]Symbol{ {"(*Client).PostForm", Method, 0, ""}, {"(*Cookie).String", Method, 0, ""}, {"(*Cookie).Valid", Method, 18, ""}, + {"(*CrossOriginProtection).AddInsecureBypassPattern", Method, 25, ""}, + {"(*CrossOriginProtection).AddTrustedOrigin", Method, 25, ""}, + {"(*CrossOriginProtection).Check", Method, 25, ""}, + {"(*CrossOriginProtection).Handler", Method, 25, ""}, + {"(*CrossOriginProtection).SetDenyHandler", Method, 25, ""}, {"(*MaxBytesError).Error", Method, 19, ""}, {"(*ProtocolError).Error", Method, 0, ""}, {"(*ProtocolError).Is", Method, 21, ""}, @@ -8388,6 +8408,7 @@ var PackageSymbols = map[string][]Symbol{ {"Cookie.Unparsed", Field, 0, ""}, {"Cookie.Value", Field, 0, ""}, {"CookieJar", Type, 0, ""}, + {"CrossOriginProtection", Type, 25, ""}, {"DefaultClient", Var, 0, ""}, {"DefaultMaxHeaderBytes", Const, 0, ""}, {"DefaultMaxIdleConnsPerHost", Const, 0, ""}, @@ -8460,6 +8481,7 @@ var PackageSymbols = map[string][]Symbol{ {"MethodPost", Const, 6, ""}, {"MethodPut", Const, 6, ""}, {"MethodTrace", Const, 6, ""}, + {"NewCrossOriginProtection", Func, 25, "func() *CrossOriginProtection"}, {"NewFileTransport", Func, 0, "func(fs FileSystem) RoundTripper"}, {"NewFileTransportFS", Func, 22, "func(fsys fs.FS) RoundTripper"}, {"NewRequest", Func, 0, "func(method string, url string, body io.Reader) (*Request, error)"}, @@ -9174,15 +9196,19 @@ var PackageSymbols = map[string][]Symbol{ {"(*Root).Link", Method, 25, ""}, {"(*Root).Lstat", Method, 24, ""}, {"(*Root).Mkdir", Method, 24, ""}, + {"(*Root).MkdirAll", Method, 25, ""}, {"(*Root).Name", Method, 24, ""}, {"(*Root).Open", Method, 24, ""}, {"(*Root).OpenFile", Method, 24, ""}, {"(*Root).OpenRoot", Method, 24, ""}, + {"(*Root).ReadFile", Method, 25, ""}, {"(*Root).Readlink", Method, 25, ""}, {"(*Root).Remove", Method, 24, ""}, + {"(*Root).RemoveAll", Method, 25, ""}, {"(*Root).Rename", Method, 25, ""}, {"(*Root).Stat", Method, 24, ""}, {"(*Root).Symlink", Method, 25, ""}, + {"(*Root).WriteFile", Method, 25, ""}, {"(*SyscallError).Error", Method, 0, ""}, {"(*SyscallError).Timeout", Method, 10, ""}, {"(*SyscallError).Unwrap", Method, 13, ""}, @@ -9623,6 +9649,7 @@ var PackageSymbols = map[string][]Symbol{ {"StructTag", Type, 0, ""}, {"Swapper", Func, 8, "func(slice any) func(i int, j int)"}, {"Type", Type, 0, ""}, + {"TypeAssert", Func, 25, "func[T any](v Value) (T, bool)"}, {"TypeFor", Func, 22, "func[T any]() Type"}, {"TypeOf", Func, 0, "func(i any) Type"}, {"Uint", Const, 0, ""}, @@ -9909,6 +9936,7 @@ var PackageSymbols = map[string][]Symbol{ {"SetBlockProfileRate", Func, 1, "func(rate int)"}, {"SetCPUProfileRate", Func, 0, "func(hz int)"}, {"SetCgoTraceback", Func, 7, "func(version int, traceback unsafe.Pointer, context unsafe.Pointer, symbolizer unsafe.Pointer)"}, + {"SetDefaultGOMAXPROCS", Func, 25, "func()"}, {"SetFinalizer", Func, 0, "func(obj any, finalizer any)"}, {"SetMutexProfileFraction", Func, 8, "func(rate int) int"}, {"Stack", Func, 0, "func(buf []byte, all bool) int"}, @@ -10021,11 +10049,20 @@ var PackageSymbols = map[string][]Symbol{ {"WriteHeapProfile", Func, 0, "func(w io.Writer) error"}, }, "runtime/trace": { + {"(*FlightRecorder).Enabled", Method, 25, ""}, + {"(*FlightRecorder).Start", Method, 25, ""}, + {"(*FlightRecorder).Stop", Method, 25, ""}, + {"(*FlightRecorder).WriteTo", Method, 25, ""}, {"(*Region).End", Method, 11, ""}, {"(*Task).End", Method, 11, ""}, + {"FlightRecorder", Type, 25, ""}, + {"FlightRecorderConfig", Type, 25, ""}, + {"FlightRecorderConfig.MaxBytes", Field, 25, ""}, + {"FlightRecorderConfig.MinAge", Field, 25, ""}, {"IsEnabled", Func, 11, "func() bool"}, {"Log", Func, 11, "func(ctx context.Context, category string, message string)"}, {"Logf", Func, 11, "func(ctx context.Context, category string, format string, args ...any)"}, + {"NewFlightRecorder", Func, 25, "func(cfg FlightRecorderConfig) *FlightRecorder"}, {"NewTask", Func, 11, "func(pctx context.Context, taskType string) (ctx context.Context, task *Task)"}, {"Region", Type, 11, ""}, {"Start", Func, 5, "func(w io.Writer) error"}, @@ -16642,6 +16679,7 @@ var PackageSymbols = map[string][]Symbol{ {"ValueOf", Func, 0, ""}, }, "testing": { + {"(*B).Attr", Method, 25, ""}, {"(*B).Chdir", Method, 24, ""}, {"(*B).Cleanup", Method, 14, ""}, {"(*B).Context", Method, 24, ""}, @@ -16658,6 +16696,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*B).Logf", Method, 0, ""}, {"(*B).Loop", Method, 24, ""}, {"(*B).Name", Method, 8, ""}, + {"(*B).Output", Method, 25, ""}, {"(*B).ReportAllocs", Method, 1, ""}, {"(*B).ReportMetric", Method, 13, ""}, {"(*B).ResetTimer", Method, 0, ""}, @@ -16674,6 +16713,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*B).StopTimer", Method, 0, ""}, {"(*B).TempDir", Method, 15, ""}, {"(*F).Add", Method, 18, ""}, + {"(*F).Attr", Method, 25, ""}, {"(*F).Chdir", Method, 24, ""}, {"(*F).Cleanup", Method, 18, ""}, {"(*F).Context", Method, 24, ""}, @@ -16689,6 +16729,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*F).Log", Method, 18, ""}, {"(*F).Logf", Method, 18, ""}, {"(*F).Name", Method, 18, ""}, + {"(*F).Output", Method, 25, ""}, {"(*F).Setenv", Method, 18, ""}, {"(*F).Skip", Method, 18, ""}, {"(*F).SkipNow", Method, 18, ""}, @@ -16697,6 +16738,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*F).TempDir", Method, 18, ""}, {"(*M).Run", Method, 4, ""}, {"(*PB).Next", Method, 3, ""}, + {"(*T).Attr", Method, 25, ""}, {"(*T).Chdir", Method, 24, ""}, {"(*T).Cleanup", Method, 14, ""}, {"(*T).Context", Method, 24, ""}, @@ -16712,6 +16754,7 @@ var PackageSymbols = map[string][]Symbol{ {"(*T).Log", Method, 0, ""}, {"(*T).Logf", Method, 0, ""}, {"(*T).Name", Method, 8, ""}, + {"(*T).Output", Method, 25, ""}, {"(*T).Parallel", Method, 0, ""}, {"(*T).Run", Method, 7, ""}, {"(*T).Setenv", Method, 17, ""}, @@ -16834,6 +16877,10 @@ var PackageSymbols = map[string][]Symbol{ {"Run", Func, 22, "func(t *testing.T, newHandler func(*testing.T) slog.Handler, result func(*testing.T) map[string]any)"}, {"TestHandler", Func, 21, "func(h slog.Handler, results func() []map[string]any) error"}, }, + "testing/synctest": { + {"Test", Func, 25, "func(t *testing.T, f func(*testing.T))"}, + {"Wait", Func, 25, "func()"}, + }, "text/scanner": { {"(*Position).IsValid", Method, 0, ""}, {"(*Scanner).Init", Method, 0, ""}, @@ -17347,6 +17394,7 @@ var PackageSymbols = map[string][]Symbol{ {"CaseRange.Lo", Field, 0, ""}, {"CaseRanges", Var, 0, ""}, {"Categories", Var, 0, ""}, + {"CategoryAliases", Var, 25, ""}, {"Caucasian_Albanian", Var, 4, ""}, {"Cc", Var, 0, ""}, {"Cf", Var, 0, ""}, @@ -17354,6 +17402,7 @@ var PackageSymbols = map[string][]Symbol{ {"Cham", Var, 0, ""}, {"Cherokee", Var, 0, ""}, {"Chorasmian", Var, 16, ""}, + {"Cn", Var, 25, ""}, {"Co", Var, 0, ""}, {"Common", Var, 0, ""}, {"Coptic", Var, 0, ""}, @@ -17432,6 +17481,7 @@ var PackageSymbols = map[string][]Symbol{ {"Khojki", Var, 4, ""}, {"Khudawadi", Var, 4, ""}, {"L", Var, 0, ""}, + {"LC", Var, 25, ""}, {"Lao", Var, 0, ""}, {"Latin", Var, 0, ""}, {"Lepcha", Var, 0, ""}, diff --git a/vendor/golang.org/x/tools/internal/typesinternal/fx.go b/vendor/golang.org/x/tools/internal/typesinternal/fx.go new file mode 100644 index 000000000..93acff217 --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/fx.go @@ -0,0 +1,49 @@ +// Copyright 2025 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 typesinternal + +import ( + "go/ast" + "go/token" + "go/types" +) + +// NoEffects reports whether the expression has no side effects, i.e., it +// does not modify the memory state. This function is conservative: it may +// return false even when the expression has no effect. +func NoEffects(info *types.Info, expr ast.Expr) bool { + noEffects := true + ast.Inspect(expr, func(n ast.Node) bool { + switch v := n.(type) { + case nil, *ast.Ident, *ast.BasicLit, *ast.BinaryExpr, *ast.ParenExpr, + *ast.SelectorExpr, *ast.IndexExpr, *ast.SliceExpr, *ast.TypeAssertExpr, + *ast.StarExpr, *ast.CompositeLit, *ast.ArrayType, *ast.StructType, + *ast.MapType, *ast.InterfaceType, *ast.KeyValueExpr: + // No effect + case *ast.UnaryExpr: + // Channel send <-ch has effects + if v.Op == token.ARROW { + noEffects = false + } + case *ast.CallExpr: + // Type conversion has no effects + if !info.Types[v.Fun].IsType() { + // TODO(adonovan): Add a case for built-in functions without side + // effects (by using callsPureBuiltin from tools/internal/refactor/inline) + + noEffects = false + } + case *ast.FuncLit: + // A FuncLit has no effects, but do not descend into it. + return false + default: + // All other expressions have effects + noEffects = false + } + + return noEffects + }) + return noEffects +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go b/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go new file mode 100644 index 000000000..f2affec4f --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go @@ -0,0 +1,71 @@ +// Copyright 2025 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 typesinternal + +import ( + "go/types" + "slices" +) + +// IsTypeNamed reports whether t is (or is an alias for) a +// package-level defined type with the given package path and one of +// the given names. It returns false if t is nil. +// +// This function avoids allocating the concatenation of "pkg.Name", +// which is important for the performance of syntax matching. +func IsTypeNamed(t types.Type, pkgPath string, names ...string) bool { + if named, ok := types.Unalias(t).(*types.Named); ok { + tname := named.Obj() + return tname != nil && + IsPackageLevel(tname) && + tname.Pkg().Path() == pkgPath && + slices.Contains(names, tname.Name()) + } + return false +} + +// IsPointerToNamed reports whether t is (or is an alias for) a pointer to a +// package-level defined type with the given package path and one of the given +// names. It returns false if t is not a pointer type. +func IsPointerToNamed(t types.Type, pkgPath string, names ...string) bool { + r := Unpointer(t) + if r == t { + return false + } + return IsTypeNamed(r, pkgPath, names...) +} + +// IsFunctionNamed reports whether obj is a package-level function +// defined in the given package and has one of the given names. +// It returns false if obj is nil. +// +// This function avoids allocating the concatenation of "pkg.Name", +// which is important for the performance of syntax matching. +func IsFunctionNamed(obj types.Object, pkgPath string, names ...string) bool { + f, ok := obj.(*types.Func) + return ok && + IsPackageLevel(obj) && + f.Pkg().Path() == pkgPath && + f.Type().(*types.Signature).Recv() == nil && + slices.Contains(names, f.Name()) +} + +// IsMethodNamed reports whether obj is a method defined on a +// package-level type with the given package and type name, and has +// one of the given names. It returns false if obj is nil. +// +// This function avoids allocating the concatenation of "pkg.TypeName.Name", +// which is important for the performance of syntax matching. +func IsMethodNamed(obj types.Object, pkgPath string, typeName string, names ...string) bool { + if fn, ok := obj.(*types.Func); ok { + if recv := fn.Type().(*types.Signature).Recv(); recv != nil { + _, T := ReceiverNamed(recv) + return T != nil && + IsTypeNamed(T, pkgPath, typeName) && + slices.Contains(names, fn.Name()) + } + } + return false +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go index b64f714eb..64f47919f 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go @@ -15,6 +15,14 @@ import ( // file. // If the same package is imported multiple times, the last appearance is // recorded. +// +// TODO(adonovan): this function ignores the effect of shadowing. It +// should accept a [token.Pos] and a [types.Info] and compute only the +// set of imports that are not shadowed at that point, analogous to +// [analysisinternal.AddImport]. It could also compute (as a side +// effect) the set of additional imports required to ensure that there +// is an accessible import for each necessary package, making it +// converge even more closely with AddImport. func FileQualifier(f *ast.File, pkg *types.Package) types.Qualifier { // Construct mapping of import paths to their defined names. // It is only necessary to look at renaming imports. diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go index a5cd7e8db..fef74a785 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/types.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go @@ -2,8 +2,20 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Package typesinternal provides access to internal go/types APIs that are not -// yet exported. +// Package typesinternal provides helpful operators for dealing with +// go/types: +// +// - operators for querying typed syntax trees (e.g. [Imports], [IsFunctionNamed]); +// - functions for converting types to strings or syntax (e.g. [TypeExpr], FileQualifier]); +// - helpers for working with the [go/types] API (e.g. [NewTypesInfo]); +// - access to internal go/types APIs that are not yet +// exported (e.g. [SetUsesCgo], [ErrorCodeStartEnd], [VarKind]); and +// - common algorithms related to types (e.g. [TooNewStdSymbols]). +// +// See also: +// - [golang.org/x/tools/internal/astutil], for operations on untyped syntax; +// - [golang.org/x/tools/internal/analysisinernal], for helpers for analyzers; +// - [golang.org/x/tools/internal/refactor], for operators to compute text edits. package typesinternal import ( @@ -13,6 +25,7 @@ import ( "reflect" "unsafe" + "golang.org/x/tools/go/ast/inspector" "golang.org/x/tools/internal/aliases" ) @@ -60,6 +73,9 @@ func ErrorCodeStartEnd(err types.Error) (code ErrorCode, start, end token.Pos, o // which is often excessive.) // // If pkg is nil, it is equivalent to [*types.Package.Name]. +// +// TODO(adonovan): all uses of this with TypeString should be +// eliminated when https://go.dev/issues/75604 is resolved. func NameRelativeTo(pkg *types.Package) types.Qualifier { return func(other *types.Package) string { if pkg != nil && pkg == other { @@ -153,3 +169,31 @@ func NewTypesInfo() *types.Info { FileVersions: map[*ast.File]string{}, } } + +// EnclosingScope returns the innermost block logically enclosing the cursor. +func EnclosingScope(info *types.Info, cur inspector.Cursor) *types.Scope { + for cur := range cur.Enclosing() { + n := cur.Node() + // A function's Scope is associated with its FuncType. + switch f := n.(type) { + case *ast.FuncDecl: + n = f.Type + case *ast.FuncLit: + n = f.Type + } + if b := info.Scopes[n]; b != nil { + return b + } + } + panic("no Scope for *ast.File") +} + +// Imports reports whether path is imported by pkg. +func Imports(pkg *types.Package, path string) bool { + for _, imp := range pkg.Imports() { + if imp.Path() == path { + return true + } + } + return false +} diff --git a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go index d272949c1..453bba2ad 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go @@ -204,23 +204,12 @@ func ZeroExpr(t types.Type, qual types.Qualifier) (_ ast.Expr, isValid bool) { } } -// IsZeroExpr uses simple syntactic heuristics to report whether expr -// is a obvious zero value, such as 0, "", nil, or false. -// It cannot do better without type information. -func IsZeroExpr(expr ast.Expr) bool { - switch e := expr.(type) { - case *ast.BasicLit: - return e.Value == "0" || e.Value == `""` - case *ast.Ident: - return e.Name == "nil" || e.Name == "false" - default: - return false - } -} - // TypeExpr returns syntax for the specified type. References to named types // are qualified by an appropriate (optional) qualifier function. // It may panic for types such as Tuple or Union. +// +// See also https://go.dev/issues/75604, which will provide a robust +// Type-to-valid-Go-syntax formatter. func TypeExpr(t types.Type, qual types.Qualifier) ast.Expr { switch t := t.(type) { case *types.Basic: diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go index 688aabe43..dbcf90b87 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go @@ -72,9 +72,10 @@ type ( EditionFeatures EditionFeatures } FileL2 struct { - Options func() protoreflect.ProtoMessage - Imports FileImports - Locations SourceLocations + Options func() protoreflect.ProtoMessage + Imports FileImports + OptionImports func() protoreflect.FileImports + Locations SourceLocations } // EditionFeatures is a frequently-instantiated struct, so please take care @@ -126,12 +127,9 @@ func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } func (fd *File) Parent() protoreflect.Descriptor { return nil } func (fd *File) Index() int { return 0 } func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax } - -// Not exported and just used to reconstruct the original FileDescriptor proto -func (fd *File) Edition() int32 { return int32(fd.L1.Edition) } -func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } -func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } -func (fd *File) IsPlaceholder() bool { return false } +func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } +func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } +func (fd *File) IsPlaceholder() bool { return false } func (fd *File) Options() protoreflect.ProtoMessage { if f := fd.lazyInit().Options; f != nil { return f() @@ -150,6 +148,16 @@ func (fd *File) Format(s fmt.State, r rune) { descfmt.FormatD func (fd *File) ProtoType(protoreflect.FileDescriptor) {} func (fd *File) ProtoInternal(pragma.DoNotImplement) {} +// The next two are not part of the FileDescriptor interface. They are just used to reconstruct +// the original FileDescriptor proto. +func (fd *File) Edition() int32 { return int32(fd.L1.Edition) } +func (fd *File) OptionImports() protoreflect.FileImports { + if f := fd.lazyInit().OptionImports; f != nil { + return f() + } + return emptyFiles +} + func (fd *File) lazyInit() *FileL2 { if atomic.LoadUint32(&fd.once) == 0 { fd.lazyInitOnce() @@ -182,9 +190,9 @@ type ( L2 *EnumL2 // protected by fileDesc.once } EnumL1 struct { - eagerValues bool // controls whether EnumL2.Values is already populated - EditionFeatures EditionFeatures + Visibility int32 + eagerValues bool // controls whether EnumL2.Values is already populated } EnumL2 struct { Options func() protoreflect.ProtoMessage @@ -219,6 +227,11 @@ func (ed *Enum) ReservedNames() protoreflect.Names { return &ed.lazyInit() func (ed *Enum) ReservedRanges() protoreflect.EnumRanges { return &ed.lazyInit().ReservedRanges } func (ed *Enum) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } func (ed *Enum) ProtoType(protoreflect.EnumDescriptor) {} + +// This is not part of the EnumDescriptor interface. It is just used to reconstruct +// the original FileDescriptor proto. +func (ed *Enum) Visibility() int32 { return ed.L1.Visibility } + func (ed *Enum) lazyInit() *EnumL2 { ed.L0.ParentFile.lazyInit() // implicitly initializes L2 return ed.L2 @@ -244,13 +257,13 @@ type ( L2 *MessageL2 // protected by fileDesc.once } MessageL1 struct { - Enums Enums - Messages Messages - Extensions Extensions - IsMapEntry bool // promoted from google.protobuf.MessageOptions - IsMessageSet bool // promoted from google.protobuf.MessageOptions - + Enums Enums + Messages Messages + Extensions Extensions EditionFeatures EditionFeatures + Visibility int32 + IsMapEntry bool // promoted from google.protobuf.MessageOptions + IsMessageSet bool // promoted from google.protobuf.MessageOptions } MessageL2 struct { Options func() protoreflect.ProtoMessage @@ -319,6 +332,11 @@ func (md *Message) Messages() protoreflect.MessageDescriptors { return &md.L func (md *Message) Extensions() protoreflect.ExtensionDescriptors { return &md.L1.Extensions } func (md *Message) ProtoType(protoreflect.MessageDescriptor) {} func (md *Message) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } + +// This is not part of the MessageDescriptor interface. It is just used to reconstruct +// the original FileDescriptor proto. +func (md *Message) Visibility() int32 { return md.L1.Visibility } + func (md *Message) lazyInit() *MessageL2 { md.L0.ParentFile.lazyInit() // implicitly initializes L2 return md.L2 diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go index d2f549497..e91860f5a 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go @@ -284,6 +284,13 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protorefl case genid.EnumDescriptorProto_Value_field_number: numValues++ } + case protowire.VarintType: + v, m := protowire.ConsumeVarint(b) + b = b[m:] + switch num { + case genid.EnumDescriptorProto_Visibility_field_number: + ed.L1.Visibility = int32(v) + } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] @@ -365,6 +372,13 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor md.unmarshalSeedOptions(v) } prevField = num + case protowire.VarintType: + v, m := protowire.ConsumeVarint(b) + b = b[m:] + switch num { + case genid.DescriptorProto_Visibility_field_number: + md.L1.Visibility = int32(v) + } default: m := protowire.ConsumeFieldValue(num, typ, b) b = b[m:] diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go index d4c94458b..dd31faaeb 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go @@ -134,6 +134,7 @@ func (fd *File) unmarshalFull(b []byte) { var enumIdx, messageIdx, extensionIdx, serviceIdx int var rawOptions []byte + var optionImports []string fd.L2 = new(FileL2) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) @@ -157,6 +158,8 @@ func (fd *File) unmarshalFull(b []byte) { imp = PlaceholderFile(path) } fd.L2.Imports = append(fd.L2.Imports, protoreflect.FileImport{FileDescriptor: imp}) + case genid.FileDescriptorProto_OptionDependency_field_number: + optionImports = append(optionImports, sb.MakeString(v)) case genid.FileDescriptorProto_EnumType_field_number: fd.L1.Enums.List[enumIdx].unmarshalFull(v, sb) enumIdx++ @@ -178,6 +181,23 @@ func (fd *File) unmarshalFull(b []byte) { } } fd.L2.Options = fd.builder.optionsUnmarshaler(&descopts.File, rawOptions) + if len(optionImports) > 0 { + var imps FileImports + var once sync.Once + fd.L2.OptionImports = func() protoreflect.FileImports { + once.Do(func() { + imps = make(FileImports, len(optionImports)) + for i, path := range optionImports { + imp, _ := fd.builder.FileRegistry.FindFileByPath(path) + if imp == nil { + imp = PlaceholderFile(path) + } + imps[i] = protoreflect.FileImport{FileDescriptor: imp} + } + }) + return &imps + } + } } func (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) { diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go index a0aad2777..66ba90680 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go @@ -13,8 +13,10 @@ import ( "google.golang.org/protobuf/reflect/protoreflect" ) -var defaultsCache = make(map[Edition]EditionFeatures) -var defaultsKeys = []Edition{} +var ( + defaultsCache = make(map[Edition]EditionFeatures) + defaultsKeys = []Edition{} +) func init() { unmarshalEditionDefaults(editiondefaults.Defaults) @@ -41,7 +43,7 @@ func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { b = b[m:] parent.StripEnumPrefix = int(v) default: - panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num)) + panic(fmt.Sprintf("unknown field number %d while unmarshalling GoFeatures", num)) } } return parent @@ -76,7 +78,7 @@ func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures { // DefaultSymbolVisibility is enforced in protoc, runtimes should not // inspect this value. default: - panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num)) + panic(fmt.Sprintf("unknown field number %d while unmarshalling FeatureSet", num)) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) @@ -150,7 +152,7 @@ func unmarshalEditionDefaults(b []byte) { _, m := protowire.ConsumeVarint(b) b = b[m:] default: - panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num)) + panic(fmt.Sprintf("unknown field number %d while unmarshalling EditionDefault", num)) } } } diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go index 697d1c14f..77de0f238 100644 --- a/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/vendor/google.golang.org/protobuf/internal/version/version.go @@ -52,7 +52,7 @@ import ( const ( Major = 1 Minor = 36 - Patch = 8 + Patch = 10 PreRelease = "" ) diff --git a/vendor/modernc.org/libc/Makefile b/vendor/modernc.org/libc/Makefile index 0365ae772..507d4ef95 100644 --- a/vendor/modernc.org/libc/Makefile +++ b/vendor/modernc.org/libc/Makefile @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file. -.PHONY: all build_all_targets check clean download edit editor generate dev membrk-test test work xtest short-test xlibc libc-test surface +.PHONY: all build_all_targets check clean download edit editor generate dev membrk-test test work xtest short-test xlibc libc-test surface vet SHELL=/bin/bash -o pipefail @@ -14,7 +14,7 @@ all: editor golint 2>&1 staticcheck 2>&1 -build_all_targets: +build_all_targets: vet ./build_all_targets.sh echo done @@ -38,7 +38,6 @@ editor: # gofmt -l -s -w *.go go test -c -o /dev/null go build -o /dev/null -v generator*.go - go build -o /dev/null -v genasm.go go vet 2>&1 | grep -n 'asm_' || true generate: download @@ -115,3 +114,6 @@ work: surface: surface > surface.new surface surface.old surface.new > log-todo-surface || true + +vet: + go vet 2>&1 | grep abi0 | grep -v 'misuse' || true diff --git a/vendor/modernc.org/libc/abi0_linux_amd64.go b/vendor/modernc.org/libc/abi0_linux_amd64.go new file mode 100644 index 000000000..379224800 --- /dev/null +++ b/vendor/modernc.org/libc/abi0_linux_amd64.go @@ -0,0 +1,5762 @@ +// Code generated for linux/amd64 by 'qbecc --abi0wrap .', DO NOT EDIT. + +package libc + +import "unsafe" + +var _ unsafe.Pointer + +//go:noescape +func Y_Exit(tls *TLS, ec int32) + +//go:noescape +func Y_IO_feof_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y_IO_ferror_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y_IO_getc(tls *TLS, f1 uintptr) (r int32) + +//go:noescape +func Y_IO_getc_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y_IO_putc(tls *TLS, c1 int32, f1 uintptr) (r int32) + +//go:noescape +func Y_IO_putc_unlocked(tls *TLS, c int32, f uintptr) (r int32) + +//go:noescape +func Y___errno_location(tls *TLS) (r uintptr) + +//go:noescape +func Y__aio_close(tls *TLS, fd int32) (_2 int32) + +//go:noescape +func Y__asctime_r(tls *TLS, tm uintptr, buf uintptr) (r uintptr) + +//go:noescape +func Y__assert_fail(tls *TLS, expr uintptr, file uintptr, line int32, func1 uintptr) + +//go:noescape +func Y__atomic_compare_exchangeInt16(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) + +//go:noescape +func Y__atomic_compare_exchangeInt32(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) + +//go:noescape +func Y__atomic_compare_exchangeInt64(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) + +//go:noescape +func Y__atomic_compare_exchangeInt8(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) + +//go:noescape +func Y__atomic_compare_exchangeUint16(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) + +//go:noescape +func Y__atomic_compare_exchangeUint32(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) + +//go:noescape +func Y__atomic_compare_exchangeUint64(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) + +//go:noescape +func Y__atomic_compare_exchangeUint8(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) + +//go:noescape +func Y__atomic_exchangeInt16(t *TLS, ptr, val, ret uintptr, _ int32) + +//go:noescape +func Y__atomic_exchangeInt32(t *TLS, ptr, val, ret uintptr, _ int32) + +//go:noescape +func Y__atomic_exchangeInt64(t *TLS, ptr, val, ret uintptr, _ int32) + +//go:noescape +func Y__atomic_exchangeInt8(t *TLS, ptr, val, ret uintptr, _ int32) + +//go:noescape +func Y__atomic_exchangeUint16(t *TLS, ptr, val, ret uintptr, _ int32) + +//go:noescape +func Y__atomic_exchangeUint32(t *TLS, ptr, val, ret uintptr, _ int32) + +//go:noescape +func Y__atomic_exchangeUint64(t *TLS, ptr, val, ret uintptr, _ int32) + +//go:noescape +func Y__atomic_exchangeUint8(t *TLS, ptr, val, ret uintptr, _ int32) + +//go:noescape +func Y__atomic_fetch_addInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__atomic_fetch_addInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__atomic_fetch_addInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__atomic_fetch_addInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__atomic_fetch_addUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__atomic_fetch_addUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__atomic_fetch_addUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__atomic_fetch_addUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__atomic_fetch_andInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__atomic_fetch_andInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__atomic_fetch_andInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__atomic_fetch_andInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__atomic_fetch_andUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__atomic_fetch_andUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__atomic_fetch_andUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__atomic_fetch_andUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__atomic_fetch_orInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__atomic_fetch_orInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__atomic_fetch_orInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__atomic_fetch_orInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__atomic_fetch_orUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__atomic_fetch_orUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__atomic_fetch_orUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__atomic_fetch_orUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__atomic_fetch_subInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__atomic_fetch_subInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__atomic_fetch_subInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__atomic_fetch_subInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__atomic_fetch_subUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__atomic_fetch_subUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__atomic_fetch_subUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__atomic_fetch_subUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__atomic_fetch_xorInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__atomic_fetch_xorInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__atomic_fetch_xorInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__atomic_fetch_xorInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__atomic_fetch_xorUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__atomic_fetch_xorUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__atomic_fetch_xorUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__atomic_fetch_xorUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__atomic_loadInt16(t *TLS, ptr, ret uintptr, memorder int32) + +//go:noescape +func Y__atomic_loadInt32(t *TLS, ptr, ret uintptr, memorder int32) + +//go:noescape +func Y__atomic_loadInt64(t *TLS, ptr, ret uintptr, memorder int32) + +//go:noescape +func Y__atomic_loadInt8(t *TLS, ptr, ret uintptr, memorder int32) + +//go:noescape +func Y__atomic_loadUint16(t *TLS, ptr, ret uintptr, memorder int32) + +//go:noescape +func Y__atomic_loadUint32(t *TLS, ptr, ret uintptr, memorder int32) + +//go:noescape +func Y__atomic_loadUint64(t *TLS, ptr, ret uintptr, memorder int32) + +//go:noescape +func Y__atomic_loadUint8(t *TLS, ptr, ret uintptr, memorder int32) + +//go:noescape +func Y__atomic_storeInt16(t *TLS, ptr, val uintptr, memorder int32) + +//go:noescape +func Y__atomic_storeInt32(t *TLS, ptr, val uintptr, memorder int32) + +//go:noescape +func Y__atomic_storeInt64(t *TLS, ptr, val uintptr, memorder int32) + +//go:noescape +func Y__atomic_storeInt8(t *TLS, ptr, val uintptr, memorder int32) + +//go:noescape +func Y__atomic_storeUint16(t *TLS, ptr, val uintptr, memorder int32) + +//go:noescape +func Y__atomic_storeUint32(t *TLS, ptr, val uintptr, memorder int32) + +//go:noescape +func Y__atomic_storeUint64(t *TLS, ptr, val uintptr, memorder int32) + +//go:noescape +func Y__atomic_storeUint8(t *TLS, ptr, val uintptr, memorder int32) + +//go:noescape +func Y__block_all_sigs(tls *TLS, set uintptr) + +//go:noescape +func Y__block_app_sigs(tls *TLS, set uintptr) + +//go:noescape +func Y__builtin___memcpy_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (r uintptr) + +//go:noescape +func Y__builtin___memmove_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (_3 uintptr) + +//go:noescape +func Y__builtin___memset_chk(t *TLS, s uintptr, c int32, n, os Tsize_t) (_4 uintptr) + +//go:noescape +func Y__builtin___snprintf_chk(t *TLS, str uintptr, maxlen Tsize_t, flag int32, os Tsize_t, format, args uintptr) (r int32) + +//go:noescape +func Y__builtin___sprintf_chk(t *TLS, s uintptr, flag int32, os Tsize_t, format, args uintptr) (r int32) + +//go:noescape +func Y__builtin___strcat_chk(t *TLS, dest, src uintptr, os Tsize_t) (r uintptr) + +//go:noescape +func Y__builtin___strcpy_chk(t *TLS, dest, src uintptr, os Tsize_t) (_3 uintptr) + +//go:noescape +func Y__builtin___strncpy_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (r uintptr) + +//go:noescape +func Y__builtin___vsnprintf_chk(t *TLS, str uintptr, maxlen Tsize_t, flag int32, os Tsize_t, format, args uintptr) (r int32) + +//go:noescape +func Y__builtin_abort(t *TLS) + +//go:noescape +func Y__builtin_abs(t *TLS, j int32) (_2 int32) + +//go:noescape +func Y__builtin_add_overflowInt64(t *TLS, a, b int64, res uintptr) (_3 int32) + +//go:noescape +func Y__builtin_add_overflowUint32(t *TLS, a, b uint32, res uintptr) (_3 int32) + +//go:noescape +func Y__builtin_add_overflowUint64(t *TLS, a, b uint64, res uintptr) (_3 int32) + +//go:noescape +func Y__builtin_alloca(tls *TLS, size Tsize_t) (_2 uintptr) + +//go:noescape +func Y__builtin_bswap16(t *TLS, x uint16) (_2 uint16) + +//go:noescape +func Y__builtin_bswap32(t *TLS, x uint32) (_2 uint32) + +//go:noescape +func Y__builtin_bswap64(t *TLS, x uint64) (_2 uint64) + +//go:noescape +func Y__builtin_bzero(t *TLS, s uintptr, n Tsize_t) + +//go:noescape +func Y__builtin_clz(t *TLS, n uint32) (_2 int32) + +//go:noescape +func Y__builtin_clzl(t *TLS, n ulong) (_2 int32) + +//go:noescape +func Y__builtin_clzll(t *TLS, n uint64) (_2 int32) + +//go:noescape +func Y__builtin_copysign(t *TLS, x, y float64) (_2 float64) + +//go:noescape +func Y__builtin_copysignf(t *TLS, x, y float32) (_2 float32) + +//go:noescape +func Y__builtin_copysignl(t *TLS, x, y float64) (_2 float64) + +//go:noescape +func Y__builtin_ctz(t *TLS, n uint32) (_2 int32) + +//go:noescape +func Y__builtin_ctzl(tls *TLS, x ulong) (_2 int32) + +//go:noescape +func Y__builtin_exit(t *TLS, status int32) + +//go:noescape +func Y__builtin_expect(t *TLS, exp, c long) (_2 long) + +//go:noescape +func Y__builtin_fabs(t *TLS, x float64) (_2 float64) + +//go:noescape +func Y__builtin_fabsf(t *TLS, x float32) (_2 float32) + +//go:noescape +func Y__builtin_fabsl(t *TLS, x float64) (_2 float64) + +//go:noescape +func Y__builtin_ffs(tls *TLS, i int32) (r int32) + +//go:noescape +func Y__builtin_fma(tls *TLS, x, y, z float64) (r float64) + +//go:noescape +func Y__builtin_fmax(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Y__builtin_fmin(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Y__builtin_free(t *TLS, ptr uintptr) + +//go:noescape +func Y__builtin_getentropy(t *TLS, buf uintptr, n Tsize_t) (_3 int32) + +//go:noescape +func Y__builtin_huge_val(t *TLS) (_1 float64) + +//go:noescape +func Y__builtin_huge_valf(t *TLS) (_1 float32) + +//go:noescape +func Y__builtin_hypot(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Y__builtin_inf(t *TLS) (_1 float64) + +//go:noescape +func Y__builtin_inff(tls *TLS) (_1 float32) + +//go:noescape +func Y__builtin_infl(t *TLS) (_1 float64) + +//go:noescape +func Y__builtin_isblank(tls *TLS, c int32) (r int32) + +//go:noescape +func Y__builtin_isnan(t *TLS, x float64) (_2 int32) + +//go:noescape +func Y__builtin_isnanf(t *TLS, x float32) (_2 int32) + +//go:noescape +func Y__builtin_isnanl(t *TLS, x float64) (_2 int32) + +//go:noescape +func Y__builtin_isprint(tls *TLS, c int32) (r int32) + +//go:noescape +func Y__builtin_isunordered(t *TLS, a, b float64) (_2 int32) + +//go:noescape +func Y__builtin_llabs(tls *TLS, a int64) (_2 int64) + +//go:noescape +func Y__builtin_log2(t *TLS, x float64) (_2 float64) + +//go:noescape +func Y__builtin_lrint(tls *TLS, x float64) (r long) + +//go:noescape +func Y__builtin_lrintf(tls *TLS, x float32) (r long) + +//go:noescape +func Y__builtin_lround(tls *TLS, x float64) (r long) + +//go:noescape +func Y__builtin_malloc(t *TLS, size Tsize_t) (_2 uintptr) + +//go:noescape +func Y__builtin_memcmp(t *TLS, s1, s2 uintptr, n Tsize_t) (_3 int32) + +//go:noescape +func Y__builtin_memcpy(t *TLS, dest, src uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Y__builtin_memset(t *TLS, s uintptr, c int32, n Tsize_t) (_4 uintptr) + +//go:noescape +func Y__builtin_mmap(t *TLS, addr uintptr, length Tsize_t, prot, flags, fd int32, offset Toff_t) (_5 uintptr) + +//go:noescape +func Y__builtin_mul_overflowInt64(t *TLS, a, b int64, res uintptr) (_3 int32) + +//go:noescape +func Y__builtin_mul_overflowUint128(t *TLS, a, b Uint128, res uintptr) (_3 int32) + +//go:noescape +func Y__builtin_mul_overflowUint64(t *TLS, a, b uint64, res uintptr) (_3 int32) + +//go:noescape +func Y__builtin_nan(t *TLS, s uintptr) (_2 float64) + +//go:noescape +func Y__builtin_nanf(tls *TLS, s uintptr) (_2 float32) + +//go:noescape +func Y__builtin_nanl(t *TLS, s uintptr) (_2 float64) + +//go:noescape +func Y__builtin_object_size(t *TLS, p uintptr, typ int32) (_3 Tsize_t) + +//go:noescape +func Y__builtin_popcount(t *TLS, x uint32) (_2 int32) + +//go:noescape +func Y__builtin_popcountl(t *TLS, x ulong) (_2 int32) + +//go:noescape +func Y__builtin_prefetch(t *TLS, addr, args uintptr) + +//go:noescape +func Y__builtin_printf(tls *TLS, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Y__builtin_rintf(tls *TLS, x float32) (r float32) + +//go:noescape +func Y__builtin_round(tls *TLS, x float64) (r float64) + +//go:noescape +func Y__builtin_roundf(tls *TLS, x float32) (r float32) + +//go:noescape +func Y__builtin_snprintf(t *TLS, str uintptr, size Tsize_t, format, args uintptr) (_4 int32) + +//go:noescape +func Y__builtin_sprintf(t *TLS, str, format, args uintptr) (r int32) + +//go:noescape +func Y__builtin_strchr(t *TLS, s uintptr, c int32) (_3 uintptr) + +//go:noescape +func Y__builtin_strcmp(t *TLS, s1, s2 uintptr) (_2 int32) + +//go:noescape +func Y__builtin_strcpy(t *TLS, dest, src uintptr) (_2 uintptr) + +//go:noescape +func Y__builtin_strlen(t *TLS, s uintptr) (_2 Tsize_t) + +//go:noescape +func Y__builtin_sub_overflowInt64(t *TLS, a, b int64, res uintptr) (_3 int32) + +//go:noescape +func Y__builtin_trap(t *TLS) + +//go:noescape +func Y__builtin_trunc(tls *TLS, x float64) (r float64) + +//go:noescape +func Y__builtin_unreachable(t *TLS) + +//go:noescape +func Y__builtin_vsnprintf(t *TLS, str uintptr, size Tsize_t, format, va uintptr) (_4 int32) + +//go:noescape +func Y__c11_atomic_compare_exchange_strongInt16(t *TLS, ptr, expected uintptr, desired int16, success, failure int32) (_4 int32) + +//go:noescape +func Y__c11_atomic_compare_exchange_strongInt32(t *TLS, ptr, expected uintptr, desired, success, failure int32) (_3 int32) + +//go:noescape +func Y__c11_atomic_compare_exchange_strongInt64(t *TLS, ptr, expected uintptr, desired int64, success, failure int32) (_4 int32) + +//go:noescape +func Y__c11_atomic_compare_exchange_strongInt8(t *TLS, ptr, expected uintptr, desired int8, success, failure int32) (_4 int32) + +//go:noescape +func Y__c11_atomic_compare_exchange_strongUint16(t *TLS, ptr, expected uintptr, desired uint16, success, failure int32) (_4 int32) + +//go:noescape +func Y__c11_atomic_compare_exchange_strongUint32(t *TLS, ptr, expected uintptr, desired uint32, success, failure int32) (_4 int32) + +//go:noescape +func Y__c11_atomic_compare_exchange_strongUint64(t *TLS, ptr, expected uintptr, desired uint64, success, failure int32) (_4 int32) + +//go:noescape +func Y__c11_atomic_compare_exchange_strongUint8(t *TLS, ptr, expected uintptr, desired uint8, success, failure int32) (_4 int32) + +//go:noescape +func Y__c11_atomic_exchangeInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__c11_atomic_exchangeInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__c11_atomic_exchangeInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__c11_atomic_exchangeInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__c11_atomic_exchangeUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__c11_atomic_exchangeUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__c11_atomic_exchangeUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__c11_atomic_exchangeUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__c11_atomic_fetch_addInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__c11_atomic_fetch_addInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__c11_atomic_fetch_addInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__c11_atomic_fetch_addInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__c11_atomic_fetch_addUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__c11_atomic_fetch_addUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__c11_atomic_fetch_addUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__c11_atomic_fetch_addUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__c11_atomic_fetch_andInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__c11_atomic_fetch_andInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__c11_atomic_fetch_andInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__c11_atomic_fetch_andInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__c11_atomic_fetch_andUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__c11_atomic_fetch_andUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__c11_atomic_fetch_andUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__c11_atomic_fetch_andUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__c11_atomic_fetch_orInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__c11_atomic_fetch_orInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__c11_atomic_fetch_orInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__c11_atomic_fetch_orInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__c11_atomic_fetch_orUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__c11_atomic_fetch_orUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__c11_atomic_fetch_orUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__c11_atomic_fetch_orUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__c11_atomic_fetch_subInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__c11_atomic_fetch_subInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__c11_atomic_fetch_subInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__c11_atomic_fetch_subInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__c11_atomic_fetch_subUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__c11_atomic_fetch_subUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__c11_atomic_fetch_subUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__c11_atomic_fetch_subUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__c11_atomic_fetch_xorInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) + +//go:noescape +func Y__c11_atomic_fetch_xorInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) + +//go:noescape +func Y__c11_atomic_fetch_xorInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) + +//go:noescape +func Y__c11_atomic_fetch_xorInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) + +//go:noescape +func Y__c11_atomic_fetch_xorUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) + +//go:noescape +func Y__c11_atomic_fetch_xorUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) + +//go:noescape +func Y__c11_atomic_fetch_xorUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) + +//go:noescape +func Y__c11_atomic_fetch_xorUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) + +//go:noescape +func Y__c11_atomic_loadInt16(t *TLS, ptr uintptr, memorder int32) (r int16) + +//go:noescape +func Y__c11_atomic_loadInt32(t *TLS, ptr uintptr, memorder int32) (r int32) + +//go:noescape +func Y__c11_atomic_loadInt64(t *TLS, ptr uintptr, memorder int32) (r int64) + +//go:noescape +func Y__c11_atomic_loadInt8(t *TLS, ptr uintptr, memorder int32) (r int8) + +//go:noescape +func Y__c11_atomic_loadUint16(t *TLS, ptr uintptr, memorder int32) (r uint16) + +//go:noescape +func Y__c11_atomic_loadUint32(t *TLS, ptr uintptr, memorder int32) (r uint32) + +//go:noescape +func Y__c11_atomic_loadUint64(t *TLS, ptr uintptr, memorder int32) (r uint64) + +//go:noescape +func Y__c11_atomic_loadUint8(t *TLS, ptr uintptr, memorder int32) (r uint8) + +//go:noescape +func Y__c11_atomic_storeInt16(t *TLS, ptr uintptr, val int16, memorder int32) + +//go:noescape +func Y__c11_atomic_storeInt32(t *TLS, ptr uintptr, val int32, memorder int32) + +//go:noescape +func Y__c11_atomic_storeInt64(t *TLS, ptr uintptr, val int64, memorder int32) + +//go:noescape +func Y__c11_atomic_storeInt8(t *TLS, ptr uintptr, val int8, memorder int32) + +//go:noescape +func Y__c11_atomic_storeUint16(t *TLS, ptr uintptr, val uint16, memorder int32) + +//go:noescape +func Y__c11_atomic_storeUint32(t *TLS, ptr uintptr, val uint32, memorder int32) + +//go:noescape +func Y__c11_atomic_storeUint64(t *TLS, ptr uintptr, val uint64, memorder int32) + +//go:noescape +func Y__c11_atomic_storeUint8(t *TLS, ptr uintptr, val uint8, memorder int32) + +//go:noescape +func Y__ccgo_dmesg(t *TLS, fmt uintptr, va uintptr) + +//go:noescape +func Y__ccgo_getMutexType(tls *TLS, m uintptr) (_2 int32) + +//go:noescape +func Y__ccgo_in6addr_anyp(t *TLS) (_1 uintptr) + +//go:noescape +func Y__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) (_2 int32) + +//go:noescape +func Y__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) (_2 int32) + +//go:noescape +func Y__ccgo_sqlite3_log(t *TLS, iErrCode int32, zFormat uintptr, args uintptr) + +//go:noescape +func Y__clock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r1 int32) + +//go:noescape +func Y__clock_nanosleep(tls *TLS, clk Tclockid_t, flags int32, req uintptr, rem uintptr) (r int32) + +//go:noescape +func Y__cmsg_nxthdr(t *TLS, msgh, cmsg uintptr) (_2 uintptr) + +//go:noescape +func Y__convert_scm_timestamps(tls *TLS, msg uintptr, csize Tsocklen_t) + +//go:noescape +func Y__cos(tls *TLS, x float64, y float64) (r1 float64) + +//go:noescape +func Y__cosdf(tls *TLS, x float64) (r1 float32) + +//go:noescape +func Y__crypt_blowfish(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) + +//go:noescape +func Y__crypt_des(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) + +//go:noescape +func Y__crypt_md5(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) + +//go:noescape +func Y__crypt_r(tls *TLS, key uintptr, salt uintptr, data uintptr) (r uintptr) + +//go:noescape +func Y__crypt_sha256(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) + +//go:noescape +func Y__crypt_sha512(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) + +//go:noescape +func Y__ctype_b_loc(tls *TLS) (r uintptr) + +//go:noescape +func Y__ctype_get_mb_cur_max(tls *TLS) (r Tsize_t) + +//go:noescape +func Y__ctype_tolower_loc(tls *TLS) (r uintptr) + +//go:noescape +func Y__ctype_toupper_loc(tls *TLS) (r uintptr) + +//go:noescape +func Y__des_setkey(tls *TLS, key uintptr, ekey uintptr) + +//go:noescape +func Y__dn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr, space int32) (r int32) + +//go:noescape +func Y__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_callback uintptr, ctx uintptr) (r1 int32) + +//go:noescape +func __ccgo_abi0___dns_parse_2(_0 *TLS, _1 uintptr, _2 int32, _3 uintptr, _4 int32, _5 uintptr, _6 int32, __ccgo_fp uintptr) (_7 int32) + +func __ccgo_abiInternal___dns_parse_2(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 int32, _3 uintptr, _4 int32, _5 uintptr, _6 int32) (_7 int32) { + return __ccgo_abi0___dns_parse_2(_0, _1, _2, _3, _4, _5, _6, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Y__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) + +//go:noescape +func Y__do_orphaned_stdio_locks(tls *TLS) + +//go:noescape +func Y__dup3(tls *TLS, old int32, new1 int32, flags int32) (r1 int32) + +//go:noescape +func Y__duplocale(tls *TLS, old Tlocale_t) (r Tlocale_t) + +//go:noescape +func Y__env_rm_add(tls *TLS, old uintptr, new1 uintptr) + +//go:noescape +func Y__errno_location(tls *TLS) (r uintptr) + +//go:noescape +func Y__execvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) + +//go:noescape +func Y__expo2(tls *TLS, x float64, sign float64) (r float64) + +//go:noescape +func Y__expo2f(tls *TLS, x float32, sign float32) (r float32) + +//go:noescape +func Y__fbufsize(tls *TLS, f uintptr) (r Tsize_t) + +//go:noescape +func Y__fclose_ca(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__fdopen(tls *TLS, fd int32, mode uintptr) (r uintptr) + +//go:noescape +func Y__fesetround(tls *TLS, r int32) (r1 int32) + +//go:noescape +func Y__fgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) + +//go:noescape +func Y__flbf(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__floatscan(tls *TLS, f uintptr, prec int32, pok int32) (r float64) + +//go:noescape +func Y__fmodeflags(tls *TLS, mode uintptr) (r int32) + +//go:noescape +func Y__fopen_rb_ca(tls *TLS, filename uintptr, f uintptr, buf uintptr, len1 Tsize_t) (r uintptr) + +//go:noescape +func Y__fpclassify(tls *TLS, x float64) (r int32) + +//go:noescape +func Y__fpclassifyf(tls *TLS, x float32) (r int32) + +//go:noescape +func Y__fpclassifyl(tls *TLS, x float64) (r int32) + +//go:noescape +func Y__fpending(tls *TLS, f uintptr) (r Tsize_t) + +//go:noescape +func Y__fpurge(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__fputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) + +//go:noescape +func Y__freadable(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__freadahead(tls *TLS, f uintptr) (r Tsize_t) + +//go:noescape +func Y__freading(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__freadptr(tls *TLS, f uintptr, sizep uintptr) (r uintptr) + +//go:noescape +func Y__freadptrinc(tls *TLS, f uintptr, inc Tsize_t) + +//go:noescape +func Y__freelocale(tls *TLS, l Tlocale_t) + +//go:noescape +func Y__fseeko(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) + +//go:noescape +func Y__fseeko_unlocked(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) + +//go:noescape +func Y__fseterr(tls *TLS, f uintptr) + +//go:noescape +func Y__fsetlocking(tls *TLS, f uintptr, type1 int32) (r int32) + +//go:noescape +func Y__fstat(tls *TLS, fd int32, st uintptr) (r int32) + +//go:noescape +func Y__fstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) + +//go:noescape +func Y__ftello(tls *TLS, f uintptr) (r Toff_t) + +//go:noescape +func Y__ftello_unlocked(tls *TLS, f uintptr) (r Toff_t) + +//go:noescape +func Y__funcs_on_quick_exit(tls *TLS) + +//go:noescape +func Y__futimesat(tls *TLS, dirfd int32, pathname uintptr, times uintptr) (r int32) + +//go:noescape +func Y__fwritable(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__fwritex(tls *TLS, s uintptr, l Tsize_t, f uintptr) (r Tsize_t) + +//go:noescape +func Y__fwriting(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__fxstat(tls *TLS, ver int32, fd int32, buf uintptr) (r int32) + +//go:noescape +func Y__fxstatat(tls *TLS, ver int32, fd int32, path uintptr, buf uintptr, flag int32) (r int32) + +//go:noescape +func Y__get_handler_set(tls *TLS, set uintptr) + +//go:noescape +func Y__get_locale(tls *TLS, cat int32, val uintptr) (r uintptr) + +//go:noescape +func Y__get_resolv_conf(tls *TLS, conf uintptr, search uintptr, search_sz Tsize_t) (r int32) + +//go:noescape +func Y__getauxval(tls *TLS, item uint64) (r uint64) + +//go:noescape +func Y__getdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) + +//go:noescape +func Y__getgr_a(tls *TLS, name uintptr, gid Tgid_t, gr uintptr, buf uintptr, size uintptr, mem uintptr, nmem uintptr, res uintptr) (r int32) + +//go:noescape +func Y__getgrent_a(tls *TLS, f uintptr, gr uintptr, line uintptr, size uintptr, mem uintptr, nmem uintptr, res uintptr) (r int32) + +//go:noescape +func Y__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) + +//go:noescape +func Y__getpw_a(tls *TLS, name uintptr, uid Tuid_t, pw uintptr, buf uintptr, size uintptr, res uintptr) (r int32) + +//go:noescape +func Y__getpwent_a(tls *TLS, f uintptr, pw uintptr, line uintptr, size uintptr, res uintptr) (r int32) + +//go:noescape +func Y__gettextdomain(tls *TLS) (r uintptr) + +//go:noescape +func Y__gmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) + +//go:noescape +func Y__h_errno_location(tls *TLS) (r uintptr) + +//go:noescape +func Y__inet_aton(tls *TLS, s0 uintptr, dest uintptr) (r int32) + +//go:noescape +func Y__init_ssp(tls *TLS, entropy uintptr) + +//go:noescape +func Y__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) (r uint64) + +//go:noescape +func Y__isalnum_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__isalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__isblank_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__iscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__isdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__isfinite(tls *TLS, d float64) (_2 int32) + +//go:noescape +func Y__isfinitef(tls *TLS, f float32) (_2 int32) + +//go:noescape +func Y__isfinitel(tls *TLS, d float64) (_2 int32) + +//go:noescape +func Y__isgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__islower_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__isnan(t *TLS, x float64) (_2 int32) + +//go:noescape +func Y__isnanf(t *TLS, arg float32) (_2 int32) + +//go:noescape +func Y__isnanl(t *TLS, arg float64) (_2 int32) + +//go:noescape +func Y__isoc99_fscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Y__isoc99_fwscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Y__isoc99_scanf(tls *TLS, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Y__isoc99_sscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Y__isoc99_swscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Y__isoc99_vfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Y__isoc99_vfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Y__isoc99_vscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Y__isoc99_vsscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Y__isoc99_vswscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Y__isoc99_vwscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Y__isoc99_wscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Y__isprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__ispunct_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__isspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__isupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswalnum_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswalpha_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswcntrl_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswctype_l(tls *TLS, c Twint_t, t Twctype_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswgraph_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswprint_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswpunct_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswspace_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__iswxdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Y__isxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__lctrans(tls *TLS, msg uintptr, lm uintptr) (r uintptr) + +//go:noescape +func Y__lctrans_cur(tls *TLS, msg uintptr) (r uintptr) + +//go:noescape +func Y__lctrans_impl(tls *TLS, msg uintptr, lm uintptr) (r uintptr) + +//go:noescape +func Y__ldexp_cexp(tls *TLS, z complex128, expt int32) (r complex128) + +//go:noescape +func Y__ldexp_cexpf(tls *TLS, z complex64, expt int32) (r complex64) + +//go:noescape +func Y__lgamma_r(tls *TLS, x float64, signgamp uintptr) (r1 float64) + +//go:noescape +func Y__lgammaf_r(tls *TLS, x float32, signgamp uintptr) (r1 float32) + +//go:noescape +func Y__lgammal_r(tls *TLS, x float64, sg uintptr) (r float64) + +//go:noescape +func Y__libc_current_sigrtmax(tls *TLS) (r int32) + +//go:noescape +func Y__libc_current_sigrtmin(tls *TLS) (r int32) + +//go:noescape +func Y__libc_sigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r1 int32) + +//go:noescape +func Y__loc_is_allocated(tls *TLS, loc Tlocale_t) (r int32) + +//go:noescape +func Y__localtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) + +//go:noescape +func Y__lockfile(tls *TLS, file uintptr) (_2 int32) + +//go:noescape +func Y__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) (r int32) + +//go:noescape +func Y__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) (r int32) + +//go:noescape +func Y__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) (r int32) + +//go:noescape +func Y__lseek(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) + +//go:noescape +func Y__lsysinfo(tls *TLS, info uintptr) (r int32) + +//go:noescape +func Y__lxstat(tls *TLS, ver int32, path uintptr, buf uintptr) (r int32) + +//go:noescape +func Y__madvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) + +//go:noescape +func Y__map_file(tls *TLS, pathname uintptr, size uintptr) (r uintptr) + +//go:noescape +func Y__math_divzero(tls *TLS, sign Tuint32_t) (r float64) + +//go:noescape +func Y__math_divzerof(tls *TLS, sign Tuint32_t) (r float32) + +//go:noescape +func Y__math_invalid(tls *TLS, x float64) (r float64) + +//go:noescape +func Y__math_invalidf(tls *TLS, x float32) (r float32) + +//go:noescape +func Y__math_oflow(tls *TLS, sign Tuint32_t) (r float64) + +//go:noescape +func Y__math_oflowf(tls *TLS, sign Tuint32_t) (r float32) + +//go:noescape +func Y__math_uflow(tls *TLS, sign Tuint32_t) (r float64) + +//go:noescape +func Y__math_uflowf(tls *TLS, sign Tuint32_t) (r float32) + +//go:noescape +func Y__math_xflow(tls *TLS, sign Tuint32_t, y2 float64) (r float64) + +//go:noescape +func Y__math_xflowf(tls *TLS, sign Tuint32_t, y2 float32) (r float32) + +//go:noescape +func Y__memrchr(tls *TLS, m uintptr, c int32, n Tsize_t) (r uintptr) + +//go:noescape +func Y__mkostemps(tls *TLS, template uintptr, len1 int32, flags int32) (r int32) + +//go:noescape +func Y__mmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) + +//go:noescape +func Y__mo_lookup(tls *TLS, p uintptr, size Tsize_t, s uintptr) (r uintptr) + +//go:noescape +func Y__month_to_secs(tls *TLS, month int32, is_leap int32) (r int32) + +//go:noescape +func Y__mprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) + +//go:noescape +func Y__mremap(tls *TLS, old_addr uintptr, old_len Tsize_t, new_len Tsize_t, flags int32, va uintptr) (r uintptr) + +//go:noescape +func Y__munmap(tls *TLS, start uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Y__newlocale(tls *TLS, mask int32, name uintptr, loc Tlocale_t) (r Tlocale_t) + +//go:noescape +func Y__nl_langinfo(tls *TLS, item Tnl_item) (r uintptr) + +//go:noescape +func Y__nl_langinfo_l(tls *TLS, item Tnl_item, loc Tlocale_t) (r uintptr) + +//go:noescape +func Y__nscd_query(tls *TLS, req Tint32_t, key uintptr, buf uintptr, len1 Tsize_t, swap uintptr) (r uintptr) + +//go:noescape +func Y__ofl_add(tls *TLS, f uintptr) (r uintptr) + +//go:noescape +func Y__ofl_lock(tls *TLS) (r uintptr) + +//go:noescape +func Y__ofl_unlock(tls *TLS) + +//go:noescape +func Y__overflow(tls *TLS, f uintptr, _c int32) (r int32) + +//go:noescape +func Y__pleval(tls *TLS, s uintptr, n uint64) (r uint64) + +//go:noescape +func Y__posix_getopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) + +//go:noescape +func Y__procfdname(tls *TLS, buf uintptr, fd uint32) + +//go:noescape +func Y__ptsname_r(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Y__putenv(tls *TLS, s uintptr, l Tsize_t, r uintptr) (r1 int32) + +//go:noescape +func Y__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr) + +//go:noescape +func __ccgo_abi0___qsort_r_3(_0 *TLS, _1 uintptr, _2 uintptr, _3 uintptr, __ccgo_fp uintptr) (_4 int32) + +func __ccgo_abiInternal___qsort_r_3(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr, _3 uintptr) (_4 int32) { + return __ccgo_abi0___qsort_r_3(_0, _1, _2, _3, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Y__rand48_step(tls *TLS, xi uintptr, lc uintptr) (r Tuint64_t) + +//go:noescape +func Y__register_locked_file(tls *TLS, f uintptr, self Tpthread_t) + +//go:noescape +func Y__rem_pio2(tls *TLS, x float64, y uintptr) (r1 int32) + +//go:noescape +func Y__rem_pio2_large(tls *TLS, x uintptr, y uintptr, e0 int32, nx int32, prec int32) (r int32) + +//go:noescape +func Y__rem_pio2f(tls *TLS, x float32, y uintptr) (r int32) + +//go:noescape +func Y__res_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, data uintptr, datalen int32, newrr uintptr, buf uintptr, buflen int32) (r int32) + +//go:noescape +func Y__res_msend(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, answers uintptr, alens uintptr, asize int32) (r int32) + +//go:noescape +func Y__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, answers uintptr, alens uintptr, asize int32, conf uintptr) (r1 int32) + +//go:noescape +func Y__res_send(tls *TLS, _msg uintptr, _msglen int32, _answer uintptr, _anslen int32) (r1 int32) + +//go:noescape +func Y__res_state(tls *TLS) (r uintptr) + +//go:noescape +func Y__reset_tls(tls *TLS) + +//go:noescape +func Y__restore(tls *TLS) + +//go:noescape +func Y__restore_rt(tls *TLS) + +//go:noescape +func Y__restore_sigs(tls *TLS, set uintptr) + +//go:noescape +func Y__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) + +//go:noescape +func __ccgo_abi0___rtnetlink_enumerate_2(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal___rtnetlink_enumerate_2(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0___rtnetlink_enumerate_2(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Y__secs_to_tm(tls *TLS, t int64, tm uintptr) (r int32) + +//go:noescape +func Y__secs_to_zone(tls *TLS, t int64, local int32, isdst uintptr, offset uintptr, oppoff uintptr, zonename uintptr) + +//go:noescape +func Y__setxid(tls *TLS, nr int32, id int32, eid int32, sid int32) (r int32) + +//go:noescape +func Y__shgetc(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__shlim(tls *TLS, f uintptr, lim Toff_t) + +//go:noescape +func Y__shm_mapname(tls *TLS, name uintptr, buf uintptr) (r uintptr) + +//go:noescape +func Y__sigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r1 int32) + +//go:noescape +func Y__signbit(tls *TLS, x float64) (r int32) + +//go:noescape +func Y__signbitf(tls *TLS, x float32) (r int32) + +//go:noescape +func Y__signbitl(tls *TLS, x float64) (r int32) + +//go:noescape +func Y__sigsetjmp_tail(tls *TLS, jb uintptr, ret int32) (r int32) + +//go:noescape +func Y__sin(tls *TLS, x float64, y float64, iy int32) (r1 float64) + +//go:noescape +func Y__sindf(tls *TLS, x float64) (r1 float32) + +//go:noescape +func Y__stack_chk_fail(tls *TLS) + +//go:noescape +func Y__stack_chk_fail_local(tls *TLS) + +//go:noescape +func Y__stdio_close(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__stdio_exit(tls *TLS) + +//go:noescape +func Y__stdio_exit_needed(tls *TLS) + +//go:noescape +func Y__stdio_read(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) + +//go:noescape +func Y__stdio_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) + +//go:noescape +func Y__stdio_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) + +//go:noescape +func Y__stdout_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) + +//go:noescape +func Y__stpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) + +//go:noescape +func Y__stpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Y__strcasecmp_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) + +//go:noescape +func Y__strchrnul(tls *TLS, s uintptr, c int32) (r uintptr) + +//go:noescape +func Y__strcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) + +//go:noescape +func Y__strerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) + +//go:noescape +func Y__strftime_fmt_1(tls *TLS, s uintptr, l uintptr, f int32, tm uintptr, loc Tlocale_t, pad int32) (r uintptr) + +//go:noescape +func Y__strftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) + +//go:noescape +func Y__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, loc Tlocale_t) (r1 int32) + +//go:noescape +func Y__strtod_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) + +//go:noescape +func Y__strtof_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float32) + +//go:noescape +func Y__strtoimax_internal(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) + +//go:noescape +func Y__strtol_internal(tls *TLS, s uintptr, p uintptr, base int32) (r int64) + +//go:noescape +func Y__strtold_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) + +//go:noescape +func Y__strtoll_internal(tls *TLS, s uintptr, p uintptr, base int32) (r int64) + +//go:noescape +func Y__strtoul_internal(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) + +//go:noescape +func Y__strtoull_internal(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) + +//go:noescape +func Y__strtoumax_internal(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) + +//go:noescape +func Y__strxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) + +//go:noescape +func Y__sync_synchronize(t *TLS) + +//go:noescape +func Y__sync_val_compare_and_swapInt16(t *TLS, ptr uintptr, oldval, newval int16) (r int16) + +//go:noescape +func Y__sync_val_compare_and_swapInt32(t *TLS, ptr uintptr, oldval, newval int32) (r int32) + +//go:noescape +func Y__sync_val_compare_and_swapInt64(t *TLS, ptr uintptr, oldval, newval int64) (r int64) + +//go:noescape +func Y__sync_val_compare_and_swapInt8(t *TLS, ptr uintptr, oldval, newval int8) (r int8) + +//go:noescape +func Y__sync_val_compare_and_swapUint16(t *TLS, ptr uintptr, oldval, newval uint16) (r uint16) + +//go:noescape +func Y__sync_val_compare_and_swapUint32(t *TLS, ptr uintptr, oldval, newval uint32) (r uint32) + +//go:noescape +func Y__sync_val_compare_and_swapUint64(t *TLS, ptr uintptr, oldval, newval uint64) (r uint64) + +//go:noescape +func Y__sync_val_compare_and_swapUint8(t *TLS, ptr uintptr, oldval, newval uint8) (r uint8) + +//go:noescape +func Y__syscall0(tls *TLS, n long) (_2 long) + +//go:noescape +func Y__syscall1(tls *TLS, n, a1 long) (_2 long) + +//go:noescape +func Y__syscall2(tls *TLS, n, a1, a2 long) (_2 long) + +//go:noescape +func Y__syscall3(tls *TLS, n, a1, a2, a3 long) (_2 long) + +//go:noescape +func Y__syscall4(tls *TLS, n, a1, a2, a3, a4 long) (_2 long) + +//go:noescape +func Y__syscall5(tls *TLS, n, a1, a2, a3, a4, a5 long) (_2 long) + +//go:noescape +func Y__syscall6(tls *TLS, n, a1, a2, a3, a4, a5, a6 long) (_2 long) + +//go:noescape +func Y__syscall_ret(tls *TLS, r uint64) (r1 int64) + +//go:noescape +func Y__tan(tls *TLS, x float64, y float64, odd int32) (r1 float64) + +//go:noescape +func Y__tandf(tls *TLS, x float64, odd int32) (r1 float32) + +//go:noescape +func Y__tm_to_secs(tls *TLS, tm uintptr) (r int64) + +//go:noescape +func Y__tm_to_tzname(tls *TLS, tm uintptr) (r uintptr) + +//go:noescape +func Y__tolower_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__toread(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__toread_needs_stdio_exit(tls *TLS) + +//go:noescape +func Y__toupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Y__towctrans_l(tls *TLS, c Twint_t, t Twctrans_t, l Tlocale_t) (r Twint_t) + +//go:noescape +func Y__towlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) + +//go:noescape +func Y__towrite(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__towrite_needs_stdio_exit(tls *TLS) + +//go:noescape +func Y__towupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) + +//go:noescape +func Y__tre_mem_alloc_impl(tls *TLS, mem Ttre_mem_t, provided int32, provided_block uintptr, zero int32, size Tsize_t) (r uintptr) + +//go:noescape +func Y__tre_mem_destroy(tls *TLS, mem Ttre_mem_t) + +//go:noescape +func Y__tre_mem_new_impl(tls *TLS, provided int32, provided_block uintptr) (r Ttre_mem_t) + +//go:noescape +func Y__tsearch_balance(tls *TLS, p uintptr) (r int32) + +//go:noescape +func Y__uflow(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Y__unlist_locked_file(tls *TLS, f uintptr) + +//go:noescape +func Y__unlockfile(tls *TLS, file uintptr) + +//go:noescape +func Y__uselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) + +//go:noescape +func Y__vm_wait(tls *TLS) + +//go:noescape +func Y__wcscoll_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) + +//go:noescape +func Y__wcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) + +//go:noescape +func Y__wcsxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) + +//go:noescape +func Y__wctrans_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctrans_t) + +//go:noescape +func Y__wctype_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctype_t) + +//go:noescape +func Y__xmknod(tls *TLS, ver int32, path uintptr, mode Tmode_t, dev uintptr) (r int32) + +//go:noescape +func Y__xmknodat(tls *TLS, ver int32, fd int32, path uintptr, mode Tmode_t, dev uintptr) (r int32) + +//go:noescape +func Y__xpg_basename(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Y__xpg_strerror_r(tls *TLS, err int32, buf uintptr, buflen Tsize_t) (r int32) + +//go:noescape +func Y__xstat(tls *TLS, ver int32, path uintptr, buf uintptr) (r int32) + +//go:noescape +func Y__year_to_secs(tls *TLS, year int64, is_leap uintptr) (r int64) + +//go:noescape +func Y_exit(tls *TLS, status int32) + +//go:noescape +func Y_flushlbf(tls *TLS) + +//go:noescape +func Y_longjmp(t *TLS, env uintptr, val int32) + +//go:noescape +func Y_obstack_begin(t *TLS, obstack uintptr, size, alignment int32, chunkfun, freefun uintptr) (_4 int32) + +//go:noescape +func Y_obstack_newchunk(t *TLS, obstack uintptr, length int32) (_3 int32) + +//go:noescape +func Y_pthread_cleanup_pop(tls *TLS, _ uintptr, run int32) + +//go:noescape +func Y_pthread_cleanup_push(tls *TLS, _, f, x uintptr) + +//go:noescape +func Y_setjmp(t *TLS, env uintptr) (_2 int32) + +//go:noescape +func Ya64l(tls *TLS, s uintptr) (r int64) + +//go:noescape +func Yabort(tls *TLS) + +//go:noescape +func Yabs(tls *TLS, a int32) (r int32) + +//go:noescape +func Yaccept(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) + +//go:noescape +func Yaccept4(tls *TLS, fd int32, addr uintptr, len1 uintptr, flg int32) (r1 int32) + +//go:noescape +func Yaccess(tls *TLS, filename uintptr, amode int32) (r int32) + +//go:noescape +func Yacct(tls *TLS, filename uintptr) (r int32) + +//go:noescape +func Yacos(tls *TLS, x float64) (r float64) + +//go:noescape +func Yacosf(tls *TLS, x float32) (r float32) + +//go:noescape +func Yacosh(tls *TLS, x float64) (r float64) + +//go:noescape +func Yacoshf(tls *TLS, x float32) (r float32) + +//go:noescape +func Yacoshl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yacosl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yaddmntent(tls *TLS, f uintptr, mnt uintptr) (r int32) + +//go:noescape +func Yadjtime(tls *TLS, in uintptr, out uintptr) (r int32) + +//go:noescape +func Yadjtimex(tls *TLS, tx uintptr) (r int32) + +//go:noescape +func Yalarm(tls *TLS, seconds uint32) (r uint32) + +//go:noescape +func Yalloca(tls *TLS, size Tsize_t) (_2 uintptr) + +//go:noescape +func Yalphasort(tls *TLS, a uintptr, b uintptr) (r int32) + +//go:noescape +func Yarch_prctl(tls *TLS, code int32, addr uint64) (r int32) + +//go:noescape +func Yasctime(tls *TLS, tm uintptr) (r uintptr) + +//go:noescape +func Yasctime_r(tls *TLS, tm uintptr, buf uintptr) (r uintptr) + +//go:noescape +func Yasin(tls *TLS, x float64) (r1 float64) + +//go:noescape +func Yasinf(tls *TLS, x float32) (r float32) + +//go:noescape +func Yasinh(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Yasinhf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Yasinhl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yasinl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yasprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Yat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) + +//go:noescape +func __ccgo_abi0_at_quick_exit_0(_0 *TLS, __ccgo_fp uintptr) + +func __ccgo_abiInternal_at_quick_exit_0(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS) { + __ccgo_abi0_at_quick_exit_0(_0, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Yatan(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Yatan2(tls *TLS, y float64, x float64) (r float64) + +//go:noescape +func Yatan2f(tls *TLS, y float32, x float32) (r float32) + +//go:noescape +func Yatan2l(tls *TLS, y float64, x float64) (r float64) + +//go:noescape +func Yatanf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Yatanh(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Yatanhf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Yatanhl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yatanl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yatexit(tls *TLS, func_ uintptr) (r int32) + +//go:noescape +func Yatof(tls *TLS, s uintptr) (r float64) + +//go:noescape +func Yatoi(tls *TLS, s uintptr) (r int32) + +//go:noescape +func Yatol(tls *TLS, s uintptr) (r int64) + +//go:noescape +func Yatoll(tls *TLS, s uintptr) (r int64) + +//go:noescape +func Ybacktrace(t *TLS, buf uintptr, size int32) (_3 int32) + +//go:noescape +func Ybacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) + +//go:noescape +func Ybasename(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Ybcmp(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) (r int32) + +//go:noescape +func Ybcopy(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) + +//go:noescape +func Ybind(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) + +//go:noescape +func Ybind_textdomain_codeset(tls *TLS, domainname uintptr, codeset uintptr) (r uintptr) + +//go:noescape +func Ybindtextdomain(tls *TLS, domainname uintptr, dirname uintptr) (r uintptr) + +//go:noescape +func Ybrk(tls *TLS, end uintptr) (r int32) + +//go:noescape +func Ybsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp uintptr) (r uintptr) + +//go:noescape +func __ccgo_abi0_bsearch_4(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_bsearch_4(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0_bsearch_4(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Ybtowc(tls *TLS, c int32) (r Twint_t) + +//go:noescape +func Ybzero(tls *TLS, s uintptr, n Tsize_t) + +//go:noescape +func Yc16rtomb(tls *TLS, s uintptr, c16 Tchar16_t, ps uintptr) (r Tsize_t) + +//go:noescape +func Yc32rtomb(tls *TLS, s uintptr, c32 Tchar32_t, ps uintptr) (r Tsize_t) + +//go:noescape +func Ycabs(tls *TLS, z complex128) (r float64) + +//go:noescape +func Ycabsf(tls *TLS, z complex64) (r float32) + +//go:noescape +func Ycabsl(tls *TLS, z complex128) (r float64) + +//go:noescape +func Ycacos(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycacosf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycacosh(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycacoshf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycacoshl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycacosl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycalloc(tls *TLS, m Tsize_t, n Tsize_t) (r uintptr) + +//go:noescape +func Ycapget(tls *TLS, a uintptr, b uintptr) (r int32) + +//go:noescape +func Ycapset(tls *TLS, a uintptr, b uintptr) (r int32) + +//go:noescape +func Ycarg(tls *TLS, z complex128) (r float64) + +//go:noescape +func Ycargf(tls *TLS, z complex64) (r float32) + +//go:noescape +func Ycargl(tls *TLS, z complex128) (r float64) + +//go:noescape +func Ycasin(tls *TLS, z complex128) (r1 complex128) + +//go:noescape +func Ycasinf(tls *TLS, z complex64) (r1 complex64) + +//go:noescape +func Ycasinh(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycasinhf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycasinhl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycasinl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycatan(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycatanf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycatanh(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycatanhf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycatanhl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycatanl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycatclose(tls *TLS, catd Tnl_catd) (r int32) + +//go:noescape +func Ycatgets(tls *TLS, catd Tnl_catd, set_id int32, msg_id int32, s uintptr) (r uintptr) + +//go:noescape +func Ycatopen(tls *TLS, name uintptr, oflag int32) (r Tnl_catd) + +//go:noescape +func Ycbrt(tls *TLS, x float64) (r1 float64) + +//go:noescape +func Ycbrtf(tls *TLS, x float32) (r1 float32) + +//go:noescape +func Ycbrtl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yccos(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yccosf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Yccosh(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yccoshf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Yccoshl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yccosl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yceil(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Yceilf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Yceill(tls *TLS, x float64) (r float64) + +//go:noescape +func Ycexp(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycexpf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycexpl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycfgetispeed(tls *TLS, tio uintptr) (r Tspeed_t) + +//go:noescape +func Ycfgetospeed(tls *TLS, tio uintptr) (r Tspeed_t) + +//go:noescape +func Ycfmakeraw(tls *TLS, t uintptr) + +//go:noescape +func Ycfsetispeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) + +//go:noescape +func Ycfsetospeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) + +//go:noescape +func Ycfsetspeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) + +//go:noescape +func Ychdir(tls *TLS, path uintptr) (r int32) + +//go:noescape +func Ychmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) + +//go:noescape +func Ychown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) + +//go:noescape +func Ychroot(tls *TLS, path uintptr) (r int32) + +//go:noescape +func Ycimag(tls *TLS, z complex128) (r float64) + +//go:noescape +func Ycimagf(tls *TLS, z complex64) (r float32) + +//go:noescape +func Ycimagl(tls *TLS, z complex128) (r float64) + +//go:noescape +func Yclearenv(tls *TLS) (r int32) + +//go:noescape +func Yclearerr(tls *TLS, f uintptr) + +//go:noescape +func Yclearerr_unlocked(tls *TLS, f uintptr) + +//go:noescape +func Yclock(tls *TLS) (r Tclock_t) + +//go:noescape +func Yclock_adjtime(tls *TLS, clock_id Tclockid_t, utx uintptr) (r1 int32) + +//go:noescape +func Yclock_getcpuclockid(tls *TLS, pid Tpid_t, clk uintptr) (r int32) + +//go:noescape +func Yclock_getres(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) + +//go:noescape +func Yclock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) + +//go:noescape +func Yclock_nanosleep(tls *TLS, clk Tclockid_t, flags int32, req uintptr, rem uintptr) (r int32) + +//go:noescape +func Yclock_settime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) + +//go:noescape +func Yclog(tls *TLS, z complex128) (r1 complex128) + +//go:noescape +func Yclogf(tls *TLS, z complex64) (r1 complex64) + +//go:noescape +func Yclogl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yclose(tls *TLS, fd int32) (r1 int32) + +//go:noescape +func Yclosedir(tls *TLS, dir uintptr) (r int32) + +//go:noescape +func Ycloselog(tls *TLS) + +//go:noescape +func Yconfstr(tls *TLS, name int32, buf uintptr, len1 Tsize_t) (r Tsize_t) + +//go:noescape +func Yconj(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yconjf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Yconjl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yconnect(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) + +//go:noescape +func Ycopy_file_range(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) + +//go:noescape +func Ycopysign(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Ycopysignf(tls *TLS, x float32, y float32) (r float32) + +//go:noescape +func Ycopysignl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Ycos(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Ycosf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Ycosh(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Ycoshf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Ycoshl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ycosl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ycpow(tls *TLS, z complex128, c complex128) (r complex128) + +//go:noescape +func Ycpowf(tls *TLS, z complex64, c complex64) (r complex64) + +//go:noescape +func Ycpowl(tls *TLS, z complex128, c complex128) (r complex128) + +//go:noescape +func Ycproj(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycprojf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycprojl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycreal(tls *TLS, z complex128) (r float64) + +//go:noescape +func Ycrealf(tls *TLS, z complex64) (r float32) + +//go:noescape +func Ycreall(tls *TLS, z complex128) (r float64) + +//go:noescape +func Ycreat(tls *TLS, filename uintptr, mode Tmode_t) (r int32) + +//go:noescape +func Ycrypt(tls *TLS, key uintptr, salt uintptr) (r uintptr) + +//go:noescape +func Ycrypt_r(tls *TLS, key uintptr, salt uintptr, data uintptr) (r uintptr) + +//go:noescape +func Ycsin(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycsinf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycsinh(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycsinhf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycsinhl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycsinl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycsqrt(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Ycsqrtf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Ycsqrtl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yctan(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yctanf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Yctanh(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yctanhf(tls *TLS, z complex64) (r complex64) + +//go:noescape +func Yctanhl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yctanl(tls *TLS, z complex128) (r complex128) + +//go:noescape +func Yctermid(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Yctime(tls *TLS, t uintptr) (r uintptr) + +//go:noescape +func Yctime_r(tls *TLS, t uintptr, buf uintptr) (r uintptr) + +//go:noescape +func Ycuserid(tls *TLS, buf uintptr) (r uintptr) + +//go:noescape +func Ydcgettext(tls *TLS, domainname uintptr, msgid uintptr, category int32) (r uintptr) + +//go:noescape +func Ydcngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64, category int32) (r1 uintptr) + +//go:noescape +func Ydelete_module(tls *TLS, a uintptr, b uint32) (r int32) + +//go:noescape +func Ydgettext(tls *TLS, domainname uintptr, msgid uintptr) (r uintptr) + +//go:noescape +func Ydifftime(tls *TLS, t1 Ttime_t, t0 Ttime_t) (r float64) + +//go:noescape +func Ydirfd(tls *TLS, d uintptr) (r int32) + +//go:noescape +func Ydirname(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Ydiv(tls *TLS, num int32, den int32) (r Tdiv_t) + +//go:noescape +func Ydlclose(t *TLS, handle uintptr) (_2 int32) + +//go:noescape +func Ydlerror(t *TLS) (_1 uintptr) + +//go:noescape +func Ydlopen(t *TLS, filename uintptr, flags int32) (_3 uintptr) + +//go:noescape +func Ydlsym(t *TLS, handle, symbol uintptr) (_2 uintptr) + +//go:noescape +func Ydn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, lastdnptr uintptr) (r int32) + +//go:noescape +func Ydn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr, space int32) (r int32) + +//go:noescape +func Ydn_skipname(tls *TLS, s uintptr, end uintptr) (r int32) + +//go:noescape +func Ydngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) + +//go:noescape +func Ydprintf(tls *TLS, fd int32, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Ydrand48(tls *TLS) (r float64) + +//go:noescape +func Ydrem(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Ydremf(tls *TLS, x float32, y float32) (r float32) + +//go:noescape +func Ydup(tls *TLS, fd int32) (r int32) + +//go:noescape +func Ydup2(tls *TLS, old int32, new1 int32) (r1 int32) + +//go:noescape +func Ydup3(tls *TLS, old int32, new1 int32, flags int32) (r int32) + +//go:noescape +func Yduplocale(tls *TLS, old Tlocale_t) (r Tlocale_t) + +//go:noescape +func Yeaccess(tls *TLS, filename uintptr, amode int32) (r int32) + +//go:noescape +func Yecvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) + +//go:noescape +func Yencrypt(tls *TLS, block uintptr, edflag int32) + +//go:noescape +func Yendgrent(tls *TLS) + +//go:noescape +func Yendhostent(tls *TLS) + +//go:noescape +func Yendmntent(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yendnetent(tls *TLS) + +//go:noescape +func Yendprotoent(tls *TLS) + +//go:noescape +func Yendpwent(tls *TLS) + +//go:noescape +func Yendservent(tls *TLS) + +//go:noescape +func Yendspent(tls *TLS) + +//go:noescape +func Yendusershell(tls *TLS) + +//go:noescape +func Yendutent(tls *TLS) + +//go:noescape +func Yendutxent(tls *TLS) + +//go:noescape +func Yepoll_create(tls *TLS, size int32) (r int32) + +//go:noescape +func Yepoll_create1(tls *TLS, flags int32) (r1 int32) + +//go:noescape +func Yepoll_ctl(tls *TLS, fd int32, op int32, fd2 int32, ev uintptr) (r int32) + +//go:noescape +func Yepoll_pwait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32, sigs uintptr) (r1 int32) + +//go:noescape +func Yepoll_wait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32) (r int32) + +//go:noescape +func Yerand48(tls *TLS, s uintptr) (r float64) + +//go:noescape +func Yerf(tls *TLS, x float64) (r1 float64) + +//go:noescape +func Yerfc(tls *TLS, x float64) (r1 float64) + +//go:noescape +func Yerfcf(tls *TLS, x float32) (r1 float32) + +//go:noescape +func Yerfcl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yerff(tls *TLS, x float32) (r1 float32) + +//go:noescape +func Yerfl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yerr(tls *TLS, status int32, fmt uintptr, va uintptr) + +//go:noescape +func Yerrx(tls *TLS, status int32, fmt uintptr, va uintptr) + +//go:noescape +func Yether_aton(tls *TLS, x uintptr) (r uintptr) + +//go:noescape +func Yether_aton_r(tls *TLS, x uintptr, p_a uintptr) (r uintptr) + +//go:noescape +func Yether_hostton(tls *TLS, hostname uintptr, e uintptr) (r int32) + +//go:noescape +func Yether_line(tls *TLS, l uintptr, e uintptr, hostname uintptr) (r int32) + +//go:noescape +func Yether_ntoa(tls *TLS, p_a uintptr) (r uintptr) + +//go:noescape +func Yether_ntoa_r(tls *TLS, p_a uintptr, x uintptr) (r uintptr) + +//go:noescape +func Yether_ntohost(tls *TLS, hostname uintptr, e uintptr) (r int32) + +//go:noescape +func Yeuidaccess(tls *TLS, filename uintptr, amode int32) (r int32) + +//go:noescape +func Yeventfd(tls *TLS, count uint32, flags int32) (r1 int32) + +//go:noescape +func Yeventfd_read(tls *TLS, fd int32, value uintptr) (r int32) + +//go:noescape +func Yeventfd_write(tls *TLS, fd int32, _value Teventfd_t) (r int32) + +//go:noescape +func Yexecl(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) + +//go:noescape +func Yexecle(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) + +//go:noescape +func Yexeclp(tls *TLS, file uintptr, argv0 uintptr, va uintptr) (r int32) + +//go:noescape +func Yexecv(tls *TLS, path uintptr, argv uintptr) (r int32) + +//go:noescape +func Yexecve(tls *TLS, path uintptr, argv uintptr, envp uintptr) (r int32) + +//go:noescape +func Yexecvp(tls *TLS, file uintptr, argv uintptr) (r int32) + +//go:noescape +func Yexecvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) + +//go:noescape +func Yexit(tls *TLS, code int32) + +//go:noescape +func Yexp(tls *TLS, x1 float64) (r1 float64) + +//go:noescape +func Yexp10(tls *TLS, x float64) (r float64) + +//go:noescape +func Yexp10f(tls *TLS, x float32) (r float32) + +//go:noescape +func Yexp10l(tls *TLS, x float64) (r float64) + +//go:noescape +func Yexp2(tls *TLS, x1 float64) (r1 float64) + +//go:noescape +func Yexp2f(tls *TLS, x2 float32) (r1 float32) + +//go:noescape +func Yexp2l(tls *TLS, x float64) (r float64) + +//go:noescape +func Yexpf(tls *TLS, x2 float32) (r1 float32) + +//go:noescape +func Yexpl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yexplicit_bzero(tls *TLS, d uintptr, n Tsize_t) + +//go:noescape +func Yexpm1(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Yexpm1f(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Yexpm1l(tls *TLS, x float64) (r float64) + +//go:noescape +func Yfabs(tls *TLS, x float64) (r float64) + +//go:noescape +func Yfabsf(tls *TLS, x float32) (r float32) + +//go:noescape +func Yfabsl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yfaccessat(tls *TLS, fd int32, filename uintptr, amode int32, flag int32) (r int32) + +//go:noescape +func Yfallocate(tls *TLS, fd int32, mode int32, base Toff_t, len1 Toff_t) (r int32) + +//go:noescape +func Yfanotify_init(tls *TLS, flags uint32, event_f_flags uint32) (r int32) + +//go:noescape +func Yfanotify_mark(tls *TLS, fanotify_fd int32, flags uint32, mask uint64, dfd int32, pathname uintptr) (r int32) + +//go:noescape +func Yfchdir(tls *TLS, fd int32) (r int32) + +//go:noescape +func Yfchmod(tls *TLS, fd int32, mode Tmode_t) (r int32) + +//go:noescape +func Yfchmodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, flag int32) (r int32) + +//go:noescape +func Yfchown(tls *TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) + +//go:noescape +func Yfchownat(tls *TLS, fd int32, path uintptr, uid Tuid_t, gid Tgid_t, flag int32) (r int32) + +//go:noescape +func Yfclose(tls *TLS, f uintptr) (r1 int32) + +//go:noescape +func Yfcntl(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) + +//go:noescape +func Yfcntl64(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) + +//go:noescape +func Yfcvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) + +//go:noescape +func Yfdatasync(tls *TLS, fd int32) (r int32) + +//go:noescape +func Yfdim(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yfdimf(tls *TLS, x float32, y float32) (r float32) + +//go:noescape +func Yfdiml(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yfdopen(tls *TLS, fd int32, mode uintptr) (r uintptr) + +//go:noescape +func Yfdopendir(tls *TLS, fd int32) (r uintptr) + +//go:noescape +func Yfeclearexcept(tls *TLS, mask int32) (r int32) + +//go:noescape +func Yfegetenv(tls *TLS, envp uintptr) (r int32) + +//go:noescape +func Yfegetround(tls *TLS) (r int32) + +//go:noescape +func Yfeof(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yfeof_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yferaiseexcept(tls *TLS, mask int32) (r int32) + +//go:noescape +func Yferror(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yferror_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yfesetenv(tls *TLS, envp uintptr) (r int32) + +//go:noescape +func Yfetestexcept(tls *TLS, mask int32) (r int32) + +//go:noescape +func Yfexecve(tls *TLS, fd int32, argv uintptr, envp uintptr) (r1 int32) + +//go:noescape +func Yfflush(tls *TLS, f uintptr) (r1 int32) + +//go:noescape +func Yfflush_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yffs(tls *TLS, i int32) (r int32) + +//go:noescape +func Yffsl(tls *TLS, i int64) (r int32) + +//go:noescape +func Yffsll(tls *TLS, i int64) (r int32) + +//go:noescape +func Yfgetc(tls *TLS, f1 uintptr) (r int32) + +//go:noescape +func Yfgetc_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yfgetgrent(tls *TLS, f uintptr) (r uintptr) + +//go:noescape +func Yfgetln(tls *TLS, f uintptr, plen uintptr) (r uintptr) + +//go:noescape +func Yfgetpos(tls *TLS, f uintptr, pos uintptr) (r int32) + +//go:noescape +func Yfgetpwent(tls *TLS, f uintptr) (r uintptr) + +//go:noescape +func Yfgets(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) + +//go:noescape +func Yfgets_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) + +//go:noescape +func Yfgetwc(tls *TLS, f uintptr) (r Twint_t) + +//go:noescape +func Yfgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) + +//go:noescape +func Yfgetws(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) + +//go:noescape +func Yfgetws_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) + +//go:noescape +func Yfgetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) + +//go:noescape +func Yfileno(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yfileno_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yfinite(tls *TLS, x float64) (r int32) + +//go:noescape +func Yfinitef(tls *TLS, x float32) (r int32) + +//go:noescape +func Yflistxattr(tls *TLS, filedes int32, list uintptr, size Tsize_t) (r Tssize_t) + +//go:noescape +func Yflock(tls *TLS, fd int32, op int32) (r int32) + +//go:noescape +func Yflockfile(tls *TLS, f uintptr) + +//go:noescape +func Yfloor(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Yfloorf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Yfloorl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yfma(tls *TLS, x1 float64, y float64, z float64) (r1 float64) + +//go:noescape +func Yfmal(tls *TLS, x float64, y float64, z float64) (r float64) + +//go:noescape +func Yfmax(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yfmaxf(tls *TLS, x float32, y float32) (r float32) + +//go:noescape +func Yfmaxl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yfmemopen(tls *TLS, buf uintptr, size Tsize_t, mode uintptr) (r uintptr) + +//go:noescape +func Yfmin(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yfminf(tls *TLS, x float32, y float32) (r float32) + +//go:noescape +func Yfminl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yfmod(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yfmodf(tls *TLS, x float32, y float32) (r float32) + +//go:noescape +func Yfmodl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yfmtmsg(tls *TLS, classification int64, label uintptr, severity int32, text uintptr, action uintptr, tag uintptr) (r int32) + +//go:noescape +func Yfnmatch(tls *TLS, pat uintptr, str uintptr, flags int32) (r int32) + +//go:noescape +func Yfopen(tls *TLS, filename uintptr, mode uintptr) (r uintptr) + +//go:noescape +func Yfopen64(tls *TLS, filename uintptr, mode uintptr) (r uintptr) + +//go:noescape +func Yfopencookie(tls *TLS, cookie uintptr, mode uintptr, iofuncs Tcookie_io_functions_t) (r uintptr) + +//go:noescape +func Yfork(t *TLS) (_1 int32) + +//go:noescape +func Yfpathconf(tls *TLS, fd int32, name int32) (r int64) + +//go:noescape +func Yfprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Yfpurge(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yfputc(tls *TLS, c1 int32, f1 uintptr) (r int32) + +//go:noescape +func Yfputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) + +//go:noescape +func Yfputs(tls *TLS, s uintptr, f uintptr) (r int32) + +//go:noescape +func Yfputs_unlocked(tls *TLS, s uintptr, f uintptr) (r int32) + +//go:noescape +func Yfputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) + +//go:noescape +func Yfputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) + +//go:noescape +func Yfputws(tls *TLS, _ws uintptr, f uintptr) (r int32) + +//go:noescape +func Yfputws_unlocked(tls *TLS, _ws uintptr, f uintptr) (r int32) + +//go:noescape +func Yfread(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) + +//go:noescape +func Yfread_unlocked(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) + +//go:noescape +func Yfree(tls *TLS, p uintptr) + +//go:noescape +func Yfreeaddrinfo(tls *TLS, p uintptr) + +//go:noescape +func Yfreeifaddrs(tls *TLS, ifp uintptr) + +//go:noescape +func Yfreelocale(tls *TLS, l Tlocale_t) + +//go:noescape +func Yfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) + +//go:noescape +func Yfreopen(tls *TLS, filename uintptr, mode uintptr, f uintptr) (r uintptr) + +//go:noescape +func Yfrexp(tls *TLS, x float64, e uintptr) (r float64) + +//go:noescape +func Yfrexpf(tls *TLS, x float32, e uintptr) (r float32) + +//go:noescape +func Yfrexpl(tls *TLS, x float64, e uintptr) (r float64) + +//go:noescape +func Yfscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Yfseek(tls *TLS, f uintptr, off int64, whence int32) (r int32) + +//go:noescape +func Yfseeko(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) + +//go:noescape +func Yfsetpos(tls *TLS, f uintptr, pos uintptr) (r int32) + +//go:noescape +func Yfsetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) + +//go:noescape +func Yfstat(tls *TLS, fd int32, st uintptr) (r int32) + +//go:noescape +func Yfstat64(tls *TLS, fd int32, st uintptr) (r int32) + +//go:noescape +func Yfstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) + +//go:noescape +func Yfstatfs(tls *TLS, fd int32, buf uintptr) (r int32) + +//go:noescape +func Yfstatvfs(tls *TLS, fd int32, buf uintptr) (r int32) + +//go:noescape +func Yfsync(tls *TLS, fd int32) (r int32) + +//go:noescape +func Yftell(tls *TLS, f uintptr) (r int64) + +//go:noescape +func Yftello(tls *TLS, f uintptr) (r Toff_t) + +//go:noescape +func Yftime(tls *TLS, tp uintptr) (r int32) + +//go:noescape +func Yftok(tls *TLS, path uintptr, id int32) (r Tkey_t) + +//go:noescape +func Yftruncate(tls *TLS, fd int32, length Toff_t) (r int32) + +//go:noescape +func Yftruncate64(tls *TLS, fd int32, length Toff_t) (r int32) + +//go:noescape +func Yftrylockfile(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Yfts64_close(t *TLS, ftsp uintptr) (_2 int32) + +//go:noescape +func Yfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) (_4 uintptr) + +//go:noescape +func Yfts64_read(t *TLS, ftsp uintptr) (_2 uintptr) + +//go:noescape +func Yfts_close(t *TLS, ftsp uintptr) (_2 int32) + +//go:noescape +func Yfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) (_4 uintptr) + +//go:noescape +func Yfts_read(t *TLS, ftsp uintptr) (_2 uintptr) + +//go:noescape +func Yftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32) (r int32) + +//go:noescape +func __ccgo_abi0_ftw_1(_0 *TLS, _1 uintptr, _2 uintptr, _3 int32, __ccgo_fp uintptr) (_4 int32) + +func __ccgo_abiInternal_ftw_1(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr, _3 int32) (_4 int32) { + return __ccgo_abi0_ftw_1(_0, _1, _2, _3, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Yfunlockfile(tls *TLS, f uintptr) + +//go:noescape +func Yfutimens(tls *TLS, fd int32, times uintptr) (r int32) + +//go:noescape +func Yfutimes(tls *TLS, fd int32, tv uintptr) (r int32) + +//go:noescape +func Yfutimesat(tls *TLS, dirfd int32, pathname uintptr, times uintptr) (r int32) + +//go:noescape +func Yfwide(tls *TLS, f uintptr, mode int32) (r int32) + +//go:noescape +func Yfwprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Yfwrite(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) + +//go:noescape +func Yfwrite_unlocked(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) + +//go:noescape +func Yfwscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Ygai_strerror(tls *TLS, ecode int32) (r uintptr) + +//go:noescape +func Ygcvt(tls *TLS, x float64, n int32, b uintptr) (r uintptr) + +//go:noescape +func Yget_avphys_pages(tls *TLS) (r int64) + +//go:noescape +func Yget_current_dir_name(tls *TLS) (r uintptr) + +//go:noescape +func Yget_nprocs(tls *TLS) (r int32) + +//go:noescape +func Yget_nprocs_conf(tls *TLS) (r int32) + +//go:noescape +func Yget_phys_pages(tls *TLS) (r int64) + +//go:noescape +func Ygetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) (r1 int32) + +//go:noescape +func Ygetauxval(tls *TLS, item uint64) (r uint64) + +//go:noescape +func Ygetc(tls *TLS, f1 uintptr) (r int32) + +//go:noescape +func Ygetc_unlocked(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Ygetchar(tls *TLS) (r int32) + +//go:noescape +func Ygetchar_unlocked(tls *TLS) (r int32) + +//go:noescape +func Ygetcwd(tls *TLS, buf uintptr, size Tsize_t) (r uintptr) + +//go:noescape +func Ygetdate(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Ygetdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) + +//go:noescape +func Ygetdents(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Ygetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Ygetdtablesize(tls *TLS) (r int32) + +//go:noescape +func Ygetegid(tls *TLS) (r Tgid_t) + +//go:noescape +func Ygetentropy(tls *TLS, buffer uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Ygetenv(tls *TLS, name uintptr) (r uintptr) + +//go:noescape +func Ygeteuid(tls *TLS) (r Tuid_t) + +//go:noescape +func Ygetgid(tls *TLS) (r Tgid_t) + +//go:noescape +func Ygetgrent(tls *TLS) (r uintptr) + +//go:noescape +func Ygetgrgid(tls *TLS, gid Tgid_t) (r uintptr) + +//go:noescape +func Ygetgrgid_r(tls *TLS, gid Tgid_t, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) + +//go:noescape +func Ygetgrnam(tls *TLS, name uintptr) (r uintptr) + +//go:noescape +func Ygetgrnam_r(tls *TLS, name uintptr, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) + +//go:noescape +func Ygetgrouplist(tls *TLS, user uintptr, gid Tgid_t, groups uintptr, ngroups uintptr) (r int32) + +//go:noescape +func Ygetgroups(tls *TLS, count int32, list uintptr) (r int32) + +//go:noescape +func Ygethostbyaddr(tls *TLS, a uintptr, l Tsocklen_t, af int32) (r uintptr) + +//go:noescape +func Ygethostbyaddr_r(tls *TLS, a uintptr, l Tsocklen_t, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) + +//go:noescape +func Ygethostbyname(tls *TLS, name uintptr) (r uintptr) + +//go:noescape +func Ygethostbyname2(tls *TLS, name uintptr, af int32) (r uintptr) + +//go:noescape +func Ygethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) + +//go:noescape +func Ygethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) + +//go:noescape +func Ygethostent(tls *TLS) (r uintptr) + +//go:noescape +func Ygethostid(tls *TLS) (r int64) + +//go:noescape +func Ygethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Ygetifaddrs(tls *TLS, ifap uintptr) (r1 int32) + +//go:noescape +func Ygetitimer(tls *TLS, which int32, old uintptr) (r1 int32) + +//go:noescape +func Ygetline(tls *TLS, s uintptr, n uintptr, f uintptr) (r Tssize_t) + +//go:noescape +func Ygetloadavg(tls *TLS, a uintptr, n int32) (r int32) + +//go:noescape +func Ygetlogin(tls *TLS) (r uintptr) + +//go:noescape +func Ygetlogin_r(tls *TLS, name uintptr, size Tsize_t) (r int32) + +//go:noescape +func Ygetmntent(tls *TLS, f uintptr) (r uintptr) + +//go:noescape +func Ygetmntent_r(tls *TLS, f uintptr, mnt uintptr, linebuf uintptr, buflen int32) (r uintptr) + +//go:noescape +func Ygetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tsocklen_t, serv uintptr, servlen Tsocklen_t, flags int32) (r int32) + +//go:noescape +func Ygetnetbyaddr(tls *TLS, net Tuint32_t, type1 int32) (r uintptr) + +//go:noescape +func Ygetnetbyname(tls *TLS, name uintptr) (r uintptr) + +//go:noescape +func Ygetnetent(tls *TLS) (r uintptr) + +//go:noescape +func Ygetopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) + +//go:noescape +func Ygetopt_long(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) + +//go:noescape +func Ygetopt_long_only(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) + +//go:noescape +func Ygetpagesize(tls *TLS) (r int32) + +//go:noescape +func Ygetpass(tls *TLS, prompt uintptr) (r uintptr) + +//go:noescape +func Ygetpeername(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) + +//go:noescape +func Ygetpgid(tls *TLS, pid Tpid_t) (r Tpid_t) + +//go:noescape +func Ygetpgrp(tls *TLS) (r Tpid_t) + +//go:noescape +func Ygetpid(tls *TLS) (r Tpid_t) + +//go:noescape +func Ygetppid(tls *TLS) (r Tpid_t) + +//go:noescape +func Ygetpriority(tls *TLS, which int32, who Tid_t) (r int32) + +//go:noescape +func Ygetprotobyname(tls *TLS, name uintptr) (r uintptr) + +//go:noescape +func Ygetprotobynumber(tls *TLS, num int32) (r uintptr) + +//go:noescape +func Ygetprotoent(tls *TLS) (r uintptr) + +//go:noescape +func Ygetpwent(tls *TLS) (r uintptr) + +//go:noescape +func Ygetpwnam(tls *TLS, name uintptr) (r uintptr) + +//go:noescape +func Ygetpwnam_r(tls *TLS, name uintptr, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) + +//go:noescape +func Ygetpwuid(tls *TLS, uid Tuid_t) (r uintptr) + +//go:noescape +func Ygetpwuid_r(tls *TLS, uid Tuid_t, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) + +//go:noescape +func Ygetrandom(tls *TLS, buf uintptr, buflen Tsize_t, flags uint32) (r Tssize_t) + +//go:noescape +func Ygetresgid(tls *TLS, rgid uintptr, egid uintptr, sgid uintptr) (r int32) + +//go:noescape +func Ygetresuid(tls *TLS, ruid uintptr, euid uintptr, suid uintptr) (r int32) + +//go:noescape +func Ygetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) + +//go:noescape +func Ygetrlimit64(tls *TLS, resource int32, rlim uintptr) (r int32) + +//go:noescape +func Ygetrusage(tls *TLS, who int32, ru uintptr) (r1 int32) + +//go:noescape +func Ygets(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Ygetservbyname(tls *TLS, name uintptr, prots uintptr) (r uintptr) + +//go:noescape +func Ygetservbyname_r(tls *TLS, name uintptr, prots uintptr, se uintptr, buf uintptr, buflen Tsize_t, res uintptr) (r int32) + +//go:noescape +func Ygetservent(tls *TLS) (r uintptr) + +//go:noescape +func Ygetsid(tls *TLS, pid Tpid_t) (r Tpid_t) + +//go:noescape +func Ygetsockname(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) + +//go:noescape +func Ygetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen uintptr) (r2 int32) + +//go:noescape +func Ygetspent(tls *TLS) (r uintptr) + +//go:noescape +func Ygetsubopt(tls *TLS, opt uintptr, keys uintptr, val uintptr) (r int32) + +//go:noescape +func Ygettext(tls *TLS, msgid uintptr) (r uintptr) + +//go:noescape +func Ygettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) + +//go:noescape +func Ygetuid(tls *TLS) (r Tuid_t) + +//go:noescape +func Ygetusershell(tls *TLS) (r uintptr) + +//go:noescape +func Ygetutent(tls *TLS) (r uintptr) + +//go:noescape +func Ygetutid(tls *TLS, ut uintptr) (r uintptr) + +//go:noescape +func Ygetutline(tls *TLS, ut uintptr) (r uintptr) + +//go:noescape +func Ygetutxent(tls *TLS) (r uintptr) + +//go:noescape +func Ygetutxid(tls *TLS, ut uintptr) (r uintptr) + +//go:noescape +func Ygetutxline(tls *TLS, ut uintptr) (r uintptr) + +//go:noescape +func Ygetw(tls *TLS, f uintptr) (r int32) + +//go:noescape +func Ygetwc(tls *TLS, f uintptr) (r Twint_t) + +//go:noescape +func Ygetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) + +//go:noescape +func Ygetwchar(tls *TLS) (r Twint_t) + +//go:noescape +func Ygetwchar_unlocked(tls *TLS) (r Twint_t) + +//go:noescape +func Ygetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) + +//go:noescape +func Yglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, g_ uintptr) (r int32) + +//go:noescape +func __ccgo_abi0_glob_2(_0 *TLS, _1 uintptr, _2 int32, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_glob_2(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 int32) (_3 int32) { + return __ccgo_abi0_glob_2(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Yglobfree(tls *TLS, g_ uintptr) + +//go:noescape +func Ygmtime(tls *TLS, t uintptr) (r uintptr) + +//go:noescape +func Ygmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) + +//go:noescape +func Ygrantpt(tls *TLS, fd int32) (r int32) + +//go:noescape +func Yhasmntopt(tls *TLS, mnt uintptr, opt uintptr) (r uintptr) + +//go:noescape +func Yhcreate(tls *TLS, nel Tsize_t) (r int32) + +//go:noescape +func Yhdestroy(tls *TLS) + +//go:noescape +func Yherror(tls *TLS, msg uintptr) + +//go:noescape +func Yhsearch(tls *TLS, item TENTRY, action TACTION) (r uintptr) + +//go:noescape +func Yhstrerror(tls *TLS, ecode int32) (r uintptr) + +//go:noescape +func Yhtonl(tls *TLS, n Tuint32_t) (r Tuint32_t) + +//go:noescape +func Yhtons(tls *TLS, n Tuint16_t) (r Tuint16_t) + +//go:noescape +func Yhypot(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yhypotf(tls *TLS, x float32, y float32) (r float32) + +//go:noescape +func Yhypotl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb uintptr) (r Tsize_t) + +//go:noescape +func Yiconv_close(tls *TLS, cd Ticonv_t) (r int32) + +//go:noescape +func Yiconv_open(tls *TLS, to uintptr, from uintptr) (r Ticonv_t) + +//go:noescape +func Yif_freenameindex(tls *TLS, idx uintptr) + +//go:noescape +func Yif_indextoname(tls *TLS, index uint32, name uintptr) (r1 uintptr) + +//go:noescape +func Yif_nameindex(tls *TLS) (r uintptr) + +//go:noescape +func Yif_nametoindex(tls *TLS, name uintptr) (r1 uint32) + +//go:noescape +func Yilogb(tls *TLS, x3 float64) (r int32) + +//go:noescape +func Yilogbf(tls *TLS, x3 float32) (r int32) + +//go:noescape +func Yilogbl(tls *TLS, x float64) (r int32) + +//go:noescape +func Yimaxabs(tls *TLS, a Tintmax_t) (r Tintmax_t) + +//go:noescape +func Yimaxdiv(tls *TLS, num Tintmax_t, den Tintmax_t) (r Timaxdiv_t) + +//go:noescape +func Yindex(tls *TLS, s uintptr, c int32) (r uintptr) + +//go:noescape +func Yinet_addr(tls *TLS, p uintptr) (r Tin_addr_t) + +//go:noescape +func Yinet_aton(tls *TLS, s0 uintptr, dest uintptr) (r int32) + +//go:noescape +func Yinet_lnaof(tls *TLS, in Tin_addr) (r Tin_addr_t) + +//go:noescape +func Yinet_makeaddr(tls *TLS, n Tin_addr_t, h Tin_addr_t) (r Tin_addr) + +//go:noescape +func Yinet_netof(tls *TLS, in Tin_addr) (r Tin_addr_t) + +//go:noescape +func Yinet_network(tls *TLS, p uintptr) (r Tin_addr_t) + +//go:noescape +func Yinet_ntoa(tls *TLS, _in Tin_addr) (r uintptr) + +//go:noescape +func Yinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l Tsocklen_t) (r uintptr) + +//go:noescape +func Yinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) (r int32) + +//go:noescape +func Yinit_module(tls *TLS, a uintptr, b uint64, c uintptr) (r int32) + +//go:noescape +func Yinitstate(tls *TLS, seed uint32, state uintptr, size Tsize_t) (r uintptr) + +//go:noescape +func Yinitstate_r(t *TLS, seed uint32, statebuf uintptr, statelen Tsize_t, buf uintptr) (_5 int32) + +//go:noescape +func Yinotify_add_watch(tls *TLS, fd int32, pathname uintptr, mask Tuint32_t) (r int32) + +//go:noescape +func Yinotify_init(tls *TLS) (r int32) + +//go:noescape +func Yinotify_init1(tls *TLS, flags int32) (r1 int32) + +//go:noescape +func Yinotify_rm_watch(tls *TLS, fd int32, wd int32) (r int32) + +//go:noescape +func Yinsque(tls *TLS, element uintptr, pred uintptr) + +//go:noescape +func Yioctl(tls *TLS, fd int32, req int32, va uintptr) (r1 int32) + +//go:noescape +func Yioperm(tls *TLS, from uint64, num uint64, turn_on int32) (r int32) + +//go:noescape +func Yiopl(tls *TLS, level int32) (r int32) + +//go:noescape +func Yisalnum(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisalnum_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yisalpha(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yisascii(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisastream(tls *TLS, fd int32) (r int32) + +//go:noescape +func Yisatty(tls *TLS, fd int32) (r1 int32) + +//go:noescape +func Yisblank(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisblank_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yiscntrl(tls *TLS, c int32) (r int32) + +//go:noescape +func Yiscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yisdigit(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yisgraph(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yislower(tls *TLS, c int32) (r int32) + +//go:noescape +func Yislower_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yisnan(t *TLS, x float64) (_2 int32) + +//go:noescape +func Yisnanf(t *TLS, arg float32) (_2 int32) + +//go:noescape +func Yisnanl(t *TLS, arg float64) (_2 int32) + +//go:noescape +func Yisprint(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yispunct(tls *TLS, c int32) (r int32) + +//go:noescape +func Yispunct_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yissetugid(tls *TLS) (r int32) + +//go:noescape +func Yisspace(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yisupper(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yiswalnum(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswalnum_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswalpha(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswalpha_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswblank(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswcntrl(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswcntrl_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswctype(tls *TLS, wc Twint_t, type1 Twctype_t) (r int32) + +//go:noescape +func Yiswctype_l(tls *TLS, c Twint_t, t Twctype_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswdigit(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswgraph(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswgraph_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswlower(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswprint(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswprint_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswpunct(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswpunct_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswspace(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswspace_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswupper(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yiswxdigit(tls *TLS, wc Twint_t) (r int32) + +//go:noescape +func Yiswxdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) + +//go:noescape +func Yisxdigit(tls *TLS, c int32) (r int32) + +//go:noescape +func Yisxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Yj0(tls *TLS, x float64) (r1 float64) + +//go:noescape +func Yj0f(tls *TLS, x float32) (r1 float32) + +//go:noescape +func Yj1(tls *TLS, x float64) (r1 float64) + +//go:noescape +func Yj1f(tls *TLS, x float32) (r1 float32) + +//go:noescape +func Yjn(tls *TLS, n int32, x float64) (r float64) + +//go:noescape +func Yjnf(tls *TLS, n int32, x float32) (r float32) + +//go:noescape +func Yjrand48(tls *TLS, s uintptr) (r int64) + +//go:noescape +func Ykill(tls *TLS, pid Tpid_t, sig int32) (r int32) + +//go:noescape +func Ykillpg(tls *TLS, pgid Tpid_t, sig int32) (r int32) + +//go:noescape +func Yklogctl(tls *TLS, type1 int32, buf uintptr, len1 int32) (r int32) + +//go:noescape +func Yl64a(tls *TLS, x0 int64) (r uintptr) + +//go:noescape +func Ylabs(tls *TLS, a int64) (r int64) + +//go:noescape +func Ylchmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) + +//go:noescape +func Ylchown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) + +//go:noescape +func Ylckpwdf(tls *TLS) (r int32) + +//go:noescape +func Ylcong48(tls *TLS, p uintptr) + +//go:noescape +func Yldexp(tls *TLS, x float64, n int32) (r float64) + +//go:noescape +func Yldexpf(tls *TLS, x float32, n int32) (r float32) + +//go:noescape +func Yldexpl(tls *TLS, x float64, n int32) (r float64) + +//go:noescape +func Yldiv(tls *TLS, num int64, den int64) (r Tldiv_t) + +//go:noescape +func Ylfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_compar uintptr) (r uintptr) + +//go:noescape +func __ccgo_abi0_lfind_4(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_lfind_4(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0_lfind_4(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Ylgamma(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylgamma_r(tls *TLS, x float64, signgamp uintptr) (r float64) + +//go:noescape +func Ylgammaf(tls *TLS, x float32) (r float32) + +//go:noescape +func Ylgammaf_r(tls *TLS, x float32, signgamp uintptr) (r float32) + +//go:noescape +func Ylgammal(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylgammal_r(tls *TLS, x float64, sg uintptr) (r float64) + +//go:noescape +func Ylgetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) + +//go:noescape +func Ylink(tls *TLS, existing uintptr, new1 uintptr) (r int32) + +//go:noescape +func Ylinkat(tls *TLS, fd1 int32, existing uintptr, fd2 int32, new1 uintptr, flag int32) (r int32) + +//go:noescape +func Ylisten(tls *TLS, fd int32, backlog int32) (r1 int32) + +//go:noescape +func Ylistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) + +//go:noescape +func Yllabs(tls *TLS, a int64) (r int64) + +//go:noescape +func Ylldiv(tls *TLS, num int64, den int64) (r Tlldiv_t) + +//go:noescape +func Yllistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) + +//go:noescape +func Yllrint(tls *TLS, x float64) (r int64) + +//go:noescape +func Yllrintf(tls *TLS, x float32) (r int64) + +//go:noescape +func Yllrintl(tls *TLS, x float64) (r int64) + +//go:noescape +func Yllround(tls *TLS, x float64) (r int64) + +//go:noescape +func Yllroundf(tls *TLS, x float32) (r int64) + +//go:noescape +func Yllroundl(tls *TLS, x float64) (r int64) + +//go:noescape +func Ylocaleconv(tls *TLS) (r uintptr) + +//go:noescape +func Ylocaltime(tls *TLS, t uintptr) (r uintptr) + +//go:noescape +func Ylocaltime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) + +//go:noescape +func Ylockf(tls *TLS, fd int32, op int32, size Toff_t) (r int32) + +//go:noescape +func Ylog(tls *TLS, x1 float64) (r1 float64) + +//go:noescape +func Ylog10(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylog10f(tls *TLS, x float32) (r float32) + +//go:noescape +func Ylog10l(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylog1p(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Ylog1pf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Ylog1pl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylog2(tls *TLS, x1 float64) (r1 float64) + +//go:noescape +func Ylog2f(tls *TLS, x1 float32) (r1 float32) + +//go:noescape +func Ylog2l(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylogb(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylogbf(tls *TLS, x float32) (r float32) + +//go:noescape +func Ylogbl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylogf(tls *TLS, x1 float32) (r1 float32) + +//go:noescape +func Ylogin_tty(tls *TLS, fd int32) (r int32) + +//go:noescape +func Ylogl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ylongjmp(t *TLS, env uintptr, val int32) + +//go:noescape +func Ylrand48(tls *TLS) (r int64) + +//go:noescape +func Ylremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) + +//go:noescape +func Ylrint(tls *TLS, x float64) (r int64) + +//go:noescape +func Ylrintf(tls *TLS, x float32) (r int64) + +//go:noescape +func Ylrintl(tls *TLS, x float64) (r int64) + +//go:noescape +func Ylround(tls *TLS, x float64) (r int64) + +//go:noescape +func Ylroundf(tls *TLS, x float32) (r int64) + +//go:noescape +func Ylroundl(tls *TLS, x float64) (r int64) + +//go:noescape +func Ylsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_compar uintptr) (r uintptr) + +//go:noescape +func __ccgo_abi0_lsearch_4(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_lsearch_4(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0_lsearch_4(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Ylseek(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) + +//go:noescape +func Ylseek64(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) + +//go:noescape +func Ylsetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) + +//go:noescape +func Ylstat(tls *TLS, path uintptr, buf uintptr) (r int32) + +//go:noescape +func Ylstat64(tls *TLS, path uintptr, buf uintptr) (r int32) + +//go:noescape +func Ylutimes(tls *TLS, filename uintptr, tv uintptr) (r int32) + +//go:noescape +func Ymadvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) + +//go:noescape +func Ymalloc(tls *TLS, n Tsize_t) (r uintptr) + +//go:noescape +func Ymalloc_usable_size(tls *TLS, p uintptr) (r Tsize_t) + +//go:noescape +func Ymblen(tls *TLS, s uintptr, n Tsize_t) (r int32) + +//go:noescape +func Ymbrlen(tls *TLS, s uintptr, n Tsize_t, st uintptr) (r Tsize_t) + +//go:noescape +func Ymbrtoc16(tls *TLS, pc16 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) + +//go:noescape +func Ymbrtoc32(tls *TLS, pc32 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) + +//go:noescape +func Ymbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize_t) + +//go:noescape +func Ymbsinit(tls *TLS, st uintptr) (r int32) + +//go:noescape +func Ymbsnrtowcs(tls *TLS, wcs uintptr, src uintptr, n Tsize_t, wn Tsize_t, st uintptr) (r Tsize_t) + +//go:noescape +func Ymbsrtowcs(tls *TLS, ws uintptr, src uintptr, wn Tsize_t, st uintptr) (r Tsize_t) + +//go:noescape +func Ymbstowcs(tls *TLS, ws uintptr, _s uintptr, wn Tsize_t) (r Tsize_t) + +//go:noescape +func Ymbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) + +//go:noescape +func Ymemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintptr) + +//go:noescape +func Ymemchr(tls *TLS, src uintptr, c int32, n Tsize_t) (r uintptr) + +//go:noescape +func Ymemcmp(tls *TLS, vl uintptr, vr uintptr, n Tsize_t) (r1 int32) + +//go:noescape +func Ymemcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ymemfd_create(tls *TLS, name uintptr, flags uint32) (r int32) + +//go:noescape +func Ymemmem(tls *TLS, h0 uintptr, k Tsize_t, n0 uintptr, l Tsize_t) (r uintptr) + +//go:noescape +func Ymemmove(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ymempcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ymemrchr(tls *TLS, m uintptr, c int32, n Tsize_t) (r uintptr) + +//go:noescape +func Ymemset(tls *TLS, dest uintptr, c int32, n Tsize_t) (r uintptr) + +//go:noescape +func Ymincore(tls *TLS, addr uintptr, len1 Tsize_t, vec uintptr) (r int32) + +//go:noescape +func Ymkdir(tls *TLS, path uintptr, mode Tmode_t) (r int32) + +//go:noescape +func Ymkdirat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) + +//go:noescape +func Ymkdtemp(tls *TLS, template uintptr) (r uintptr) + +//go:noescape +func Ymkfifo(tls *TLS, path uintptr, mode Tmode_t) (r int32) + +//go:noescape +func Ymkfifoat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) + +//go:noescape +func Ymknod(tls *TLS, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) + +//go:noescape +func Ymknodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) + +//go:noescape +func Ymkostemp(tls *TLS, template uintptr, flags int32) (r int32) + +//go:noescape +func Ymkostemps(tls *TLS, template uintptr, len1 int32, flags int32) (r int32) + +//go:noescape +func Ymkstemp(tls *TLS, template uintptr) (r int32) + +//go:noescape +func Ymkstemp64(tls *TLS, template uintptr) (r int32) + +//go:noescape +func Ymkstemps(tls *TLS, template uintptr, len1 int32) (r int32) + +//go:noescape +func Ymkstemps64(tls *TLS, template uintptr, len1 int32) (r int32) + +//go:noescape +func Ymktemp(tls *TLS, template uintptr) (r uintptr) + +//go:noescape +func Ymktime(tls *TLS, tm uintptr) (r Ttime_t) + +//go:noescape +func Ymlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Ymlock2(tls *TLS, addr uintptr, len1 Tsize_t, flags uint32) (r int32) + +//go:noescape +func Ymlockall(tls *TLS, flags int32) (r int32) + +//go:noescape +func Ymmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) + +//go:noescape +func Ymmap64(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) + +//go:noescape +func Ymodf(tls *TLS, x float64, iptr uintptr) (r float64) + +//go:noescape +func Ymodff(tls *TLS, x float32, iptr uintptr) (r float32) + +//go:noescape +func Ymodfl(tls *TLS, x float64, iptr uintptr) (r1 float64) + +//go:noescape +func Ymount(tls *TLS, special uintptr, dir uintptr, fstype uintptr, flags uint64, data uintptr) (r int32) + +//go:noescape +func Ymprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) + +//go:noescape +func Ymrand48(tls *TLS) (r int64) + +//go:noescape +func Ymremap(tls *TLS, old_addr uintptr, old_len Tsize_t, new_len Tsize_t, flags int32, va uintptr) (r uintptr) + +//go:noescape +func Ymsgctl(tls *TLS, q int32, cmd int32, buf uintptr) (r1 int32) + +//go:noescape +func Ymsgget(tls *TLS, k Tkey_t, flag int32) (r int32) + +//go:noescape +func Ymsgrcv(tls *TLS, q int32, m uintptr, len1 Tsize_t, type1 int64, flag int32) (r Tssize_t) + +//go:noescape +func Ymsgsnd(tls *TLS, q int32, m uintptr, len1 Tsize_t, flag int32) (r int32) + +//go:noescape +func Ymsync(tls *TLS, start uintptr, len1 Tsize_t, flags int32) (r int32) + +//go:noescape +func Ymunlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Ymunlockall(tls *TLS) (r int32) + +//go:noescape +func Ymunmap(tls *TLS, start uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Yname_to_handle_at(tls *TLS, dirfd int32, pathname uintptr, handle uintptr, mount_id uintptr, flags int32) (r int32) + +//go:noescape +func Ynan(tls *TLS, s uintptr) (r float64) + +//go:noescape +func Ynanf(tls *TLS, s uintptr) (r float32) + +//go:noescape +func Ynanl(tls *TLS, s uintptr) (r float64) + +//go:noescape +func Ynanosleep(tls *TLS, req uintptr, rem uintptr) (r int32) + +//go:noescape +func Ynewlocale(tls *TLS, mask int32, name uintptr, loc Tlocale_t) (r Tlocale_t) + +//go:noescape +func Ynextafter(tls *TLS, x3 float64, y3 float64) (r float64) + +//go:noescape +func Ynextafterf(tls *TLS, x3 float32, y3 float32) (r float32) + +//go:noescape +func Ynextafterl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Ynexttoward(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Ynexttowardf(tls *TLS, x3 float32, y3 float64) (r float32) + +//go:noescape +func Ynexttowardl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Ynftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32) (r1 int32) + +//go:noescape +func __ccgo_abi0_nftw_1(_0 *TLS, _1 uintptr, _2 uintptr, _3 int32, _4 uintptr, __ccgo_fp uintptr) (_5 int32) + +func __ccgo_abiInternal_nftw_1(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr, _3 int32, _4 uintptr) (_5 int32) { + return __ccgo_abi0_nftw_1(_0, _1, _2, _3, _4, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Yngettext(tls *TLS, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) + +//go:noescape +func Ynice(tls *TLS, inc int32) (r int32) + +//go:noescape +func Ynl_langinfo(tls *TLS, item Tnl_item) (r uintptr) + +//go:noescape +func Ynl_langinfo_l(tls *TLS, item Tnl_item, loc Tlocale_t) (r uintptr) + +//go:noescape +func Ynrand48(tls *TLS, s uintptr) (r int64) + +//go:noescape +func Yns_get16(tls *TLS, cp uintptr) (r uint32) + +//go:noescape +func Yns_get32(tls *TLS, cp uintptr) (r uint64) + +//go:noescape +func Yns_initparse(tls *TLS, msg uintptr, msglen int32, handle uintptr) (r1 int32) + +//go:noescape +func Yns_name_uncompress(tls *TLS, msg uintptr, eom uintptr, src uintptr, dst uintptr, dstsiz Tsize_t) (r1 int32) + +//go:noescape +func Yns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uintptr) (r1 int32) + +//go:noescape +func Yns_put16(tls *TLS, s uint32, cp uintptr) + +//go:noescape +func Yns_put32(tls *TLS, l uint64, cp uintptr) + +//go:noescape +func Yns_skiprr(tls *TLS, ptr uintptr, eom uintptr, section Tns_sect, count int32) (r1 int32) + +//go:noescape +func Yntohl(tls *TLS, n Tuint32_t) (r Tuint32_t) + +//go:noescape +func Yntohs(tls *TLS, n Tuint16_t) (r Tuint16_t) + +//go:noescape +func Yobstack_free(t *TLS, obstack, obj uintptr) + +//go:noescape +func Yobstack_vprintf(t *TLS, obstack, template, va uintptr) (_2 int32) + +//go:noescape +func Yopen(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) + +//go:noescape +func Yopen64(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) + +//go:noescape +func Yopen_by_handle_at(tls *TLS, mount_fd int32, handle uintptr, flags int32) (r int32) + +//go:noescape +func Yopen_memstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) + +//go:noescape +func Yopen_wmemstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) + +//go:noescape +func Yopenat(tls *TLS, fd int32, filename uintptr, flags int32, va uintptr) (r int32) + +//go:noescape +func Yopendir(tls *TLS, name uintptr) (r uintptr) + +//go:noescape +func Yopenlog(tls *TLS, ident uintptr, opt int32, facility int32) + +//go:noescape +func Yopenpty(tls *TLS, pm uintptr, ps uintptr, name uintptr, tio uintptr, ws uintptr) (r int32) + +//go:noescape +func Ypathconf(tls *TLS, path uintptr, name int32) (r int64) + +//go:noescape +func Ypause(tls *TLS) (r int32) + +//go:noescape +func Ypclose(tls *TLS, f uintptr) (r1 int32) + +//go:noescape +func Yperror(tls *TLS, msg uintptr) + +//go:noescape +func Ypersonality(tls *TLS, persona uint64) (r int32) + +//go:noescape +func Ypipe(tls *TLS, fd uintptr) (r int32) + +//go:noescape +func Ypipe2(tls *TLS, fd uintptr, flag int32) (r int32) + +//go:noescape +func Ypivot_root(tls *TLS, new1 uintptr, old uintptr) (r int32) + +//go:noescape +func Ypoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) + +//go:noescape +func Ypopen(t *TLS, command, type1 uintptr) (_2 uintptr) + +//go:noescape +func Yposix_close(tls *TLS, fd int32, flags int32) (r int32) + +//go:noescape +func Yposix_fadvise(tls *TLS, fd int32, base Toff_t, len1 Toff_t, advice int32) (r int32) + +//go:noescape +func Yposix_fallocate(tls *TLS, fd int32, base Toff_t, len1 Toff_t) (r int32) + +//go:noescape +func Yposix_madvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) + +//go:noescape +func Yposix_openpt(tls *TLS, flags int32) (r1 int32) + +//go:noescape +func Yposix_spawn_file_actions_addchdir_np(tls *TLS, fa uintptr, path uintptr) (r int32) + +//go:noescape +func Yposix_spawn_file_actions_addclose(tls *TLS, fa uintptr, fd int32) (r int32) + +//go:noescape +func Yposix_spawn_file_actions_adddup2(tls *TLS, fa uintptr, srcfd int32, fd int32) (r int32) + +//go:noescape +func Yposix_spawn_file_actions_addfchdir_np(tls *TLS, fa uintptr, fd int32) (r int32) + +//go:noescape +func Yposix_spawn_file_actions_addopen(tls *TLS, fa uintptr, fd int32, path uintptr, flags int32, mode Tmode_t) (r int32) + +//go:noescape +func Yposix_spawn_file_actions_destroy(tls *TLS, fa uintptr) (r int32) + +//go:noescape +func Yposix_spawn_file_actions_init(tls *TLS, fa uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_destroy(tls *TLS, attr uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_getflags(tls *TLS, attr uintptr, flags uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_getpgroup(tls *TLS, attr uintptr, pgrp uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_getschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_getschedpolicy(tls *TLS, attr uintptr, policy uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_getsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_getsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_init(tls *TLS, attr uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_setflags(tls *TLS, attr uintptr, flags int16) (r int32) + +//go:noescape +func Yposix_spawnattr_setpgroup(tls *TLS, attr uintptr, pgrp Tpid_t) (r int32) + +//go:noescape +func Yposix_spawnattr_setschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_setschedpolicy(tls *TLS, attr uintptr, policy int32) (r int32) + +//go:noescape +func Yposix_spawnattr_setsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) + +//go:noescape +func Yposix_spawnattr_setsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) + +//go:noescape +func Ypow(tls *TLS, x1 float64, y1 float64) (r float64) + +//go:noescape +func Ypow10(tls *TLS, x float64) (r float64) + +//go:noescape +func Ypow10f(tls *TLS, x float32) (r float32) + +//go:noescape +func Ypow10l(tls *TLS, x float64) (r float64) + +//go:noescape +func Ypowf(tls *TLS, x1 float32, y1 float32) (r float32) + +//go:noescape +func Ypowl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32) + +//go:noescape +func Yprctl(tls *TLS, op int32, va uintptr) (r int32) + +//go:noescape +func Ypread(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) + +//go:noescape +func Ypreadv(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) + +//go:noescape +func Ypreadv2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) + +//go:noescape +func Yprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Yprlimit(tls *TLS, pid Tpid_t, resource int32, new_limit uintptr, old_limit uintptr) (r1 int32) + +//go:noescape +func Yprocess_vm_readv(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) + +//go:noescape +func Yprocess_vm_writev(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) + +//go:noescape +func Ypselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts uintptr, mask uintptr) (r int32) + +//go:noescape +func Ypsiginfo(tls *TLS, si uintptr, msg uintptr) + +//go:noescape +func Ypsignal(tls *TLS, sig int32, msg uintptr) + +//go:noescape +func Ypthread_atfork(tls *TLS, prepare, parent, child uintptr) (_2 int32) + +//go:noescape +func Ypthread_attr_destroy(tls *TLS, a uintptr) (_2 int32) + +//go:noescape +func Ypthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) (_3 int32) + +//go:noescape +func Ypthread_attr_init(tls *TLS, a uintptr) (_2 int32) + +//go:noescape +func Ypthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) (r int32) + +//go:noescape +func Ypthread_attr_setscope(tls *TLS, a uintptr, scope int32) (_3 int32) + +//go:noescape +func Ypthread_attr_setstacksize(tls *TLS, a uintptr, stacksite Tsize_t) (_3 int32) + +//go:noescape +func Ypthread_cleanup_pop(tls *TLS, run int32) + +//go:noescape +func Ypthread_cleanup_push(tls *TLS, f, x uintptr) + +//go:noescape +func Ypthread_cond_broadcast(tls *TLS, c uintptr) (_2 int32) + +//go:noescape +func Ypthread_cond_destroy(tls *TLS, c uintptr) (_2 int32) + +//go:noescape +func Ypthread_cond_init(tls *TLS, c, a uintptr) (_2 int32) + +//go:noescape +func Ypthread_cond_signal(tls *TLS, c uintptr) (_2 int32) + +//go:noescape +func Ypthread_cond_timedwait(tls *TLS, c, m, ts uintptr) (r int32) + +//go:noescape +func Ypthread_cond_wait(tls *TLS, c, m uintptr) (_2 int32) + +//go:noescape +func Ypthread_create(tls *TLS, res, attrp, entry, arg uintptr) (_2 int32) + +//go:noescape +func Ypthread_detach(tls *TLS, t uintptr) (_2 int32) + +//go:noescape +func Ypthread_equal(tls *TLS, t, u uintptr) (_2 int32) + +//go:noescape +func Ypthread_exit(tls *TLS, result uintptr) + +//go:noescape +func Ypthread_getspecific(tls *TLS, k Tpthread_key_t) (_2 uintptr) + +//go:noescape +func Ypthread_join(tls *TLS, t Tpthread_t, res uintptr) (r int32) + +//go:noescape +func Ypthread_key_create(tls *TLS, k uintptr, dtor uintptr) (_3 int32) + +//go:noescape +func Ypthread_key_delete(tls *TLS, k Tpthread_key_t) (_2 int32) + +//go:noescape +func Ypthread_mutex_destroy(tls *TLS, m uintptr) (_2 int32) + +//go:noescape +func Ypthread_mutex_init(tls *TLS, m, a uintptr) (_2 int32) + +//go:noescape +func Ypthread_mutex_lock(tls *TLS, m uintptr) (_2 int32) + +//go:noescape +func Ypthread_mutex_trylock(tls *TLS, m uintptr) (_2 int32) + +//go:noescape +func Ypthread_mutex_unlock(tls *TLS, m uintptr) (_2 int32) + +//go:noescape +func Ypthread_mutexattr_destroy(tls *TLS, a uintptr) (_2 int32) + +//go:noescape +func Ypthread_mutexattr_init(tls *TLS, a uintptr) (_2 int32) + +//go:noescape +func Ypthread_mutexattr_settype(tls *TLS, a uintptr, typ int32) (_3 int32) + +//go:noescape +func Ypthread_self(tls *TLS) (_1 uintptr) + +//go:noescape +func Ypthread_setcancelstate(tls *TLS, new int32, old uintptr) (_3 int32) + +//go:noescape +func Ypthread_setspecific(tls *TLS, k Tpthread_key_t, x uintptr) (_3 int32) + +//go:noescape +func Ypthread_sigmask(tls *TLS, now int32, set, old uintptr) (_3 int32) + +//go:noescape +func Yptrace(tls *TLS, req int32, va uintptr) (r int64) + +//go:noescape +func Yptsname(tls *TLS, fd int32) (r uintptr) + +//go:noescape +func Yptsname_r(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Yputc(tls *TLS, c1 int32, f1 uintptr) (r int32) + +//go:noescape +func Yputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) + +//go:noescape +func Yputchar(tls *TLS, c1 int32) (r int32) + +//go:noescape +func Yputchar_unlocked(tls *TLS, c int32) (r int32) + +//go:noescape +func Yputenv(tls *TLS, s uintptr) (r int32) + +//go:noescape +func Yputgrent(tls *TLS, gr uintptr, f uintptr) (r1 int32) + +//go:noescape +func Yputpwent(tls *TLS, pw uintptr, f uintptr) (r int32) + +//go:noescape +func Yputs(tls *TLS, s uintptr) (r1 int32) + +//go:noescape +func Yputspent(tls *TLS, sp uintptr, f uintptr) (r int32) + +//go:noescape +func Ypututline(tls *TLS, ut uintptr) (r uintptr) + +//go:noescape +func Ypututxline(tls *TLS, ut uintptr) (r uintptr) + +//go:noescape +func Yputw(tls *TLS, _x int32, f uintptr) (r int32) + +//go:noescape +func Yputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) + +//go:noescape +func Yputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) + +//go:noescape +func Yputwchar(tls *TLS, c Twchar_t) (r Twint_t) + +//go:noescape +func Yputwchar_unlocked(tls *TLS, c Twchar_t) (r Twint_t) + +//go:noescape +func Ypwrite(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) + +//go:noescape +func Ypwritev(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) + +//go:noescape +func Ypwritev2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) + +//go:noescape +func Yqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) + +//go:noescape +func __ccgo_abi0_qsort_3(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_qsort_3(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0_qsort_3(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Yqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr) + +//go:noescape +func __ccgo_abi0_qsort_r_3(_0 *TLS, _1 uintptr, _2 uintptr, _3 uintptr, __ccgo_fp uintptr) (_4 int32) + +func __ccgo_abiInternal_qsort_r_3(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr, _3 uintptr) (_4 int32) { + return __ccgo_abi0_qsort_r_3(_0, _1, _2, _3, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Yquick_exit(tls *TLS, code int32) + +//go:noescape +func Yquotactl(tls *TLS, cmd int32, special uintptr, id int32, addr uintptr) (r int32) + +//go:noescape +func Yraise(tls *TLS, sig int32) (r int32) + +//go:noescape +func Yrand(tls *TLS) (r int32) + +//go:noescape +func Yrand_r(tls *TLS, seed uintptr) (r int32) + +//go:noescape +func Yrandom(tls *TLS) (r int64) + +//go:noescape +func Yrandom_r(t *TLS, buf, result uintptr) (_2 int32) + +//go:noescape +func Yread(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) + +//go:noescape +func Yreadahead(tls *TLS, fd int32, pos Toff_t, len1 Tsize_t) (r Tssize_t) + +//go:noescape +func Yreaddir(tls *TLS, dir uintptr) (r uintptr) + +//go:noescape +func Yreaddir64(tls *TLS, dir uintptr) (r uintptr) + +//go:noescape +func Yreaddir_r(tls *TLS, dir uintptr, buf uintptr, result uintptr) (r int32) + +//go:noescape +func Yreadlink(tls *TLS, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) + +//go:noescape +func Yreadlinkat(tls *TLS, fd int32, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) + +//go:noescape +func Yreadv(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) + +//go:noescape +func Yrealloc(tls *TLS, p uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Yreallocarray(tls *TLS, ptr uintptr, m Tsize_t, n Tsize_t) (r uintptr) + +//go:noescape +func Yrealpath(tls *TLS, filename uintptr, resolved uintptr) (r uintptr) + +//go:noescape +func Yreboot(tls *TLS, type1 int32) (r int32) + +//go:noescape +func Yrecv(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) + +//go:noescape +func Yrecvfrom(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen uintptr) (r1 Tssize_t) + +//go:noescape +func Yrecvmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32, timeout uintptr) (r int32) + +//go:noescape +func Yrecvmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r2 Tssize_t) + +//go:noescape +func Yregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) + +//go:noescape +func Yregerror(tls *TLS, e int32, preg uintptr, buf uintptr, size Tsize_t) (r Tsize_t) + +//go:noescape +func Yregexec(tls *TLS, preg uintptr, string1 uintptr, nmatch Tsize_t, pmatch uintptr, eflags int32) (r int32) + +//go:noescape +func Yregfree(tls *TLS, preg uintptr) + +//go:noescape +func Yremainder(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yremainderf(tls *TLS, x float32, y float32) (r float32) + +//go:noescape +func Yremainderl(tls *TLS, x float64, y float64) (r float64) + +//go:noescape +func Yremap_file_pages(tls *TLS, addr uintptr, size Tsize_t, prot int32, pgoff Tsize_t, flags int32) (r int32) + +//go:noescape +func Yremove(tls *TLS, path uintptr) (r1 int32) + +//go:noescape +func Yremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) + +//go:noescape +func Yremque(tls *TLS, element uintptr) + +//go:noescape +func Yremquo(tls *TLS, x float64, y float64, quo uintptr) (r float64) + +//go:noescape +func Yremquof(tls *TLS, x float32, y float32, quo uintptr) (r float32) + +//go:noescape +func Yremquol(tls *TLS, x float64, y float64, quo uintptr) (r float64) + +//go:noescape +func Yrename(tls *TLS, old uintptr, new1 uintptr) (r int32) + +//go:noescape +func Yrenameat(tls *TLS, oldfd int32, old uintptr, newfd int32, new1 uintptr) (r int32) + +//go:noescape +func Yrenameat2(t *TLS, olddirfd int32, oldpath uintptr, newdirfd int32, newpath uintptr, flags int32) (_6 int32) + +//go:noescape +func Yres_init(tls *TLS) (r int32) + +//go:noescape +func Yres_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, data uintptr, datalen int32, newrr uintptr, buf uintptr, buflen int32) (r int32) + +//go:noescape +func Yres_send(tls *TLS, _msg uintptr, _msglen int32, _answer uintptr, _anslen int32) (r int32) + +//go:noescape +func Yrewind(tls *TLS, f uintptr) + +//go:noescape +func Yrewinddir(tls *TLS, dir uintptr) + +//go:noescape +func Yrindex(tls *TLS, s uintptr, c int32) (r uintptr) + +//go:noescape +func Yrint(tls *TLS, x float64) (r float64) + +//go:noescape +func Yrintf(tls *TLS, x float32) (r float32) + +//go:noescape +func Yrintl(tls *TLS, x float64) (r float64) + +//go:noescape +func Yrmdir(tls *TLS, path uintptr) (r int32) + +//go:noescape +func Yround(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Yroundf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Yroundl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ysbrk(tls *TLS, inc Tintptr_t) (r uintptr) + +//go:noescape +func Yscalb(tls *TLS, x float64, fn float64) (r float64) + +//go:noescape +func Yscalbf(tls *TLS, x float32, fn float32) (r float32) + +//go:noescape +func Yscalbln(tls *TLS, x float64, n int64) (r float64) + +//go:noescape +func Yscalblnf(tls *TLS, x float32, n int64) (r float32) + +//go:noescape +func Yscalblnl(tls *TLS, x float64, n int64) (r float64) + +//go:noescape +func Yscalbn(tls *TLS, x float64, n int32) (r float64) + +//go:noescape +func Yscalbnf(tls *TLS, x float32, n int32) (r float32) + +//go:noescape +func Yscalbnl(tls *TLS, x float64, n int32) (r float64) + +//go:noescape +func Yscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_cmp uintptr) (r int32) + +//go:noescape +func __ccgo_abi0_scandir_2(_0 *TLS, _1 uintptr, __ccgo_fp uintptr) (_2 int32) + +func __ccgo_abiInternal_scandir_2(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr) (_2 int32) { + return __ccgo_abi0_scandir_2(_0, _1, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func __ccgo_abi0_scandir_3(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_scandir_3(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0_scandir_3(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Yscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Ysched_yield(tls *TLS) (_1 int32) + +//go:noescape +func Ysecure_getenv(tls *TLS, name uintptr) (r uintptr) + +//go:noescape +func Yseed48(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Yseekdir(tls *TLS, dir uintptr, off int64) + +//go:noescape +func Yselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, tv uintptr) (r int32) + +//go:noescape +func Ysemctl(tls *TLS, id int32, num int32, cmd int32, va uintptr) (r1 int32) + +//go:noescape +func Ysemget(tls *TLS, key Tkey_t, n int32, fl int32) (r int32) + +//go:noescape +func Ysemop(tls *TLS, id int32, buf uintptr, n Tsize_t) (r int32) + +//go:noescape +func Ysemtimedop(tls *TLS, id int32, buf uintptr, n Tsize_t, ts uintptr) (r int32) + +//go:noescape +func Ysend(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) + +//go:noescape +func Ysendfile(tls *TLS, out_fd int32, in_fd int32, ofs uintptr, count Tsize_t) (r Tssize_t) + +//go:noescape +func Ysendmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32) (r1 int32) + +//go:noescape +func Ysendmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r1 Tssize_t) + +//go:noescape +func Ysendto(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen Tsocklen_t) (r1 Tssize_t) + +//go:noescape +func Ysetbuf(tls *TLS, f uintptr, buf uintptr) + +//go:noescape +func Ysetbuffer(tls *TLS, f uintptr, buf uintptr, size Tsize_t) + +//go:noescape +func Ysetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Ysetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) (r int32) + +//go:noescape +func Ysetfsgid(tls *TLS, gid Tgid_t) (r int32) + +//go:noescape +func Ysetfsuid(tls *TLS, uid Tuid_t) (r int32) + +//go:noescape +func Ysetgid(tls *TLS, gid Tgid_t) (r int32) + +//go:noescape +func Ysetgrent(tls *TLS) + +//go:noescape +func Ysethostent(tls *TLS, x int32) + +//go:noescape +func Ysethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) + +//go:noescape +func Ysetitimer(tls *TLS, which int32, new1 uintptr, old uintptr) (r1 int32) + +//go:noescape +func Ysetjmp(t *TLS, env uintptr) (_2 int32) + +//go:noescape +func Ysetkey(tls *TLS, key uintptr) + +//go:noescape +func Ysetlinebuf(tls *TLS, f uintptr) + +//go:noescape +func Ysetlocale(tls *TLS, cat int32, name uintptr) (r uintptr) + +//go:noescape +func Ysetlogmask(tls *TLS, maskpri int32) (r int32) + +//go:noescape +func Ysetmntent(tls *TLS, name uintptr, mode uintptr) (r uintptr) + +//go:noescape +func Ysetnetent(tls *TLS, x int32) + +//go:noescape +func Ysetns(tls *TLS, fd int32, nstype int32) (r int32) + +//go:noescape +func Ysetpgid(tls *TLS, pid Tpid_t, pgid Tpid_t) (r int32) + +//go:noescape +func Ysetpgrp(tls *TLS) (r Tpid_t) + +//go:noescape +func Ysetpriority(tls *TLS, which int32, who Tid_t, prio int32) (r int32) + +//go:noescape +func Ysetprotoent(tls *TLS, stayopen int32) + +//go:noescape +func Ysetpwent(tls *TLS) + +//go:noescape +func Ysetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) + +//go:noescape +func Ysetrlimit64(tls *TLS, resource int32, rlim uintptr) (r int32) + +//go:noescape +func Ysetservent(tls *TLS, stayopen int32) + +//go:noescape +func Ysetsid(tls *TLS) (r Tpid_t) + +//go:noescape +func Ysetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen Tsocklen_t) (r2 int32) + +//go:noescape +func Ysetspent(tls *TLS) + +//go:noescape +func Ysetstate(tls *TLS, state uintptr) (r uintptr) + +//go:noescape +func Ysettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) + +//go:noescape +func Ysetuid(tls *TLS, uid Tuid_t) (r int32) + +//go:noescape +func Ysetusershell(tls *TLS) + +//go:noescape +func Ysetutent(tls *TLS) + +//go:noescape +func Ysetutxent(tls *TLS) + +//go:noescape +func Ysetvbuf(tls *TLS, f uintptr, buf uintptr, type1 int32, size Tsize_t) (r int32) + +//go:noescape +func Ysetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) + +//go:noescape +func Yshm_open(tls *TLS, name uintptr, flag int32, mode Tmode_t) (r int32) + +//go:noescape +func Yshm_unlink(tls *TLS, name uintptr) (r int32) + +//go:noescape +func Yshmat(tls *TLS, id int32, addr uintptr, flag int32) (r uintptr) + +//go:noescape +func Yshmctl(tls *TLS, id int32, cmd int32, buf uintptr) (r1 int32) + +//go:noescape +func Yshmdt(tls *TLS, addr uintptr) (r int32) + +//go:noescape +func Yshmget(tls *TLS, key Tkey_t, size Tsize_t, flag int32) (r int32) + +//go:noescape +func Yshutdown(tls *TLS, fd int32, how int32) (r1 int32) + +//go:noescape +func Ysigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r int32) + +//go:noescape +func Ysigaddset(tls *TLS, set uintptr, sig int32) (r int32) + +//go:noescape +func Ysigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) + +//go:noescape +func Ysigandset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) + +//go:noescape +func Ysigdelset(tls *TLS, set uintptr, sig int32) (r int32) + +//go:noescape +func Ysigemptyset(tls *TLS, set uintptr) (r int32) + +//go:noescape +func Ysigfillset(tls *TLS, set uintptr) (r int32) + +//go:noescape +func Ysigisemptyset(tls *TLS, set uintptr) (r int32) + +//go:noescape +func Ysigismember(tls *TLS, set uintptr, sig int32) (r int32) + +//go:noescape +func Ysignal(tls *TLS, signum int32, handler uintptr) (r uintptr) + +//go:noescape +func Ysignalfd(tls *TLS, fd int32, sigs uintptr, flags int32) (r int32) + +//go:noescape +func Ysignificand(tls *TLS, x float64) (r float64) + +//go:noescape +func Ysignificandf(tls *TLS, x float32) (r float32) + +//go:noescape +func Ysigorset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) + +//go:noescape +func Ysigpending(tls *TLS, set uintptr) (r int32) + +//go:noescape +func Ysigprocmask(tls *TLS, how int32, set uintptr, old uintptr) (r1 int32) + +//go:noescape +func Ysigqueue(tls *TLS, pid Tpid_t, sig int32, value Tsigval) (r1 int32) + +//go:noescape +func Ysigsuspend(tls *TLS, mask uintptr) (r int32) + +//go:noescape +func Ysigtimedwait(tls *TLS, mask uintptr, si uintptr, timeout uintptr) (r int32) + +//go:noescape +func Ysigwait(tls *TLS, mask uintptr, sig uintptr) (r int32) + +//go:noescape +func Ysigwaitinfo(tls *TLS, mask uintptr, si uintptr) (r int32) + +//go:noescape +func Ysin(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Ysincos(tls *TLS, x3 float64, sin uintptr, cos uintptr) + +//go:noescape +func Ysincosf(tls *TLS, x3 float32, sin uintptr, cos uintptr) + +//go:noescape +func Ysincosl(tls *TLS, x float64, sin uintptr, cos uintptr) + +//go:noescape +func Ysinf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Ysinh(tls *TLS, x float64) (r float64) + +//go:noescape +func Ysinhf(tls *TLS, x float32) (r float32) + +//go:noescape +func Ysinhl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ysinl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ysleep(tls *TLS, seconds uint32) (r uint32) + +//go:noescape +func Ysnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Ysockatmark(tls *TLS, s int32) (r int32) + +//go:noescape +func Ysocket(tls *TLS, domain int32, type1 int32, protocol int32) (r1 int32) + +//go:noescape +func Ysocketpair(tls *TLS, domain int32, type1 int32, protocol int32, fd uintptr) (r2 int32) + +//go:noescape +func Ysplice(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) + +//go:noescape +func Ysprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Ysqrt(tls *TLS, x1 float64) (r1 float64) + +//go:noescape +func Ysqrtf(tls *TLS, x1 float32) (r1 float32) + +//go:noescape +func Ysqrtl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ysrand(tls *TLS, s uint32) + +//go:noescape +func Ysrand48(tls *TLS, seed int64) + +//go:noescape +func Ysrandom(tls *TLS, seed uint32) + +//go:noescape +func Ysscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Ystat(tls *TLS, path uintptr, buf uintptr) (r int32) + +//go:noescape +func Ystat64(tls *TLS, path uintptr, buf uintptr) (r int32) + +//go:noescape +func Ystatvfs(tls *TLS, path uintptr, buf uintptr) (r int32) + +//go:noescape +func Ystatx(tls *TLS, dirfd int32, path uintptr, flags int32, mask uint32, stx uintptr) (r int32) + +//go:noescape +func Ystime(tls *TLS, t uintptr) (r int32) + +//go:noescape +func Ystpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) + +//go:noescape +func Ystpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ystrcasecmp(tls *TLS, _l uintptr, _r uintptr) (r1 int32) + +//go:noescape +func Ystrcasecmp_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) + +//go:noescape +func Ystrcasestr(tls *TLS, h uintptr, n uintptr) (r uintptr) + +//go:noescape +func Ystrcat(tls *TLS, dest uintptr, src uintptr) (r uintptr) + +//go:noescape +func Ystrchr(tls *TLS, s uintptr, c int32) (r1 uintptr) + +//go:noescape +func Ystrchrnul(tls *TLS, s uintptr, c int32) (r uintptr) + +//go:noescape +func Ystrcmp(tls *TLS, l uintptr, r uintptr) (r1 int32) + +//go:noescape +func Ystrcoll(tls *TLS, l uintptr, r uintptr) (r1 int32) + +//go:noescape +func Ystrcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) + +//go:noescape +func Ystrcpy(tls *TLS, dest uintptr, src uintptr) (r uintptr) + +//go:noescape +func Ystrcspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) + +//go:noescape +func Ystrdup(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Ystrerror(tls *TLS, e int32) (r uintptr) + +//go:noescape +func Ystrerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) + +//go:noescape +func Ystrerror_r(tls *TLS, err int32, buf uintptr, buflen Tsize_t) (r int32) + +//go:noescape +func Ystrfmon(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r Tssize_t) + +//go:noescape +func Ystrfmon_l(tls *TLS, s uintptr, n Tsize_t, loc Tlocale_t, fmt uintptr, va uintptr) (r Tssize_t) + +//go:noescape +func Ystrftime(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) + +//go:noescape +func Ystrftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) + +//go:noescape +func Ystrlcat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) + +//go:noescape +func Ystrlcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) + +//go:noescape +func Ystrlen(tls *TLS, s uintptr) (r Tsize_t) + +//go:noescape +func Ystrncasecmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) + +//go:noescape +func Ystrncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, loc Tlocale_t) (r1 int32) + +//go:noescape +func Ystrncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ystrncmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) + +//go:noescape +func Ystrncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ystrndup(tls *TLS, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ystrnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) + +//go:noescape +func Ystrpbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) + +//go:noescape +func Ystrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) + +//go:noescape +func Ystrrchr(tls *TLS, s uintptr, c int32) (r uintptr) + +//go:noescape +func Ystrsep(tls *TLS, str uintptr, sep uintptr) (r uintptr) + +//go:noescape +func Ystrsignal(tls *TLS, signum int32) (r uintptr) + +//go:noescape +func Ystrspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) + +//go:noescape +func Ystrstr(tls *TLS, h uintptr, n uintptr) (r uintptr) + +//go:noescape +func Ystrtod(tls *TLS, s uintptr, p uintptr) (r float64) + +//go:noescape +func Ystrtod_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) + +//go:noescape +func Ystrtof(tls *TLS, s uintptr, p uintptr) (r float32) + +//go:noescape +func Ystrtof_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float32) + +//go:noescape +func Ystrtoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) + +//go:noescape +func Ystrtok(tls *TLS, s uintptr, sep uintptr) (r uintptr) + +//go:noescape +func Ystrtok_r(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) + +//go:noescape +func Ystrtol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) + +//go:noescape +func Ystrtold(tls *TLS, s uintptr, p uintptr) (r float64) + +//go:noescape +func Ystrtold_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) + +//go:noescape +func Ystrtoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) + +//go:noescape +func Ystrtoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) + +//go:noescape +func Ystrtoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) + +//go:noescape +func Ystrtoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) + +//go:noescape +func Ystrverscmp(tls *TLS, l0 uintptr, r0 uintptr) (r1 int32) + +//go:noescape +func Ystrxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) + +//go:noescape +func Ystrxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) + +//go:noescape +func Yswab(tls *TLS, _src uintptr, _dest uintptr, n Tssize_t) + +//go:noescape +func Yswapoff(tls *TLS, path uintptr) (r int32) + +//go:noescape +func Yswapon(tls *TLS, path uintptr, flags int32) (r int32) + +//go:noescape +func Yswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Yswscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Ysymlink(tls *TLS, existing uintptr, new1 uintptr) (r int32) + +//go:noescape +func Ysymlinkat(tls *TLS, existing uintptr, fd int32, new1 uintptr) (r int32) + +//go:noescape +func Ysync(tls *TLS) + +//go:noescape +func Ysync_file_range(tls *TLS, fd int32, pos Toff_t, len1 Toff_t, flags uint32) (r int32) + +//go:noescape +func Ysyncfs(tls *TLS, fd int32) (r int32) + +//go:noescape +func Ysyscall(tls *TLS, n int64, va uintptr) (r int64) + +//go:noescape +func Ysysconf(tls *TLS, name int32) (r int64) + +//go:noescape +func Ysysctlbyname(t *TLS, name, oldp, oldlenp, newp uintptr, newlen Tsize_t) (_3 int32) + +//go:noescape +func Ysysinfo(tls *TLS, info uintptr) (r int32) + +//go:noescape +func Ysyslog(tls *TLS, priority int32, message uintptr, va uintptr) + +//go:noescape +func Ysystem(t *TLS, command uintptr) (_2 int32) + +//go:noescape +func Ytan(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Ytanf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Ytanh(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Ytanhf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Ytanhl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ytanl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ytcdrain(tls *TLS, fd int32) (r int32) + +//go:noescape +func Ytcflow(tls *TLS, fd int32, action int32) (r int32) + +//go:noescape +func Ytcflush(tls *TLS, fd int32, queue int32) (r int32) + +//go:noescape +func Ytcgetattr(tls *TLS, fd int32, tio uintptr) (r int32) + +//go:noescape +func Ytcgetpgrp(tls *TLS, fd int32) (r Tpid_t) + +//go:noescape +func Ytcgetsid(tls *TLS, fd int32) (r Tpid_t) + +//go:noescape +func Ytcgetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) + +//go:noescape +func Ytcsendbreak(tls *TLS, fd int32, dur int32) (r int32) + +//go:noescape +func Ytcsetattr(tls *TLS, fd int32, act int32, tio uintptr) (r int32) + +//go:noescape +func Ytcsetpgrp(tls *TLS, fd int32, pgrp Tpid_t) (r int32) + +//go:noescape +func Ytcsetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) + +//go:noescape +func Ytdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) + +//go:noescape +func __ccgo_abi0_tdelete_2(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_tdelete_2(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0_tdelete_2(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Ytdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) + +//go:noescape +func __ccgo_abi0_tdestroy_1(_0 *TLS, _1 uintptr, __ccgo_fp uintptr) + +func __ccgo_abiInternal_tdestroy_1(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr) { + __ccgo_abi0_tdestroy_1(_0, _1, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Ytee(tls *TLS, src int32, dest int32, len1 Tsize_t, flags uint32) (r Tssize_t) + +//go:noescape +func Ytelldir(tls *TLS, dir uintptr) (r int64) + +//go:noescape +func Ytempnam(tls *TLS, dir uintptr, pfx uintptr) (r1 uintptr) + +//go:noescape +func Ytextdomain(tls *TLS, domainname uintptr) (r uintptr) + +//go:noescape +func Ytfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) + +//go:noescape +func __ccgo_abi0_tfind_2(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_tfind_2(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0_tfind_2(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Ytgamma(tls *TLS, x3 float64) (r1 float64) + +//go:noescape +func Ytgammaf(tls *TLS, x float32) (r float32) + +//go:noescape +func Ytgammal(tls *TLS, x float64) (r float64) + +//go:noescape +func Ytime(tls *TLS, t uintptr) (r Ttime_t) + +//go:noescape +func Ytimegm(tls *TLS, tm uintptr) (r Ttime_t) + +//go:noescape +func Ytimer_delete(tls *TLS, t Ttimer_t) (r int32) + +//go:noescape +func Ytimer_getoverrun(tls *TLS, t Ttimer_t) (r int32) + +//go:noescape +func Ytimer_gettime(tls *TLS, t Ttimer_t, val uintptr) (r int32) + +//go:noescape +func Ytimer_settime(tls *TLS, t Ttimer_t, flags int32, val uintptr, old uintptr) (r int32) + +//go:noescape +func Ytimerfd_create(tls *TLS, clockid int32, flags int32) (r int32) + +//go:noescape +func Ytimerfd_gettime(tls *TLS, fd int32, cur uintptr) (r int32) + +//go:noescape +func Ytimerfd_settime(tls *TLS, fd int32, flags int32, new1 uintptr, old uintptr) (r int32) + +//go:noescape +func Ytimes(tls *TLS, tms uintptr) (r Tclock_t) + +//go:noescape +func Ytimespec_get(tls *TLS, ts uintptr, base int32) (r int32) + +//go:noescape +func Ytmpfile(tls *TLS) (r uintptr) + +//go:noescape +func Ytmpnam(tls *TLS, buf uintptr) (r1 uintptr) + +//go:noescape +func Ytoascii(tls *TLS, c int32) (r int32) + +//go:noescape +func Ytolower(tls *TLS, c int32) (r int32) + +//go:noescape +func Ytolower_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Ytoupper(tls *TLS, c int32) (r int32) + +//go:noescape +func Ytoupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) + +//go:noescape +func Ytowctrans(tls *TLS, wc Twint_t, trans Twctrans_t) (r Twint_t) + +//go:noescape +func Ytowctrans_l(tls *TLS, c Twint_t, t Twctrans_t, l Tlocale_t) (r Twint_t) + +//go:noescape +func Ytowlower(tls *TLS, wc Twint_t) (r Twint_t) + +//go:noescape +func Ytowlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) + +//go:noescape +func Ytowupper(tls *TLS, wc Twint_t) (r Twint_t) + +//go:noescape +func Ytowupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) + +//go:noescape +func Ytrunc(tls *TLS, x3 float64) (r float64) + +//go:noescape +func Ytruncate(tls *TLS, path uintptr, length Toff_t) (r int32) + +//go:noescape +func Ytruncf(tls *TLS, x3 float32) (r float32) + +//go:noescape +func Ytruncl(tls *TLS, x float64) (r float64) + +//go:noescape +func Ytsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) + +//go:noescape +func __ccgo_abi0_tsearch_2(_0 *TLS, _1 uintptr, _2 uintptr, __ccgo_fp uintptr) (_3 int32) + +func __ccgo_abiInternal_tsearch_2(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 uintptr) (_3 int32) { + return __ccgo_abi0_tsearch_2(_0, _1, _2, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Yttyname(tls *TLS, fd int32) (r uintptr) + +//go:noescape +func Yttyname_r(tls *TLS, fd int32, name uintptr, size Tsize_t) (r int32) + +//go:noescape +func Ytwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) + +//go:noescape +func __ccgo_abi0_twalk_1(_0 *TLS, _1 uintptr, _2 int32, _3 int32, __ccgo_fp uintptr) + +func __ccgo_abiInternal_twalk_1(tls *TLS, dest, abi0CodePtr uintptr) { + f := func(_0 *TLS, _1 uintptr, _2 int32, _3 int32) { + __ccgo_abi0_twalk_1(_0, _1, _2, _3, abi0CodePtr) + } + *(*[2]uintptr)(unsafe.Pointer(dest)) = *(*[2]uintptr)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&f)))) +} + +//go:noescape +func Ytzset(tls *TLS) + +//go:noescape +func Yualarm(tls *TLS, value uint32, interval uint32) (r uint32) + +//go:noescape +func Yulckpwdf(tls *TLS) (r int32) + +//go:noescape +func Yulimit(tls *TLS, cmd int32, va uintptr) (r int64) + +//go:noescape +func Yumask(tls *TLS, mode Tmode_t) (r Tmode_t) + +//go:noescape +func Yumount(tls *TLS, special uintptr) (r int32) + +//go:noescape +func Yumount2(tls *TLS, special uintptr, flags int32) (r int32) + +//go:noescape +func Yuname(tls *TLS, uts uintptr) (r int32) + +//go:noescape +func Yungetc(tls *TLS, c int32, f uintptr) (r int32) + +//go:noescape +func Yungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) + +//go:noescape +func Yunlink(tls *TLS, path uintptr) (r int32) + +//go:noescape +func Yunlinkat(tls *TLS, fd int32, path uintptr, flag int32) (r int32) + +//go:noescape +func Yunlockpt(tls *TLS, fd int32) (r int32) + +//go:noescape +func Yunsetenv(tls *TLS, name uintptr) (r int32) + +//go:noescape +func Yunshare(tls *TLS, flags int32) (r int32) + +//go:noescape +func Yupdwtmp(tls *TLS, f uintptr, u uintptr) + +//go:noescape +func Yupdwtmpx(tls *TLS, f uintptr, u uintptr) + +//go:noescape +func Yuselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) + +//go:noescape +func Yusleep(tls *TLS, useconds uint32) (r int32) + +//go:noescape +func Yutime(tls *TLS, path uintptr, times uintptr) (r int32) + +//go:noescape +func Yutimensat(tls *TLS, fd int32, path uintptr, times uintptr, flags int32) (r1 int32) + +//go:noescape +func Yutimes(tls *TLS, path uintptr, times uintptr) (r int32) + +//go:noescape +func Yuuid_copy(t *TLS, dst, src uintptr) + +//go:noescape +func Yuuid_generate_random(t *TLS, out uintptr) + +//go:noescape +func Yuuid_parse(t *TLS, in uintptr, uu uintptr) (_3 int32) + +//go:noescape +func Yuuid_unparse(t *TLS, uu, out uintptr) + +//go:noescape +func Yvasprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvdprintf(tls *TLS, fd int32, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yverr(tls *TLS, status int32, fmt uintptr, ap Tva_list) + +//go:noescape +func Yverrx(tls *TLS, status int32, fmt uintptr, ap Tva_list) + +//go:noescape +func Yversionsort(tls *TLS, a uintptr, b uintptr) (r int32) + +//go:noescape +func Yvfork(tls *TLS) (r Tpid_t) + +//go:noescape +func Yvfprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvfwprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvhangup(tls *TLS) (r int32) + +//go:noescape +func Yvmsplice(tls *TLS, fd int32, iov uintptr, cnt Tsize_t, flags uint32) (r Tssize_t) + +//go:noescape +func Yvprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvsnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvsprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvsscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r1 int32) + +//go:noescape +func Yvswscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvwarn(tls *TLS, fmt uintptr, ap Tva_list) + +//go:noescape +func Yvwarnx(tls *TLS, fmt uintptr, ap Tva_list) + +//go:noescape +func Yvwprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Yvwscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) + +//go:noescape +func Ywait(tls *TLS, status uintptr) (r Tpid_t) + +//go:noescape +func Ywait3(tls *TLS, status uintptr, options int32, usage uintptr) (r Tpid_t) + +//go:noescape +func Ywait4(tls *TLS, pid Tpid_t, status uintptr, options int32, ru uintptr) (r1 Tpid_t) + +//go:noescape +func Ywaitid(tls *TLS, type1 Tidtype_t, id Tid_t, info uintptr, options int32) (r int32) + +//go:noescape +func Ywaitpid(tls *TLS, pid Tpid_t, status uintptr, options int32) (r Tpid_t) + +//go:noescape +func Ywarn(tls *TLS, fmt uintptr, va uintptr) + +//go:noescape +func Ywarnx(tls *TLS, fmt uintptr, va uintptr) + +//go:noescape +func Ywcpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) + +//go:noescape +func Ywcpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ywcrtomb(tls *TLS, s uintptr, wc Twchar_t, st uintptr) (r Tsize_t) + +//go:noescape +func Ywcscasecmp(tls *TLS, l uintptr, r uintptr) (r1 int32) + +//go:noescape +func Ywcscasecmp_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) + +//go:noescape +func Ywcscat(tls *TLS, dest uintptr, src uintptr) (r uintptr) + +//go:noescape +func Ywcschr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) + +//go:noescape +func Ywcscmp(tls *TLS, l uintptr, r uintptr) (r1 int32) + +//go:noescape +func Ywcscoll(tls *TLS, l uintptr, r uintptr) (r1 int32) + +//go:noescape +func Ywcscoll_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) + +//go:noescape +func Ywcscpy(tls *TLS, d uintptr, s uintptr) (r uintptr) + +//go:noescape +func Ywcscspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) + +//go:noescape +func Ywcsdup(tls *TLS, s uintptr) (r uintptr) + +//go:noescape +func Ywcsftime(tls *TLS, wcs uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) + +//go:noescape +func Ywcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) + +//go:noescape +func Ywcslen(tls *TLS, s uintptr) (r Tsize_t) + +//go:noescape +func Ywcsncasecmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) + +//go:noescape +func Ywcsncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, locale Tlocale_t) (r1 int32) + +//go:noescape +func Ywcsncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ywcsncmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) + +//go:noescape +func Ywcsncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ywcsnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) + +//go:noescape +func Ywcsnrtombs(tls *TLS, dst uintptr, wcs uintptr, wn Tsize_t, n Tsize_t, st uintptr) (r Tsize_t) + +//go:noescape +func Ywcspbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) + +//go:noescape +func Ywcsrchr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) + +//go:noescape +func Ywcsrtombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t, st uintptr) (r Tsize_t) + +//go:noescape +func Ywcsspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) + +//go:noescape +func Ywcsstr(tls *TLS, h uintptr, n uintptr) (r uintptr) + +//go:noescape +func Ywcstod(tls *TLS, s uintptr, p uintptr) (r float64) + +//go:noescape +func Ywcstof(tls *TLS, s uintptr, p uintptr) (r float32) + +//go:noescape +func Ywcstoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) + +//go:noescape +func Ywcstok(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) + +//go:noescape +func Ywcstol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) + +//go:noescape +func Ywcstold(tls *TLS, s uintptr, p uintptr) (r float64) + +//go:noescape +func Ywcstoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) + +//go:noescape +func Ywcstombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t) (r Tsize_t) + +//go:noescape +func Ywcstoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) + +//go:noescape +func Ywcstoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) + +//go:noescape +func Ywcstoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) + +//go:noescape +func Ywcswcs(tls *TLS, haystack uintptr, needle uintptr) (r uintptr) + +//go:noescape +func Ywcswidth(tls *TLS, wcs uintptr, n Tsize_t) (r int32) + +//go:noescape +func Ywcsxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) + +//go:noescape +func Ywcsxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) + +//go:noescape +func Ywctob(tls *TLS, c Twint_t) (r int32) + +//go:noescape +func Ywctomb(tls *TLS, s uintptr, wc Twchar_t) (r int32) + +//go:noescape +func Ywctrans(tls *TLS, class uintptr) (r Twctrans_t) + +//go:noescape +func Ywctrans_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctrans_t) + +//go:noescape +func Ywctype(tls *TLS, s uintptr) (r Twctype_t) + +//go:noescape +func Ywctype_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctype_t) + +//go:noescape +func Ywcwidth(tls *TLS, wc Twchar_t) (r int32) + +//go:noescape +func Ywmemchr(tls *TLS, s uintptr, c Twchar_t, n Tsize_t) (r uintptr) + +//go:noescape +func Ywmemcmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) + +//go:noescape +func Ywmemcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ywmemmove(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) + +//go:noescape +func Ywmemset(tls *TLS, d uintptr, c Twchar_t, n Tsize_t) (r uintptr) + +//go:noescape +func Ywprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Ywrite(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) + +//go:noescape +func Ywritev(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) + +//go:noescape +func Ywscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) + +//go:noescape +func Yy0(tls *TLS, x float64) (r float64) + +//go:noescape +func Yy0f(tls *TLS, x float32) (r float32) + +//go:noescape +func Yy1(tls *TLS, x float64) (r float64) + +//go:noescape +func Yy1f(tls *TLS, x float32) (r float32) + +//go:noescape +func Yyn(tls *TLS, n int32, x float64) (r float64) + +//go:noescape +func Yynf(tls *TLS, n int32, x float32) (r float32) diff --git a/vendor/modernc.org/libc/abi0_linux_amd64.s b/vendor/modernc.org/libc/abi0_linux_amd64.s new file mode 100644 index 000000000..0f896ff25 --- /dev/null +++ b/vendor/modernc.org/libc/abi0_linux_amd64.s @@ -0,0 +1,28747 @@ +// Code generated for linux/amd64 by 'qbecc --abi0wrap .', DO NOT EDIT. + +#include "funcdata.h" +#include "textflag.h" + +// func Y_Exit(tls *TLS, ec int32) +TEXT ·Y_Exit(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ec+8(FP), AX + MOVL AX, 8(SP) + CALL ·X_Exit(SB) + RET + +// func Y_IO_feof_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Y_IO_feof_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X_IO_feof_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y_IO_ferror_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Y_IO_ferror_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X_IO_ferror_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y_IO_getc(tls *TLS, f1 uintptr) (r int32) +TEXT ·Y_IO_getc(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X_IO_getc(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y_IO_getc_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Y_IO_getc_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X_IO_getc_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y_IO_putc(tls *TLS, c1 int32, f1 uintptr) (r int32) +TEXT ·Y_IO_putc(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c1+8(FP), AX + MOVL AX, 8(SP) + MOVQ f1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X_IO_putc(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y_IO_putc_unlocked(tls *TLS, c int32, f uintptr) (r int32) +TEXT ·Y_IO_putc_unlocked(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X_IO_putc_unlocked(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y___errno_location(tls *TLS) (r uintptr) +TEXT ·Y___errno_location(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X___errno_location(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__aio_close(tls *TLS, fd int32) (_2 int32) +TEXT ·Y__aio_close(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__aio_close(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__asctime_r(tls *TLS, tm uintptr, buf uintptr) (r uintptr) +TEXT ·Y__asctime_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tm+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__asctime_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__assert_fail(tls *TLS, expr uintptr, file uintptr, line int32, func1 uintptr) +TEXT ·Y__assert_fail(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ expr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ file+16(FP), AX + MOVQ AX, 16(SP) + MOVL line+24(FP), AX + MOVL AX, 24(SP) + MOVQ func1+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__assert_fail(SB) + RET + +// func Y__atomic_compare_exchangeInt16(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) +TEXT ·Y__atomic_compare_exchangeInt16(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL weak+32(FP), AX + MOVL AX, 32(SP) + MOVL success+36(FP), AX + MOVL AX, 36(SP) + MOVL failure+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__atomic_compare_exchangeInt16(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__atomic_compare_exchangeInt32(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) +TEXT ·Y__atomic_compare_exchangeInt32(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL weak+32(FP), AX + MOVL AX, 32(SP) + MOVL success+36(FP), AX + MOVL AX, 36(SP) + MOVL failure+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__atomic_compare_exchangeInt32(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__atomic_compare_exchangeInt64(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) +TEXT ·Y__atomic_compare_exchangeInt64(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL weak+32(FP), AX + MOVL AX, 32(SP) + MOVL success+36(FP), AX + MOVL AX, 36(SP) + MOVL failure+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__atomic_compare_exchangeInt64(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__atomic_compare_exchangeInt8(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) +TEXT ·Y__atomic_compare_exchangeInt8(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL weak+32(FP), AX + MOVL AX, 32(SP) + MOVL success+36(FP), AX + MOVL AX, 36(SP) + MOVL failure+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__atomic_compare_exchangeInt8(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__atomic_compare_exchangeUint16(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) +TEXT ·Y__atomic_compare_exchangeUint16(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL weak+32(FP), AX + MOVL AX, 32(SP) + MOVL success+36(FP), AX + MOVL AX, 36(SP) + MOVL failure+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__atomic_compare_exchangeUint16(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__atomic_compare_exchangeUint32(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) +TEXT ·Y__atomic_compare_exchangeUint32(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL weak+32(FP), AX + MOVL AX, 32(SP) + MOVL success+36(FP), AX + MOVL AX, 36(SP) + MOVL failure+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__atomic_compare_exchangeUint32(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__atomic_compare_exchangeUint64(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) +TEXT ·Y__atomic_compare_exchangeUint64(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL weak+32(FP), AX + MOVL AX, 32(SP) + MOVL success+36(FP), AX + MOVL AX, 36(SP) + MOVL failure+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__atomic_compare_exchangeUint64(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__atomic_compare_exchangeUint8(t *TLS, ptr, expected, desired uintptr, weak, success, failure int32) (_3 int32) +TEXT ·Y__atomic_compare_exchangeUint8(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL weak+32(FP), AX + MOVL AX, 32(SP) + MOVL success+36(FP), AX + MOVL AX, 36(SP) + MOVL failure+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__atomic_compare_exchangeUint8(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__atomic_exchangeInt16(t *TLS, ptr, val, ret uintptr, _ int32) +TEXT ·Y__atomic_exchangeInt16(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ret+24(FP), AX + MOVQ AX, 24(SP) + MOVL _+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__atomic_exchangeInt16(SB) + RET + +// func Y__atomic_exchangeInt32(t *TLS, ptr, val, ret uintptr, _ int32) +TEXT ·Y__atomic_exchangeInt32(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ret+24(FP), AX + MOVQ AX, 24(SP) + MOVL _+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__atomic_exchangeInt32(SB) + RET + +// func Y__atomic_exchangeInt64(t *TLS, ptr, val, ret uintptr, _ int32) +TEXT ·Y__atomic_exchangeInt64(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ret+24(FP), AX + MOVQ AX, 24(SP) + MOVL _+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__atomic_exchangeInt64(SB) + RET + +// func Y__atomic_exchangeInt8(t *TLS, ptr, val, ret uintptr, _ int32) +TEXT ·Y__atomic_exchangeInt8(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ret+24(FP), AX + MOVQ AX, 24(SP) + MOVL _+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__atomic_exchangeInt8(SB) + RET + +// func Y__atomic_exchangeUint16(t *TLS, ptr, val, ret uintptr, _ int32) +TEXT ·Y__atomic_exchangeUint16(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ret+24(FP), AX + MOVQ AX, 24(SP) + MOVL _+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__atomic_exchangeUint16(SB) + RET + +// func Y__atomic_exchangeUint32(t *TLS, ptr, val, ret uintptr, _ int32) +TEXT ·Y__atomic_exchangeUint32(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ret+24(FP), AX + MOVQ AX, 24(SP) + MOVL _+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__atomic_exchangeUint32(SB) + RET + +// func Y__atomic_exchangeUint64(t *TLS, ptr, val, ret uintptr, _ int32) +TEXT ·Y__atomic_exchangeUint64(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ret+24(FP), AX + MOVQ AX, 24(SP) + MOVL _+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__atomic_exchangeUint64(SB) + RET + +// func Y__atomic_exchangeUint8(t *TLS, ptr, val, ret uintptr, _ int32) +TEXT ·Y__atomic_exchangeUint8(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ret+24(FP), AX + MOVQ AX, 24(SP) + MOVL _+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__atomic_exchangeUint8(SB) + RET + +// func Y__atomic_fetch_addInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__atomic_fetch_addInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_addInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_addInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__atomic_fetch_addInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_addInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_addInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__atomic_fetch_addInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_addInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_addInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__atomic_fetch_addInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_addInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_addUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__atomic_fetch_addUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_addUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_addUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__atomic_fetch_addUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_addUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_addUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__atomic_fetch_addUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_addUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_addUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__atomic_fetch_addUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_addUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_andInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__atomic_fetch_andInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_andInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_andInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__atomic_fetch_andInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_andInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_andInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__atomic_fetch_andInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_andInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_andInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__atomic_fetch_andInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_andInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_andUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__atomic_fetch_andUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_andUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_andUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__atomic_fetch_andUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_andUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_andUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__atomic_fetch_andUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_andUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_andUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__atomic_fetch_andUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_andUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_orInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__atomic_fetch_orInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_orInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_orInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__atomic_fetch_orInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_orInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_orInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__atomic_fetch_orInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_orInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_orInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__atomic_fetch_orInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_orInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_orUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__atomic_fetch_orUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_orUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_orUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__atomic_fetch_orUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_orUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_orUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__atomic_fetch_orUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_orUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_orUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__atomic_fetch_orUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_orUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_subInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__atomic_fetch_subInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_subInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_subInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__atomic_fetch_subInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_subInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_subInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__atomic_fetch_subInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_subInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_subInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__atomic_fetch_subInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_subInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_subUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__atomic_fetch_subUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_subUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_subUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__atomic_fetch_subUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_subUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_subUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__atomic_fetch_subUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_subUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_subUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__atomic_fetch_subUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_subUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_xorInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__atomic_fetch_xorInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_xorInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_xorInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__atomic_fetch_xorInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_xorInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_xorInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__atomic_fetch_xorInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_xorInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_xorInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__atomic_fetch_xorInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_xorInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_fetch_xorUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__atomic_fetch_xorUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_xorUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__atomic_fetch_xorUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__atomic_fetch_xorUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_xorUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__atomic_fetch_xorUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__atomic_fetch_xorUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_fetch_xorUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__atomic_fetch_xorUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__atomic_fetch_xorUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__atomic_fetch_xorUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__atomic_loadInt16(t *TLS, ptr, ret uintptr, memorder int32) +TEXT ·Y__atomic_loadInt16(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ret+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_loadInt16(SB) + RET + +// func Y__atomic_loadInt32(t *TLS, ptr, ret uintptr, memorder int32) +TEXT ·Y__atomic_loadInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ret+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_loadInt32(SB) + RET + +// func Y__atomic_loadInt64(t *TLS, ptr, ret uintptr, memorder int32) +TEXT ·Y__atomic_loadInt64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ret+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_loadInt64(SB) + RET + +// func Y__atomic_loadInt8(t *TLS, ptr, ret uintptr, memorder int32) +TEXT ·Y__atomic_loadInt8(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ret+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_loadInt8(SB) + RET + +// func Y__atomic_loadUint16(t *TLS, ptr, ret uintptr, memorder int32) +TEXT ·Y__atomic_loadUint16(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ret+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_loadUint16(SB) + RET + +// func Y__atomic_loadUint32(t *TLS, ptr, ret uintptr, memorder int32) +TEXT ·Y__atomic_loadUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ret+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_loadUint32(SB) + RET + +// func Y__atomic_loadUint64(t *TLS, ptr, ret uintptr, memorder int32) +TEXT ·Y__atomic_loadUint64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ret+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_loadUint64(SB) + RET + +// func Y__atomic_loadUint8(t *TLS, ptr, ret uintptr, memorder int32) +TEXT ·Y__atomic_loadUint8(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ret+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_loadUint8(SB) + RET + +// func Y__atomic_storeInt16(t *TLS, ptr, val uintptr, memorder int32) +TEXT ·Y__atomic_storeInt16(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_storeInt16(SB) + RET + +// func Y__atomic_storeInt32(t *TLS, ptr, val uintptr, memorder int32) +TEXT ·Y__atomic_storeInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_storeInt32(SB) + RET + +// func Y__atomic_storeInt64(t *TLS, ptr, val uintptr, memorder int32) +TEXT ·Y__atomic_storeInt64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_storeInt64(SB) + RET + +// func Y__atomic_storeInt8(t *TLS, ptr, val uintptr, memorder int32) +TEXT ·Y__atomic_storeInt8(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_storeInt8(SB) + RET + +// func Y__atomic_storeUint16(t *TLS, ptr, val uintptr, memorder int32) +TEXT ·Y__atomic_storeUint16(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_storeUint16(SB) + RET + +// func Y__atomic_storeUint32(t *TLS, ptr, val uintptr, memorder int32) +TEXT ·Y__atomic_storeUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_storeUint32(SB) + RET + +// func Y__atomic_storeUint64(t *TLS, ptr, val uintptr, memorder int32) +TEXT ·Y__atomic_storeUint64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_storeUint64(SB) + RET + +// func Y__atomic_storeUint8(t *TLS, ptr, val uintptr, memorder int32) +TEXT ·Y__atomic_storeUint8(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__atomic_storeUint8(SB) + RET + +// func Y__block_all_sigs(tls *TLS, set uintptr) +TEXT ·Y__block_all_sigs(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__block_all_sigs(SB) + RET + +// func Y__block_app_sigs(tls *TLS, set uintptr) +TEXT ·Y__block_app_sigs(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__block_app_sigs(SB) + RET + +// func Y__builtin___memcpy_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (r uintptr) +TEXT ·Y__builtin___memcpy_chk(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ os+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__builtin___memcpy_chk(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Y__builtin___memmove_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (_3 uintptr) +TEXT ·Y__builtin___memmove_chk(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ os+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__builtin___memmove_chk(SB) + MOVQ 40(SP), AX + MOVQ AX, _3+40(FP) + RET + +// func Y__builtin___memset_chk(t *TLS, s uintptr, c int32, n, os Tsize_t) (_4 uintptr) +TEXT ·Y__builtin___memset_chk(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ os+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__builtin___memset_chk(SB) + MOVQ 40(SP), AX + MOVQ AX, _4+40(FP) + RET + +// func Y__builtin___snprintf_chk(t *TLS, str uintptr, maxlen Tsize_t, flag int32, os Tsize_t, format, args uintptr) (r int32) +TEXT ·Y__builtin___snprintf_chk(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ str+8(FP), AX + MOVQ AX, 8(SP) + MOVQ maxlen+16(FP), AX + MOVQ AX, 16(SP) + MOVL flag+24(FP), AX + MOVL AX, 24(SP) + MOVQ os+32(FP), AX + MOVQ AX, 32(SP) + MOVQ format+40(FP), AX + MOVQ AX, 40(SP) + MOVQ args+48(FP), AX + MOVQ AX, 48(SP) + CALL ·X__builtin___snprintf_chk(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Y__builtin___sprintf_chk(t *TLS, s uintptr, flag int32, os Tsize_t, format, args uintptr) (r int32) +TEXT ·Y__builtin___sprintf_chk(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL flag+16(FP), AX + MOVL AX, 16(SP) + MOVQ os+24(FP), AX + MOVQ AX, 24(SP) + MOVQ format+32(FP), AX + MOVQ AX, 32(SP) + MOVQ args+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__builtin___sprintf_chk(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Y__builtin___strcat_chk(t *TLS, dest, src uintptr, os Tsize_t) (r uintptr) +TEXT ·Y__builtin___strcat_chk(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ os+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin___strcat_chk(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__builtin___strcpy_chk(t *TLS, dest, src uintptr, os Tsize_t) (_3 uintptr) +TEXT ·Y__builtin___strcpy_chk(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ os+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin___strcpy_chk(SB) + MOVQ 32(SP), AX + MOVQ AX, _3+32(FP) + RET + +// func Y__builtin___strncpy_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (r uintptr) +TEXT ·Y__builtin___strncpy_chk(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ os+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__builtin___strncpy_chk(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Y__builtin___vsnprintf_chk(t *TLS, str uintptr, maxlen Tsize_t, flag int32, os Tsize_t, format, args uintptr) (r int32) +TEXT ·Y__builtin___vsnprintf_chk(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ str+8(FP), AX + MOVQ AX, 8(SP) + MOVQ maxlen+16(FP), AX + MOVQ AX, 16(SP) + MOVL flag+24(FP), AX + MOVL AX, 24(SP) + MOVQ os+32(FP), AX + MOVQ AX, 32(SP) + MOVQ format+40(FP), AX + MOVQ AX, 40(SP) + MOVQ args+48(FP), AX + MOVQ AX, 48(SP) + CALL ·X__builtin___vsnprintf_chk(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Y__builtin_abort(t *TLS) +TEXT ·Y__builtin_abort(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__builtin_abort(SB) + RET + +// func Y__builtin_abs(t *TLS, j int32) (_2 int32) +TEXT ·Y__builtin_abs(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL j+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_abs(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_add_overflowInt64(t *TLS, a, b int64, res uintptr) (_3 int32) +TEXT ·Y__builtin_add_overflowInt64(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + MOVQ res+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_add_overflowInt64(SB) + MOVL 32(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Y__builtin_add_overflowUint32(t *TLS, a, b uint32, res uintptr) (_3 int32) +TEXT ·Y__builtin_add_overflowUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL a+8(FP), AX + MOVL AX, 8(SP) + MOVL b+12(FP), AX + MOVL AX, 12(SP) + MOVQ res+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_add_overflowUint32(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Y__builtin_add_overflowUint64(t *TLS, a, b uint64, res uintptr) (_3 int32) +TEXT ·Y__builtin_add_overflowUint64(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + MOVQ res+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_add_overflowUint64(SB) + MOVL 32(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Y__builtin_alloca(tls *TLS, size Tsize_t) (_2 uintptr) +TEXT ·Y__builtin_alloca(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ size+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_alloca(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_bswap16(t *TLS, x uint16) (_2 uint16) +TEXT ·Y__builtin_bswap16(SB),$24-18 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVW x+8(FP), AX + MOVW AX, 8(SP) + CALL ·X__builtin_bswap16(SB) + MOVW 16(SP), AX + MOVW AX, _2+16(FP) + RET + +// func Y__builtin_bswap32(t *TLS, x uint32) (_2 uint32) +TEXT ·Y__builtin_bswap32(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_bswap32(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_bswap64(t *TLS, x uint64) (_2 uint64) +TEXT ·Y__builtin_bswap64(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_bswap64(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_bzero(t *TLS, s uintptr, n Tsize_t) +TEXT ·Y__builtin_bzero(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_bzero(SB) + RET + +// func Y__builtin_clz(t *TLS, n uint32) (_2 int32) +TEXT ·Y__builtin_clz(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_clz(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_clzl(t *TLS, n ulong) (_2 int32) +TEXT ·Y__builtin_clzl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_clzl(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_clzll(t *TLS, n uint64) (_2 int32) +TEXT ·Y__builtin_clzll(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_clzll(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_copysign(t *TLS, x, y float64) (_2 float64) +TEXT ·Y__builtin_copysign(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_copysign(SB) + MOVQ 24(SP), AX + MOVQ AX, _2+24(FP) + RET + +// func Y__builtin_copysignf(t *TLS, x, y float32) (_2 float32) +TEXT ·Y__builtin_copysignf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·X__builtin_copysignf(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_copysignl(t *TLS, x, y float64) (_2 float64) +TEXT ·Y__builtin_copysignl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_copysignl(SB) + MOVQ 24(SP), AX + MOVQ AX, _2+24(FP) + RET + +// func Y__builtin_ctz(t *TLS, n uint32) (_2 int32) +TEXT ·Y__builtin_ctz(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_ctz(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_ctzl(tls *TLS, x ulong) (_2 int32) +TEXT ·Y__builtin_ctzl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_ctzl(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_exit(t *TLS, status int32) +TEXT ·Y__builtin_exit(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL status+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_exit(SB) + RET + +// func Y__builtin_expect(t *TLS, exp, c long) (_2 long) +TEXT ·Y__builtin_expect(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ exp+8(FP), AX + MOVQ AX, 8(SP) + MOVQ c+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_expect(SB) + MOVQ 24(SP), AX + MOVQ AX, _2+24(FP) + RET + +// func Y__builtin_fabs(t *TLS, x float64) (_2 float64) +TEXT ·Y__builtin_fabs(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_fabs(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_fabsf(t *TLS, x float32) (_2 float32) +TEXT ·Y__builtin_fabsf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_fabsf(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_fabsl(t *TLS, x float64) (_2 float64) +TEXT ·Y__builtin_fabsl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_fabsl(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_ffs(tls *TLS, i int32) (r int32) +TEXT ·Y__builtin_ffs(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL i+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_ffs(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__builtin_fma(tls *TLS, x, y, z float64) (r float64) +TEXT ·Y__builtin_fma(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + MOVQ z+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_fma(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__builtin_fmax(tls *TLS, x float64, y float64) (r float64) +TEXT ·Y__builtin_fmax(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_fmax(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__builtin_fmin(tls *TLS, x float64, y float64) (r float64) +TEXT ·Y__builtin_fmin(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_fmin(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__builtin_free(t *TLS, ptr uintptr) +TEXT ·Y__builtin_free(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_free(SB) + RET + +// func Y__builtin_getentropy(t *TLS, buf uintptr, n Tsize_t) (_3 int32) +TEXT ·Y__builtin_getentropy(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_getentropy(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Y__builtin_huge_val(t *TLS) (_1 float64) +TEXT ·Y__builtin_huge_val(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__builtin_huge_val(SB) + MOVQ 8(SP), AX + MOVQ AX, _1+8(FP) + RET + +// func Y__builtin_huge_valf(t *TLS) (_1 float32) +TEXT ·Y__builtin_huge_valf(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__builtin_huge_valf(SB) + MOVL 8(SP), AX + MOVL AX, _1+8(FP) + RET + +// func Y__builtin_hypot(tls *TLS, x float64, y float64) (r float64) +TEXT ·Y__builtin_hypot(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_hypot(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__builtin_inf(t *TLS) (_1 float64) +TEXT ·Y__builtin_inf(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__builtin_inf(SB) + MOVQ 8(SP), AX + MOVQ AX, _1+8(FP) + RET + +// func Y__builtin_inff(tls *TLS) (_1 float32) +TEXT ·Y__builtin_inff(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__builtin_inff(SB) + MOVL 8(SP), AX + MOVL AX, _1+8(FP) + RET + +// func Y__builtin_infl(t *TLS) (_1 float64) +TEXT ·Y__builtin_infl(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__builtin_infl(SB) + MOVQ 8(SP), AX + MOVQ AX, _1+8(FP) + RET + +// func Y__builtin_isblank(tls *TLS, c int32) (r int32) +TEXT ·Y__builtin_isblank(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_isblank(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__builtin_isnan(t *TLS, x float64) (_2 int32) +TEXT ·Y__builtin_isnan(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_isnan(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_isnanf(t *TLS, x float32) (_2 int32) +TEXT ·Y__builtin_isnanf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_isnanf(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_isnanl(t *TLS, x float64) (_2 int32) +TEXT ·Y__builtin_isnanl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_isnanl(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_isprint(tls *TLS, c int32) (r int32) +TEXT ·Y__builtin_isprint(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_isprint(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__builtin_isunordered(t *TLS, a, b float64) (_2 int32) +TEXT ·Y__builtin_isunordered(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_isunordered(SB) + MOVL 24(SP), AX + MOVL AX, _2+24(FP) + RET + +// func Y__builtin_llabs(tls *TLS, a int64) (_2 int64) +TEXT ·Y__builtin_llabs(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_llabs(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_log2(t *TLS, x float64) (_2 float64) +TEXT ·Y__builtin_log2(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_log2(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_lrint(tls *TLS, x float64) (r long) +TEXT ·Y__builtin_lrint(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_lrint(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__builtin_lrintf(tls *TLS, x float32) (r long) +TEXT ·Y__builtin_lrintf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_lrintf(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__builtin_lround(tls *TLS, x float64) (r long) +TEXT ·Y__builtin_lround(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_lround(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__builtin_malloc(t *TLS, size Tsize_t) (_2 uintptr) +TEXT ·Y__builtin_malloc(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ size+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_malloc(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_memcmp(t *TLS, s1, s2 uintptr, n Tsize_t) (_3 int32) +TEXT ·Y__builtin_memcmp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_memcmp(SB) + MOVL 32(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Y__builtin_memcpy(t *TLS, dest, src uintptr, n Tsize_t) (r uintptr) +TEXT ·Y__builtin_memcpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_memcpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__builtin_memset(t *TLS, s uintptr, c int32, n Tsize_t) (_4 uintptr) +TEXT ·Y__builtin_memset(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_memset(SB) + MOVQ 32(SP), AX + MOVQ AX, _4+32(FP) + RET + +// func Y__builtin_mmap(t *TLS, addr uintptr, length Tsize_t, prot, flags, fd int32, offset Toff_t) (_5 uintptr) +TEXT ·Y__builtin_mmap(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ length+16(FP), AX + MOVQ AX, 16(SP) + MOVL prot+24(FP), AX + MOVL AX, 24(SP) + MOVL flags+28(FP), AX + MOVL AX, 28(SP) + MOVL fd+32(FP), AX + MOVL AX, 32(SP) + MOVQ offset+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__builtin_mmap(SB) + MOVQ 48(SP), AX + MOVQ AX, _5+48(FP) + RET + +// func Y__builtin_mul_overflowInt64(t *TLS, a, b int64, res uintptr) (_3 int32) +TEXT ·Y__builtin_mul_overflowInt64(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + MOVQ res+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_mul_overflowInt64(SB) + MOVL 32(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Y__builtin_mul_overflowUint128(t *TLS, a, b Uint128, res uintptr) (_3 int32) +TEXT ·Y__builtin_mul_overflowUint128(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a_Lo+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a_Hi+16(FP), AX + MOVQ AX, 16(SP) + MOVQ b_Lo+24(FP), AX + MOVQ AX, 24(SP) + MOVQ b_Hi+32(FP), AX + MOVQ AX, 32(SP) + MOVQ res+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__builtin_mul_overflowUint128(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Y__builtin_mul_overflowUint64(t *TLS, a, b uint64, res uintptr) (_3 int32) +TEXT ·Y__builtin_mul_overflowUint64(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + MOVQ res+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_mul_overflowUint64(SB) + MOVL 32(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Y__builtin_nan(t *TLS, s uintptr) (_2 float64) +TEXT ·Y__builtin_nan(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_nan(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_nanf(tls *TLS, s uintptr) (_2 float32) +TEXT ·Y__builtin_nanf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_nanf(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_nanl(t *TLS, s uintptr) (_2 float64) +TEXT ·Y__builtin_nanl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_nanl(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_object_size(t *TLS, p uintptr, typ int32) (_3 Tsize_t) +TEXT ·Y__builtin_object_size(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + MOVL typ+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__builtin_object_size(SB) + MOVQ 24(SP), AX + MOVQ AX, _3+24(FP) + RET + +// func Y__builtin_popcount(t *TLS, x uint32) (_2 int32) +TEXT ·Y__builtin_popcount(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_popcount(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_popcountl(t *TLS, x ulong) (_2 int32) +TEXT ·Y__builtin_popcountl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_popcountl(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__builtin_prefetch(t *TLS, addr, args uintptr) +TEXT ·Y__builtin_prefetch(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ args+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_prefetch(SB) + RET + +// func Y__builtin_printf(tls *TLS, fmt uintptr, va uintptr) (r int32) +TEXT ·Y__builtin_printf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_printf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__builtin_rintf(tls *TLS, x float32) (r float32) +TEXT ·Y__builtin_rintf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_rintf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__builtin_round(tls *TLS, x float64) (r float64) +TEXT ·Y__builtin_round(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_round(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__builtin_roundf(tls *TLS, x float32) (r float32) +TEXT ·Y__builtin_roundf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__builtin_roundf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__builtin_snprintf(t *TLS, str uintptr, size Tsize_t, format, args uintptr) (_4 int32) +TEXT ·Y__builtin_snprintf(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ str+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVQ format+24(FP), AX + MOVQ AX, 24(SP) + MOVQ args+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__builtin_snprintf(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__builtin_sprintf(t *TLS, str, format, args uintptr) (r int32) +TEXT ·Y__builtin_sprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ str+8(FP), AX + MOVQ AX, 8(SP) + MOVQ format+16(FP), AX + MOVQ AX, 16(SP) + MOVQ args+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_sprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__builtin_strchr(t *TLS, s uintptr, c int32) (_3 uintptr) +TEXT ·Y__builtin_strchr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__builtin_strchr(SB) + MOVQ 24(SP), AX + MOVQ AX, _3+24(FP) + RET + +// func Y__builtin_strcmp(t *TLS, s1, s2 uintptr) (_2 int32) +TEXT ·Y__builtin_strcmp(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s2+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_strcmp(SB) + MOVL 24(SP), AX + MOVL AX, _2+24(FP) + RET + +// func Y__builtin_strcpy(t *TLS, dest, src uintptr) (_2 uintptr) +TEXT ·Y__builtin_strcpy(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__builtin_strcpy(SB) + MOVQ 24(SP), AX + MOVQ AX, _2+24(FP) + RET + +// func Y__builtin_strlen(t *TLS, s uintptr) (_2 Tsize_t) +TEXT ·Y__builtin_strlen(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_strlen(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__builtin_sub_overflowInt64(t *TLS, a, b int64, res uintptr) (_3 int32) +TEXT ·Y__builtin_sub_overflowInt64(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + MOVQ res+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__builtin_sub_overflowInt64(SB) + MOVL 32(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Y__builtin_trap(t *TLS) +TEXT ·Y__builtin_trap(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__builtin_trap(SB) + RET + +// func Y__builtin_trunc(tls *TLS, x float64) (r float64) +TEXT ·Y__builtin_trunc(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__builtin_trunc(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__builtin_unreachable(t *TLS) +TEXT ·Y__builtin_unreachable(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__builtin_unreachable(SB) + RET + +// func Y__builtin_vsnprintf(t *TLS, str uintptr, size Tsize_t, format, va uintptr) (_4 int32) +TEXT ·Y__builtin_vsnprintf(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ str+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVQ format+24(FP), AX + MOVQ AX, 24(SP) + MOVQ va+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__builtin_vsnprintf(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__c11_atomic_compare_exchange_strongInt16(t *TLS, ptr, expected uintptr, desired int16, success, failure int32) (_4 int32) +TEXT ·Y__c11_atomic_compare_exchange_strongInt16(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVW desired+24(FP), AX + MOVW AX, 24(SP) + MOVL success+28(FP), AX + MOVL AX, 28(SP) + MOVL failure+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__c11_atomic_compare_exchange_strongInt16(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__c11_atomic_compare_exchange_strongInt32(t *TLS, ptr, expected uintptr, desired, success, failure int32) (_3 int32) +TEXT ·Y__c11_atomic_compare_exchange_strongInt32(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVL desired+24(FP), AX + MOVL AX, 24(SP) + MOVL success+28(FP), AX + MOVL AX, 28(SP) + MOVL failure+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__c11_atomic_compare_exchange_strongInt32(SB) + MOVL 40(SP), AX + MOVL AX, _3+40(FP) + RET + +// func Y__c11_atomic_compare_exchange_strongInt64(t *TLS, ptr, expected uintptr, desired int64, success, failure int32) (_4 int32) +TEXT ·Y__c11_atomic_compare_exchange_strongInt64(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL success+32(FP), AX + MOVL AX, 32(SP) + MOVL failure+36(FP), AX + MOVL AX, 36(SP) + CALL ·X__c11_atomic_compare_exchange_strongInt64(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__c11_atomic_compare_exchange_strongInt8(t *TLS, ptr, expected uintptr, desired int8, success, failure int32) (_4 int32) +TEXT ·Y__c11_atomic_compare_exchange_strongInt8(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVB desired+24(FP), AX + MOVB AX, 24(SP) + MOVL success+28(FP), AX + MOVL AX, 28(SP) + MOVL failure+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__c11_atomic_compare_exchange_strongInt8(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__c11_atomic_compare_exchange_strongUint16(t *TLS, ptr, expected uintptr, desired uint16, success, failure int32) (_4 int32) +TEXT ·Y__c11_atomic_compare_exchange_strongUint16(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVW desired+24(FP), AX + MOVW AX, 24(SP) + MOVL success+28(FP), AX + MOVL AX, 28(SP) + MOVL failure+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__c11_atomic_compare_exchange_strongUint16(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__c11_atomic_compare_exchange_strongUint32(t *TLS, ptr, expected uintptr, desired uint32, success, failure int32) (_4 int32) +TEXT ·Y__c11_atomic_compare_exchange_strongUint32(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVL desired+24(FP), AX + MOVL AX, 24(SP) + MOVL success+28(FP), AX + MOVL AX, 28(SP) + MOVL failure+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__c11_atomic_compare_exchange_strongUint32(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__c11_atomic_compare_exchange_strongUint64(t *TLS, ptr, expected uintptr, desired uint64, success, failure int32) (_4 int32) +TEXT ·Y__c11_atomic_compare_exchange_strongUint64(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVQ desired+24(FP), AX + MOVQ AX, 24(SP) + MOVL success+32(FP), AX + MOVL AX, 32(SP) + MOVL failure+36(FP), AX + MOVL AX, 36(SP) + CALL ·X__c11_atomic_compare_exchange_strongUint64(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__c11_atomic_compare_exchange_strongUint8(t *TLS, ptr, expected uintptr, desired uint8, success, failure int32) (_4 int32) +TEXT ·Y__c11_atomic_compare_exchange_strongUint8(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ expected+16(FP), AX + MOVQ AX, 16(SP) + MOVB desired+24(FP), AX + MOVB AX, 24(SP) + MOVL success+28(FP), AX + MOVL AX, 28(SP) + MOVL failure+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__c11_atomic_compare_exchange_strongUint8(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__c11_atomic_exchangeInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__c11_atomic_exchangeInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_exchangeInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_exchangeInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__c11_atomic_exchangeInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_exchangeInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_exchangeInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__c11_atomic_exchangeInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_exchangeInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_exchangeInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__c11_atomic_exchangeInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_exchangeInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_exchangeUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__c11_atomic_exchangeUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_exchangeUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_exchangeUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__c11_atomic_exchangeUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_exchangeUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_exchangeUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__c11_atomic_exchangeUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_exchangeUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_exchangeUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__c11_atomic_exchangeUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_exchangeUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_addInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__c11_atomic_fetch_addInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_addInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_addInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__c11_atomic_fetch_addInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_addInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_addInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__c11_atomic_fetch_addInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_addInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_addInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__c11_atomic_fetch_addInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_addInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_addUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__c11_atomic_fetch_addUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_addUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_addUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__c11_atomic_fetch_addUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_addUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_addUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__c11_atomic_fetch_addUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_addUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_addUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__c11_atomic_fetch_addUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_addUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_andInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__c11_atomic_fetch_andInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_andInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_andInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__c11_atomic_fetch_andInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_andInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_andInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__c11_atomic_fetch_andInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_andInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_andInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__c11_atomic_fetch_andInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_andInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_andUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__c11_atomic_fetch_andUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_andUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_andUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__c11_atomic_fetch_andUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_andUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_andUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__c11_atomic_fetch_andUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_andUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_andUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__c11_atomic_fetch_andUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_andUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_orInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__c11_atomic_fetch_orInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_orInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_orInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__c11_atomic_fetch_orInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_orInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_orInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__c11_atomic_fetch_orInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_orInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_orInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__c11_atomic_fetch_orInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_orInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_orUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__c11_atomic_fetch_orUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_orUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_orUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__c11_atomic_fetch_orUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_orUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_orUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__c11_atomic_fetch_orUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_orUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_orUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__c11_atomic_fetch_orUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_orUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_subInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__c11_atomic_fetch_subInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_subInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_subInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__c11_atomic_fetch_subInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_subInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_subInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__c11_atomic_fetch_subInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_subInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_subInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__c11_atomic_fetch_subInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_subInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_subUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__c11_atomic_fetch_subUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_subUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_subUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__c11_atomic_fetch_subUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_subUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_subUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__c11_atomic_fetch_subUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_subUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_subUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__c11_atomic_fetch_subUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_subUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_xorInt16(t *TLS, ptr uintptr, val int16, _ int32) (r int16) +TEXT ·Y__c11_atomic_fetch_xorInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_xorInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_xorInt32(t *TLS, ptr uintptr, val int32, _ int32) (r int32) +TEXT ·Y__c11_atomic_fetch_xorInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_xorInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_xorInt64(t *TLS, ptr uintptr, val int64, _ int32) (r int64) +TEXT ·Y__c11_atomic_fetch_xorInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_xorInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_xorInt8(t *TLS, ptr uintptr, val int8, _ int32) (r int8) +TEXT ·Y__c11_atomic_fetch_xorInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_xorInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_xorUint16(t *TLS, ptr uintptr, val uint16, _ int32) (r uint16) +TEXT ·Y__c11_atomic_fetch_xorUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_xorUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_xorUint32(t *TLS, ptr uintptr, val uint32, _ int32) (r uint32) +TEXT ·Y__c11_atomic_fetch_xorUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_xorUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_fetch_xorUint64(t *TLS, ptr uintptr, val uint64, _ int32) (r uint64) +TEXT ·Y__c11_atomic_fetch_xorUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL _+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_fetch_xorUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__c11_atomic_fetch_xorUint8(t *TLS, ptr uintptr, val uint8, _ int32) (r uint8) +TEXT ·Y__c11_atomic_fetch_xorUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL _+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_fetch_xorUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_loadInt16(t *TLS, ptr uintptr, memorder int32) (r int16) +TEXT ·Y__c11_atomic_loadInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL memorder+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__c11_atomic_loadInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_loadInt32(t *TLS, ptr uintptr, memorder int32) (r int32) +TEXT ·Y__c11_atomic_loadInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL memorder+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__c11_atomic_loadInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_loadInt64(t *TLS, ptr uintptr, memorder int32) (r int64) +TEXT ·Y__c11_atomic_loadInt64(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL memorder+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__c11_atomic_loadInt64(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__c11_atomic_loadInt8(t *TLS, ptr uintptr, memorder int32) (r int8) +TEXT ·Y__c11_atomic_loadInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL memorder+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__c11_atomic_loadInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_loadUint16(t *TLS, ptr uintptr, memorder int32) (r uint16) +TEXT ·Y__c11_atomic_loadUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL memorder+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__c11_atomic_loadUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__c11_atomic_loadUint32(t *TLS, ptr uintptr, memorder int32) (r uint32) +TEXT ·Y__c11_atomic_loadUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL memorder+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__c11_atomic_loadUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__c11_atomic_loadUint64(t *TLS, ptr uintptr, memorder int32) (r uint64) +TEXT ·Y__c11_atomic_loadUint64(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL memorder+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__c11_atomic_loadUint64(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__c11_atomic_loadUint8(t *TLS, ptr uintptr, memorder int32) (r uint8) +TEXT ·Y__c11_atomic_loadUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL memorder+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__c11_atomic_loadUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__c11_atomic_storeInt16(t *TLS, ptr uintptr, val int16, memorder int32) +TEXT ·Y__c11_atomic_storeInt16(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL memorder+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_storeInt16(SB) + RET + +// func Y__c11_atomic_storeInt32(t *TLS, ptr uintptr, val int32, memorder int32) +TEXT ·Y__c11_atomic_storeInt32(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL memorder+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_storeInt32(SB) + RET + +// func Y__c11_atomic_storeInt64(t *TLS, ptr uintptr, val int64, memorder int32) +TEXT ·Y__c11_atomic_storeInt64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_storeInt64(SB) + RET + +// func Y__c11_atomic_storeInt8(t *TLS, ptr uintptr, val int8, memorder int32) +TEXT ·Y__c11_atomic_storeInt8(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL memorder+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_storeInt8(SB) + RET + +// func Y__c11_atomic_storeUint16(t *TLS, ptr uintptr, val uint16, memorder int32) +TEXT ·Y__c11_atomic_storeUint16(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW val+16(FP), AX + MOVW AX, 16(SP) + MOVL memorder+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_storeUint16(SB) + RET + +// func Y__c11_atomic_storeUint32(t *TLS, ptr uintptr, val uint32, memorder int32) +TEXT ·Y__c11_atomic_storeUint32(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + MOVL memorder+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_storeUint32(SB) + RET + +// func Y__c11_atomic_storeUint64(t *TLS, ptr uintptr, val uint64, memorder int32) +TEXT ·Y__c11_atomic_storeUint64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + MOVL memorder+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__c11_atomic_storeUint64(SB) + RET + +// func Y__c11_atomic_storeUint8(t *TLS, ptr uintptr, val uint8, memorder int32) +TEXT ·Y__c11_atomic_storeUint8(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB val+16(FP), AX + MOVB AX, 16(SP) + MOVL memorder+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__c11_atomic_storeUint8(SB) + RET + +// func Y__ccgo_dmesg(t *TLS, fmt uintptr, va uintptr) +TEXT ·Y__ccgo_dmesg(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__ccgo_dmesg(SB) + RET + +// func Y__ccgo_getMutexType(tls *TLS, m uintptr) (_2 int32) +TEXT ·Y__ccgo_getMutexType(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__ccgo_getMutexType(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__ccgo_in6addr_anyp(t *TLS) (_1 uintptr) +TEXT ·Y__ccgo_in6addr_anyp(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__ccgo_in6addr_anyp(SB) + MOVQ 8(SP), AX + MOVQ AX, _1+8(FP) + RET + +// func Y__ccgo_pthreadAttrGetDetachState(tls *TLS, a uintptr) (_2 int32) +TEXT ·Y__ccgo_pthreadAttrGetDetachState(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__ccgo_pthreadAttrGetDetachState(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__ccgo_pthreadMutexattrGettype(tls *TLS, a uintptr) (_2 int32) +TEXT ·Y__ccgo_pthreadMutexattrGettype(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__ccgo_pthreadMutexattrGettype(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__ccgo_sqlite3_log(t *TLS, iErrCode int32, zFormat uintptr, args uintptr) +TEXT ·Y__ccgo_sqlite3_log(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL iErrCode+8(FP), AX + MOVL AX, 8(SP) + MOVQ zFormat+16(FP), AX + MOVQ AX, 16(SP) + MOVQ args+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__ccgo_sqlite3_log(SB) + RET + +// func Y__clock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r1 int32) +TEXT ·Y__clock_gettime(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL clk+8(FP), AX + MOVL AX, 8(SP) + MOVQ ts+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__clock_gettime(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Y__clock_nanosleep(tls *TLS, clk Tclockid_t, flags int32, req uintptr, rem uintptr) (r int32) +TEXT ·Y__clock_nanosleep(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL clk+8(FP), AX + MOVL AX, 8(SP) + MOVL flags+12(FP), AX + MOVL AX, 12(SP) + MOVQ req+16(FP), AX + MOVQ AX, 16(SP) + MOVQ rem+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__clock_nanosleep(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__cmsg_nxthdr(t *TLS, msgh, cmsg uintptr) (_2 uintptr) +TEXT ·Y__cmsg_nxthdr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msgh+8(FP), AX + MOVQ AX, 8(SP) + MOVQ cmsg+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__cmsg_nxthdr(SB) + MOVQ 24(SP), AX + MOVQ AX, _2+24(FP) + RET + +// func Y__convert_scm_timestamps(tls *TLS, msg uintptr, csize Tsocklen_t) +TEXT ·Y__convert_scm_timestamps(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msg+8(FP), AX + MOVQ AX, 8(SP) + MOVL csize+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__convert_scm_timestamps(SB) + RET + +// func Y__cos(tls *TLS, x float64, y float64) (r1 float64) +TEXT ·Y__cos(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__cos(SB) + MOVQ 24(SP), AX + MOVQ AX, r1+24(FP) + RET + +// func Y__cosdf(tls *TLS, x float64) (r1 float32) +TEXT ·Y__cosdf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__cosdf(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Y__crypt_blowfish(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) +TEXT ·Y__crypt_blowfish(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ setting+16(FP), AX + MOVQ AX, 16(SP) + MOVQ output+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__crypt_blowfish(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__crypt_des(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) +TEXT ·Y__crypt_des(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ setting+16(FP), AX + MOVQ AX, 16(SP) + MOVQ output+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__crypt_des(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__crypt_md5(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) +TEXT ·Y__crypt_md5(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ setting+16(FP), AX + MOVQ AX, 16(SP) + MOVQ output+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__crypt_md5(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__crypt_r(tls *TLS, key uintptr, salt uintptr, data uintptr) (r uintptr) +TEXT ·Y__crypt_r(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ salt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ data+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__crypt_r(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__crypt_sha256(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) +TEXT ·Y__crypt_sha256(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ setting+16(FP), AX + MOVQ AX, 16(SP) + MOVQ output+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__crypt_sha256(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__crypt_sha512(tls *TLS, key uintptr, setting uintptr, output uintptr) (r uintptr) +TEXT ·Y__crypt_sha512(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ setting+16(FP), AX + MOVQ AX, 16(SP) + MOVQ output+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__crypt_sha512(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__ctype_b_loc(tls *TLS) (r uintptr) +TEXT ·Y__ctype_b_loc(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__ctype_b_loc(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__ctype_get_mb_cur_max(tls *TLS) (r Tsize_t) +TEXT ·Y__ctype_get_mb_cur_max(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__ctype_get_mb_cur_max(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__ctype_tolower_loc(tls *TLS) (r uintptr) +TEXT ·Y__ctype_tolower_loc(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__ctype_tolower_loc(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__ctype_toupper_loc(tls *TLS) (r uintptr) +TEXT ·Y__ctype_toupper_loc(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__ctype_toupper_loc(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__des_setkey(tls *TLS, key uintptr, ekey uintptr) +TEXT ·Y__des_setkey(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ekey+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__des_setkey(SB) + RET + +// func Y__dn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr, space int32) (r int32) +TEXT ·Y__dn_expand(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ base+8(FP), AX + MOVQ AX, 8(SP) + MOVQ end+16(FP), AX + MOVQ AX, 16(SP) + MOVQ src+24(FP), AX + MOVQ AX, 24(SP) + MOVQ dest+32(FP), AX + MOVQ AX, 32(SP) + MOVL space+40(FP), AX + MOVL AX, 40(SP) + CALL ·X__dn_expand(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Y__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_callback uintptr, ctx uintptr) (r1 int32) +TEXT ·Y__dns_parse(SB),$56-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_callback+24(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal___dns_parse_2(SB) // Create the closure for calling __ccgo_fp_callback + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ r+8(FP), AX + MOVQ AX, 8(SP) + MOVL rlen+16(FP), AX + MOVL AX, 16(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 24(SP) + MOVQ ctx+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__dns_parse(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0___dns_parse_2(SB),$72-68 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVL _2+16(FP), AX + MOVL AX, 16(SP) + MOVQ _3+24(FP), AX + MOVQ AX, 24(SP) + MOVL _4+32(FP), AX + MOVL AX, 32(SP) + MOVQ _5+40(FP), AX + MOVQ AX, 40(SP) + MOVL _6+48(FP), AX + MOVL AX, 48(SP) + MOVQ __ccgo_fp+56(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 56(SP), AX + MOVL AX, _7+64(FP) + RET + +// func Y__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) +TEXT ·Y__do_des(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL l_in+8(FP), AX + MOVL AX, 8(SP) + MOVL r_in+12(FP), AX + MOVL AX, 12(SP) + MOVQ l_out+16(FP), AX + MOVQ AX, 16(SP) + MOVQ r_out+24(FP), AX + MOVQ AX, 24(SP) + MOVL count+32(FP), AX + MOVL AX, 32(SP) + MOVL saltbits+36(FP), AX + MOVL AX, 36(SP) + MOVQ ekey+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__do_des(SB) + RET + +// func Y__do_orphaned_stdio_locks(tls *TLS) +TEXT ·Y__do_orphaned_stdio_locks(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__do_orphaned_stdio_locks(SB) + RET + +// func Y__dup3(tls *TLS, old int32, new1 int32, flags int32) (r1 int32) +TEXT ·Y__dup3(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL old+8(FP), AX + MOVL AX, 8(SP) + MOVL new1+12(FP), AX + MOVL AX, 12(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__dup3(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Y__duplocale(tls *TLS, old Tlocale_t) (r Tlocale_t) +TEXT ·Y__duplocale(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ old+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__duplocale(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__env_rm_add(tls *TLS, old uintptr, new1 uintptr) +TEXT ·Y__env_rm_add(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ old+8(FP), AX + MOVQ AX, 8(SP) + MOVQ new1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__env_rm_add(SB) + RET + +// func Y__errno_location(tls *TLS) (r uintptr) +TEXT ·Y__errno_location(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__errno_location(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__execvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) +TEXT ·Y__execvpe(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ file+8(FP), AX + MOVQ AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ envp+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__execvpe(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__expo2(tls *TLS, x float64, sign float64) (r float64) +TEXT ·Y__expo2(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sign+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__expo2(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__expo2f(tls *TLS, x float32, sign float32) (r float32) +TEXT ·Y__expo2f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL sign+12(FP), AX + MOVL AX, 12(SP) + CALL ·X__expo2f(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fbufsize(tls *TLS, f uintptr) (r Tsize_t) +TEXT ·Y__fbufsize(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fbufsize(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__fclose_ca(tls *TLS, f uintptr) (r int32) +TEXT ·Y__fclose_ca(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fclose_ca(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fdopen(tls *TLS, fd int32, mode uintptr) (r uintptr) +TEXT ·Y__fdopen(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ mode+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__fdopen(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__fesetround(tls *TLS, r int32) (r1 int32) +TEXT ·Y__fesetround(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL r+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__fesetround(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Y__fgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) +TEXT ·Y__fgetwc_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fgetwc_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__flbf(tls *TLS, f uintptr) (r int32) +TEXT ·Y__flbf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__flbf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__floatscan(tls *TLS, f uintptr, prec int32, pok int32) (r float64) +TEXT ·Y__floatscan(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVL prec+16(FP), AX + MOVL AX, 16(SP) + MOVL pok+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__floatscan(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__fmodeflags(tls *TLS, mode uintptr) (r int32) +TEXT ·Y__fmodeflags(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ mode+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fmodeflags(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fopen_rb_ca(tls *TLS, filename uintptr, f uintptr, buf uintptr, len1 Tsize_t) (r uintptr) +TEXT ·Y__fopen_rb_ca(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ len1+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__fopen_rb_ca(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Y__fpclassify(tls *TLS, x float64) (r int32) +TEXT ·Y__fpclassify(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fpclassify(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fpclassifyf(tls *TLS, x float32) (r int32) +TEXT ·Y__fpclassifyf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__fpclassifyf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fpclassifyl(tls *TLS, x float64) (r int32) +TEXT ·Y__fpclassifyl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fpclassifyl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fpending(tls *TLS, f uintptr) (r Tsize_t) +TEXT ·Y__fpending(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fpending(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__fpurge(tls *TLS, f uintptr) (r int32) +TEXT ·Y__fpurge(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fpurge(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) +TEXT ·Y__fputwc_unlocked(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__fputwc_unlocked(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__freadable(tls *TLS, f uintptr) (r int32) +TEXT ·Y__freadable(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__freadable(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__freadahead(tls *TLS, f uintptr) (r Tsize_t) +TEXT ·Y__freadahead(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__freadahead(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__freading(tls *TLS, f uintptr) (r int32) +TEXT ·Y__freading(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__freading(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__freadptr(tls *TLS, f uintptr, sizep uintptr) (r uintptr) +TEXT ·Y__freadptr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sizep+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__freadptr(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__freadptrinc(tls *TLS, f uintptr, inc Tsize_t) +TEXT ·Y__freadptrinc(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ inc+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__freadptrinc(SB) + RET + +// func Y__freelocale(tls *TLS, l Tlocale_t) +TEXT ·Y__freelocale(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__freelocale(SB) + RET + +// func Y__fseeko(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) +TEXT ·Y__fseeko(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ off+16(FP), AX + MOVQ AX, 16(SP) + MOVL whence+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__fseeko(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__fseeko_unlocked(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) +TEXT ·Y__fseeko_unlocked(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ off+16(FP), AX + MOVQ AX, 16(SP) + MOVL whence+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__fseeko_unlocked(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__fseterr(tls *TLS, f uintptr) +TEXT ·Y__fseterr(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fseterr(SB) + RET + +// func Y__fsetlocking(tls *TLS, f uintptr, type1 int32) (r int32) +TEXT ·Y__fsetlocking(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVL type1+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__fsetlocking(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__fstat(tls *TLS, fd int32, st uintptr) (r int32) +TEXT ·Y__fstat(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ st+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__fstat(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__fstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) +TEXT ·Y__fstatat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVQ st+24(FP), AX + MOVQ AX, 24(SP) + MOVL flag+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__fstatat(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Y__ftello(tls *TLS, f uintptr) (r Toff_t) +TEXT ·Y__ftello(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__ftello(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__ftello_unlocked(tls *TLS, f uintptr) (r Toff_t) +TEXT ·Y__ftello_unlocked(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__ftello_unlocked(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__funcs_on_quick_exit(tls *TLS) +TEXT ·Y__funcs_on_quick_exit(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__funcs_on_quick_exit(SB) + RET + +// func Y__futimesat(tls *TLS, dirfd int32, pathname uintptr, times uintptr) (r int32) +TEXT ·Y__futimesat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL dirfd+8(FP), AX + MOVL AX, 8(SP) + MOVQ pathname+16(FP), AX + MOVQ AX, 16(SP) + MOVQ times+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__futimesat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__fwritable(tls *TLS, f uintptr) (r int32) +TEXT ·Y__fwritable(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fwritable(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fwritex(tls *TLS, s uintptr, l Tsize_t, f uintptr) (r Tsize_t) +TEXT ·Y__fwritex(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__fwritex(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__fwriting(tls *TLS, f uintptr) (r int32) +TEXT ·Y__fwriting(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__fwriting(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__fxstat(tls *TLS, ver int32, fd int32, buf uintptr) (r int32) +TEXT ·Y__fxstat(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ver+8(FP), AX + MOVL AX, 8(SP) + MOVL fd+12(FP), AX + MOVL AX, 12(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__fxstat(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__fxstatat(tls *TLS, ver int32, fd int32, path uintptr, buf uintptr, flag int32) (r int32) +TEXT ·Y__fxstatat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ver+8(FP), AX + MOVL AX, 8(SP) + MOVL fd+12(FP), AX + MOVL AX, 12(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVL flag+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__fxstatat(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Y__get_handler_set(tls *TLS, set uintptr) +TEXT ·Y__get_handler_set(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__get_handler_set(SB) + RET + +// func Y__get_locale(tls *TLS, cat int32, val uintptr) (r uintptr) +TEXT ·Y__get_locale(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL cat+8(FP), AX + MOVL AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__get_locale(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__get_resolv_conf(tls *TLS, conf uintptr, search uintptr, search_sz Tsize_t) (r int32) +TEXT ·Y__get_resolv_conf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ conf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ search+16(FP), AX + MOVQ AX, 16(SP) + MOVQ search_sz+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__get_resolv_conf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__getauxval(tls *TLS, item uint64) (r uint64) +TEXT ·Y__getauxval(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ item+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__getauxval(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__getdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) +TEXT ·Y__getdelim(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVL delim+24(FP), AX + MOVL AX, 24(SP) + MOVQ f+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__getdelim(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Y__getgr_a(tls *TLS, name uintptr, gid Tgid_t, gr uintptr, buf uintptr, size uintptr, mem uintptr, nmem uintptr, res uintptr) (r int32) +TEXT ·Y__getgr_a(SB),$80-76 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVL gid+16(FP), AX + MOVL AX, 16(SP) + MOVQ gr+24(FP), AX + MOVQ AX, 24(SP) + MOVQ buf+32(FP), AX + MOVQ AX, 32(SP) + MOVQ size+40(FP), AX + MOVQ AX, 40(SP) + MOVQ mem+48(FP), AX + MOVQ AX, 48(SP) + MOVQ nmem+56(FP), AX + MOVQ AX, 56(SP) + MOVQ res+64(FP), AX + MOVQ AX, 64(SP) + CALL ·X__getgr_a(SB) + MOVL 72(SP), AX + MOVL AX, r+72(FP) + RET + +// func Y__getgrent_a(tls *TLS, f uintptr, gr uintptr, line uintptr, size uintptr, mem uintptr, nmem uintptr, res uintptr) (r int32) +TEXT ·Y__getgrent_a(SB),$72-68 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ gr+16(FP), AX + MOVQ AX, 16(SP) + MOVQ line+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVQ mem+40(FP), AX + MOVQ AX, 40(SP) + MOVQ nmem+48(FP), AX + MOVQ AX, 48(SP) + MOVQ res+56(FP), AX + MOVQ AX, 56(SP) + CALL ·X__getgrent_a(SB) + MOVL 64(SP), AX + MOVL AX, r+64(FP) + RET + +// func Y__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) +TEXT ·Y__getopt_msg(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + MOVQ c+24(FP), AX + MOVQ AX, 24(SP) + MOVQ l+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__getopt_msg(SB) + RET + +// func Y__getpw_a(tls *TLS, name uintptr, uid Tuid_t, pw uintptr, buf uintptr, size uintptr, res uintptr) (r int32) +TEXT ·Y__getpw_a(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVL uid+16(FP), AX + MOVL AX, 16(SP) + MOVQ pw+24(FP), AX + MOVQ AX, 24(SP) + MOVQ buf+32(FP), AX + MOVQ AX, 32(SP) + MOVQ size+40(FP), AX + MOVQ AX, 40(SP) + MOVQ res+48(FP), AX + MOVQ AX, 48(SP) + CALL ·X__getpw_a(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Y__getpwent_a(tls *TLS, f uintptr, pw uintptr, line uintptr, size uintptr, res uintptr) (r int32) +TEXT ·Y__getpwent_a(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ pw+16(FP), AX + MOVQ AX, 16(SP) + MOVQ line+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVQ res+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__getpwent_a(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Y__gettextdomain(tls *TLS) (r uintptr) +TEXT ·Y__gettextdomain(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__gettextdomain(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__gmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) +TEXT ·Y__gmtime_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ tm+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__gmtime_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__h_errno_location(tls *TLS) (r uintptr) +TEXT ·Y__h_errno_location(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__h_errno_location(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__inet_aton(tls *TLS, s0 uintptr, dest uintptr) (r int32) +TEXT ·Y__inet_aton(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s0+8(FP), AX + MOVQ AX, 8(SP) + MOVQ dest+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__inet_aton(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__init_ssp(tls *TLS, entropy uintptr) +TEXT ·Y__init_ssp(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ entropy+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__init_ssp(SB) + RET + +// func Y__intscan(tls *TLS, f uintptr, base uint32, pok int32, lim uint64) (r uint64) +TEXT ·Y__intscan(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVL base+16(FP), AX + MOVL AX, 16(SP) + MOVL pok+20(FP), AX + MOVL AX, 20(SP) + MOVQ lim+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__intscan(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__isalnum_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isalnum_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isalnum_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isalpha_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isalpha_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isblank_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isblank_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isblank_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__iscntrl_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iscntrl_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isdigit_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isdigit_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isfinite(tls *TLS, d float64) (_2 int32) +TEXT ·Y__isfinite(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__isfinite(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__isfinitef(tls *TLS, f float32) (_2 int32) +TEXT ·Y__isfinitef(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL f+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__isfinitef(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__isfinitel(tls *TLS, d float64) (_2 int32) +TEXT ·Y__isfinitel(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__isfinitel(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__isgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isgraph_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isgraph_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__islower_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__islower_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__islower_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isnan(t *TLS, x float64) (_2 int32) +TEXT ·Y__isnan(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__isnan(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__isnanf(t *TLS, arg float32) (_2 int32) +TEXT ·Y__isnanf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL arg+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__isnanf(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__isnanl(t *TLS, arg float64) (_2 int32) +TEXT ·Y__isnanl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ arg+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__isnanl(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__isoc99_fscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Y__isoc99_fscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__isoc99_fscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__isoc99_fwscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Y__isoc99_fwscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__isoc99_fwscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__isoc99_scanf(tls *TLS, fmt uintptr, va uintptr) (r int32) +TEXT ·Y__isoc99_scanf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isoc99_scanf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isoc99_sscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Y__isoc99_sscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__isoc99_sscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__isoc99_swscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Y__isoc99_swscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__isoc99_swscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__isoc99_vfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Y__isoc99_vfscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__isoc99_vfscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__isoc99_vfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Y__isoc99_vfwscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__isoc99_vfwscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__isoc99_vscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Y__isoc99_vscanf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isoc99_vscanf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isoc99_vsscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Y__isoc99_vsscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__isoc99_vsscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__isoc99_vswscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Y__isoc99_vswscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__isoc99_vswscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__isoc99_vwscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Y__isoc99_vwscanf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isoc99_vwscanf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isoc99_wscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) +TEXT ·Y__isoc99_wscanf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isoc99_wscanf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isprint_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isprint_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__ispunct_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__ispunct_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__ispunct_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isspace_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isspace_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isupper_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isupper_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswalnum_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswalnum_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswalnum_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswalpha_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswalpha_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswalpha_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswblank_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswblank_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswcntrl_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswcntrl_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswcntrl_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswctype_l(tls *TLS, c Twint_t, t Twctype_t, l Tlocale_t) (r int32) +TEXT ·Y__iswctype_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ t+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__iswctype_l(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__iswdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswdigit_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswdigit_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswgraph_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswgraph_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswgraph_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswlower_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswlower_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswprint_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswprint_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswprint_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswpunct_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswpunct_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswpunct_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswspace_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswspace_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswspace_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswupper_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswupper_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__iswxdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Y__iswxdigit_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__iswxdigit_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__isxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__isxdigit_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__isxdigit_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__lctrans(tls *TLS, msg uintptr, lm uintptr) (r uintptr) +TEXT ·Y__lctrans(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msg+8(FP), AX + MOVQ AX, 8(SP) + MOVQ lm+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__lctrans(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__lctrans_cur(tls *TLS, msg uintptr) (r uintptr) +TEXT ·Y__lctrans_cur(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msg+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__lctrans_cur(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__lctrans_impl(tls *TLS, msg uintptr, lm uintptr) (r uintptr) +TEXT ·Y__lctrans_impl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msg+8(FP), AX + MOVQ AX, 8(SP) + MOVQ lm+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__lctrans_impl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__ldexp_cexp(tls *TLS, z complex128, expt int32) (r complex128) +TEXT ·Y__ldexp_cexp(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + MOVL expt+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__ldexp_cexp(SB) + MOVQ 32(SP), AX + MOVQ AX, r_real+32(FP) + MOVQ 40(SP), AX + MOVQ AX, r_imag+40(FP) + RET + +// func Y__ldexp_cexpf(tls *TLS, z complex64, expt int32) (r complex64) +TEXT ·Y__ldexp_cexpf(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + MOVL expt+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__ldexp_cexpf(SB) + MOVL 24(SP), AX + MOVL AX, r_real+24(FP) + MOVL 28(SP), AX + MOVL AX, r_imag+28(FP) + RET + +// func Y__lgamma_r(tls *TLS, x float64, signgamp uintptr) (r1 float64) +TEXT ·Y__lgamma_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ signgamp+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__lgamma_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r1+24(FP) + RET + +// func Y__lgammaf_r(tls *TLS, x float32, signgamp uintptr) (r1 float32) +TEXT ·Y__lgammaf_r(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVQ signgamp+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__lgammaf_r(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Y__lgammal_r(tls *TLS, x float64, sg uintptr) (r float64) +TEXT ·Y__lgammal_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sg+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__lgammal_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__libc_current_sigrtmax(tls *TLS) (r int32) +TEXT ·Y__libc_current_sigrtmax(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__libc_current_sigrtmax(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Y__libc_current_sigrtmin(tls *TLS) (r int32) +TEXT ·Y__libc_current_sigrtmin(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__libc_current_sigrtmin(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Y__libc_sigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r1 int32) +TEXT ·Y__libc_sigaction(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sig+8(FP), AX + MOVL AX, 8(SP) + MOVQ sa+16(FP), AX + MOVQ AX, 16(SP) + MOVQ old+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__libc_sigaction(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Y__loc_is_allocated(tls *TLS, loc Tlocale_t) (r int32) +TEXT ·Y__loc_is_allocated(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ loc+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__loc_is_allocated(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__localtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) +TEXT ·Y__localtime_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ tm+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__localtime_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__lockfile(tls *TLS, file uintptr) (_2 int32) +TEXT ·Y__lockfile(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ file+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__lockfile(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Y__lookup_ipliteral(tls *TLS, buf uintptr, name uintptr, family int32) (r int32) +TEXT ·Y__lookup_ipliteral(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVL family+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__lookup_ipliteral(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__lookup_name(tls *TLS, buf uintptr, canon uintptr, name uintptr, family int32, flags int32) (r int32) +TEXT ·Y__lookup_name(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ canon+16(FP), AX + MOVQ AX, 16(SP) + MOVQ name+24(FP), AX + MOVQ AX, 24(SP) + MOVL family+32(FP), AX + MOVL AX, 32(SP) + MOVL flags+36(FP), AX + MOVL AX, 36(SP) + CALL ·X__lookup_name(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Y__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype int32, flags int32) (r int32) +TEXT ·Y__lookup_serv(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVL proto+24(FP), AX + MOVL AX, 24(SP) + MOVL socktype+28(FP), AX + MOVL AX, 28(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__lookup_serv(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Y__lseek(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) +TEXT ·Y__lseek(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ offset+16(FP), AX + MOVQ AX, 16(SP) + MOVL whence+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__lseek(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__lsysinfo(tls *TLS, info uintptr) (r int32) +TEXT ·Y__lsysinfo(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ info+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__lsysinfo(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__lxstat(tls *TLS, ver int32, path uintptr, buf uintptr) (r int32) +TEXT ·Y__lxstat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ver+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__lxstat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__madvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) +TEXT ·Y__madvise(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL advice+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__madvise(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__map_file(tls *TLS, pathname uintptr, size uintptr) (r uintptr) +TEXT ·Y__map_file(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ pathname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__map_file(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__math_divzero(tls *TLS, sign Tuint32_t) (r float64) +TEXT ·Y__math_divzero(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sign+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__math_divzero(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__math_divzerof(tls *TLS, sign Tuint32_t) (r float32) +TEXT ·Y__math_divzerof(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sign+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__math_divzerof(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__math_invalid(tls *TLS, x float64) (r float64) +TEXT ·Y__math_invalid(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__math_invalid(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__math_invalidf(tls *TLS, x float32) (r float32) +TEXT ·Y__math_invalidf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__math_invalidf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__math_oflow(tls *TLS, sign Tuint32_t) (r float64) +TEXT ·Y__math_oflow(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sign+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__math_oflow(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__math_oflowf(tls *TLS, sign Tuint32_t) (r float32) +TEXT ·Y__math_oflowf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sign+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__math_oflowf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__math_uflow(tls *TLS, sign Tuint32_t) (r float64) +TEXT ·Y__math_uflow(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sign+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__math_uflow(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__math_uflowf(tls *TLS, sign Tuint32_t) (r float32) +TEXT ·Y__math_uflowf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sign+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__math_uflowf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__math_xflow(tls *TLS, sign Tuint32_t, y2 float64) (r float64) +TEXT ·Y__math_xflow(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sign+8(FP), AX + MOVL AX, 8(SP) + MOVQ y2+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__math_xflow(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__math_xflowf(tls *TLS, sign Tuint32_t, y2 float32) (r float32) +TEXT ·Y__math_xflowf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sign+8(FP), AX + MOVL AX, 8(SP) + MOVL y2+12(FP), AX + MOVL AX, 12(SP) + CALL ·X__math_xflowf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__memrchr(tls *TLS, m uintptr, c int32, n Tsize_t) (r uintptr) +TEXT ·Y__memrchr(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__memrchr(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__mkostemps(tls *TLS, template uintptr, len1 int32, flags int32) (r int32) +TEXT ·Y__mkostemps(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + MOVL len1+16(FP), AX + MOVL AX, 16(SP) + MOVL flags+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__mkostemps(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__mmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) +TEXT ·Y__mmap(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ start+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL prot+24(FP), AX + MOVL AX, 24(SP) + MOVL flags+28(FP), AX + MOVL AX, 28(SP) + MOVL fd+32(FP), AX + MOVL AX, 32(SP) + MOVQ off+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__mmap(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Y__mo_lookup(tls *TLS, p uintptr, size Tsize_t, s uintptr) (r uintptr) +TEXT ·Y__mo_lookup(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVQ s+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__mo_lookup(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__month_to_secs(tls *TLS, month int32, is_leap int32) (r int32) +TEXT ·Y__month_to_secs(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL month+8(FP), AX + MOVL AX, 8(SP) + MOVL is_leap+12(FP), AX + MOVL AX, 12(SP) + CALL ·X__month_to_secs(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__mprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) +TEXT ·Y__mprotect(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL prot+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__mprotect(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__mremap(tls *TLS, old_addr uintptr, old_len Tsize_t, new_len Tsize_t, flags int32, va uintptr) (r uintptr) +TEXT ·Y__mremap(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ old_addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ old_len+16(FP), AX + MOVQ AX, 16(SP) + MOVQ new_len+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + MOVQ va+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__mremap(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Y__munmap(tls *TLS, start uintptr, len1 Tsize_t) (r int32) +TEXT ·Y__munmap(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ start+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__munmap(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__newlocale(tls *TLS, mask int32, name uintptr, loc Tlocale_t) (r Tlocale_t) +TEXT ·Y__newlocale(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL mask+8(FP), AX + MOVL AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ loc+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__newlocale(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__nl_langinfo(tls *TLS, item Tnl_item) (r uintptr) +TEXT ·Y__nl_langinfo(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL item+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__nl_langinfo(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__nl_langinfo_l(tls *TLS, item Tnl_item, loc Tlocale_t) (r uintptr) +TEXT ·Y__nl_langinfo_l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL item+8(FP), AX + MOVL AX, 8(SP) + MOVQ loc+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__nl_langinfo_l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__nscd_query(tls *TLS, req Tint32_t, key uintptr, buf uintptr, len1 Tsize_t, swap uintptr) (r uintptr) +TEXT ·Y__nscd_query(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL req+8(FP), AX + MOVL AX, 8(SP) + MOVQ key+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ len1+32(FP), AX + MOVQ AX, 32(SP) + MOVQ swap+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__nscd_query(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Y__ofl_add(tls *TLS, f uintptr) (r uintptr) +TEXT ·Y__ofl_add(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__ofl_add(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__ofl_lock(tls *TLS) (r uintptr) +TEXT ·Y__ofl_lock(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__ofl_lock(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__ofl_unlock(tls *TLS) +TEXT ·Y__ofl_unlock(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__ofl_unlock(SB) + RET + +// func Y__overflow(tls *TLS, f uintptr, _c int32) (r int32) +TEXT ·Y__overflow(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVL _c+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__overflow(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__pleval(tls *TLS, s uintptr, n uint64) (r uint64) +TEXT ·Y__pleval(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__pleval(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__posix_getopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) +TEXT ·Y__posix_getopt(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL argc+8(FP), AX + MOVL AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ optstring+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__posix_getopt(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__procfdname(tls *TLS, buf uintptr, fd uint32) +TEXT ·Y__procfdname(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVL fd+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__procfdname(SB) + RET + +// func Y__ptsname_r(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) +TEXT ·Y__ptsname_r(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__ptsname_r(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__putenv(tls *TLS, s uintptr, l Tsize_t, r uintptr) (r1 int32) +TEXT ·Y__putenv(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + MOVQ r+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__putenv(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Y__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr) +TEXT ·Y__qsort_r(SB),$56-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cmp+32(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal___qsort_r_3(SB) // Create the closure for calling __ccgo_fp_cmp + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ base+8(FP), AX + MOVQ AX, 8(SP) + MOVQ nel+16(FP), AX + MOVQ AX, 16(SP) + MOVQ width+24(FP), AX + MOVQ AX, 24(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 32(SP) + MOVQ arg+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__qsort_r(SB) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0___qsort_r_3(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ _3+24(FP), AX + MOVQ AX, 24(SP) + MOVQ __ccgo_fp+32(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 32(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y__rand48_step(tls *TLS, xi uintptr, lc uintptr) (r Tuint64_t) +TEXT ·Y__rand48_step(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ xi+8(FP), AX + MOVQ AX, 8(SP) + MOVQ lc+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__rand48_step(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__register_locked_file(tls *TLS, f uintptr, self Tpthread_t) +TEXT ·Y__register_locked_file(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ self+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__register_locked_file(SB) + RET + +// func Y__rem_pio2(tls *TLS, x float64, y uintptr) (r1 int32) +TEXT ·Y__rem_pio2(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__rem_pio2(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Y__rem_pio2_large(tls *TLS, x uintptr, y uintptr, e0 int32, nx int32, prec int32) (r int32) +TEXT ·Y__rem_pio2_large(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + MOVL e0+24(FP), AX + MOVL AX, 24(SP) + MOVL nx+28(FP), AX + MOVL AX, 28(SP) + MOVL prec+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__rem_pio2_large(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Y__rem_pio2f(tls *TLS, x float32, y uintptr) (r int32) +TEXT ·Y__rem_pio2f(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__rem_pio2f(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__res_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, data uintptr, datalen int32, newrr uintptr, buf uintptr, buflen int32) (r int32) +TEXT ·Y__res_mkquery(SB),$80-76 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL op+8(FP), AX + MOVL AX, 8(SP) + MOVQ dname+16(FP), AX + MOVQ AX, 16(SP) + MOVL class+24(FP), AX + MOVL AX, 24(SP) + MOVL type1+28(FP), AX + MOVL AX, 28(SP) + MOVQ data+32(FP), AX + MOVQ AX, 32(SP) + MOVL datalen+40(FP), AX + MOVL AX, 40(SP) + MOVQ newrr+48(FP), AX + MOVQ AX, 48(SP) + MOVQ buf+56(FP), AX + MOVQ AX, 56(SP) + MOVL buflen+64(FP), AX + MOVL AX, 64(SP) + CALL ·X__res_mkquery(SB) + MOVL 72(SP), AX + MOVL AX, r+72(FP) + RET + +// func Y__res_msend(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, answers uintptr, alens uintptr, asize int32) (r int32) +TEXT ·Y__res_msend(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL nqueries+8(FP), AX + MOVL AX, 8(SP) + MOVQ queries+16(FP), AX + MOVQ AX, 16(SP) + MOVQ qlens+24(FP), AX + MOVQ AX, 24(SP) + MOVQ answers+32(FP), AX + MOVQ AX, 32(SP) + MOVQ alens+40(FP), AX + MOVQ AX, 40(SP) + MOVL asize+48(FP), AX + MOVL AX, 48(SP) + CALL ·X__res_msend(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Y__res_msend_rc(tls *TLS, nqueries int32, queries uintptr, qlens uintptr, answers uintptr, alens uintptr, asize int32, conf uintptr) (r1 int32) +TEXT ·Y__res_msend_rc(SB),$72-68 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL nqueries+8(FP), AX + MOVL AX, 8(SP) + MOVQ queries+16(FP), AX + MOVQ AX, 16(SP) + MOVQ qlens+24(FP), AX + MOVQ AX, 24(SP) + MOVQ answers+32(FP), AX + MOVQ AX, 32(SP) + MOVQ alens+40(FP), AX + MOVQ AX, 40(SP) + MOVL asize+48(FP), AX + MOVL AX, 48(SP) + MOVQ conf+56(FP), AX + MOVQ AX, 56(SP) + CALL ·X__res_msend_rc(SB) + MOVL 64(SP), AX + MOVL AX, r1+64(FP) + RET + +// func Y__res_send(tls *TLS, _msg uintptr, _msglen int32, _answer uintptr, _anslen int32) (r1 int32) +TEXT ·Y__res_send(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _msg+8(FP), AX + MOVQ AX, 8(SP) + MOVL _msglen+16(FP), AX + MOVL AX, 16(SP) + MOVQ _answer+24(FP), AX + MOVQ AX, 24(SP) + MOVL _anslen+32(FP), AX + MOVL AX, 32(SP) + CALL ·X__res_send(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Y__res_state(tls *TLS) (r uintptr) +TEXT ·Y__res_state(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__res_state(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Y__reset_tls(tls *TLS) +TEXT ·Y__reset_tls(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__reset_tls(SB) + RET + +// func Y__restore(tls *TLS) +TEXT ·Y__restore(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__restore(SB) + RET + +// func Y__restore_rt(tls *TLS) +TEXT ·Y__restore_rt(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__restore_rt(SB) + RET + +// func Y__restore_sigs(tls *TLS, set uintptr) +TEXT ·Y__restore_sigs(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__restore_sigs(SB) + RET + +// func Y__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) +TEXT ·Y__rtnetlink_enumerate(SB),$48-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cb+16(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal___rtnetlink_enumerate_2(SB) // Create the closure for calling __ccgo_fp_cb + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL link_af+8(FP), AX + MOVL AX, 8(SP) + MOVL addr_af+12(FP), AX + MOVL AX, 12(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 24(SP) + MOVQ ctx+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__rtnetlink_enumerate(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0___rtnetlink_enumerate_2(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Y__secs_to_tm(tls *TLS, t int64, tm uintptr) (r int32) +TEXT ·Y__secs_to_tm(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ tm+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__secs_to_tm(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__secs_to_zone(tls *TLS, t int64, local int32, isdst uintptr, offset uintptr, oppoff uintptr, zonename uintptr) +TEXT ·Y__secs_to_zone(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVL local+16(FP), AX + MOVL AX, 16(SP) + MOVQ isdst+24(FP), AX + MOVQ AX, 24(SP) + MOVQ offset+32(FP), AX + MOVQ AX, 32(SP) + MOVQ oppoff+40(FP), AX + MOVQ AX, 40(SP) + MOVQ zonename+48(FP), AX + MOVQ AX, 48(SP) + CALL ·X__secs_to_zone(SB) + RET + +// func Y__setxid(tls *TLS, nr int32, id int32, eid int32, sid int32) (r int32) +TEXT ·Y__setxid(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL nr+8(FP), AX + MOVL AX, 8(SP) + MOVL id+12(FP), AX + MOVL AX, 12(SP) + MOVL eid+16(FP), AX + MOVL AX, 16(SP) + MOVL sid+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__setxid(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__shgetc(tls *TLS, f uintptr) (r int32) +TEXT ·Y__shgetc(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__shgetc(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__shlim(tls *TLS, f uintptr, lim Toff_t) +TEXT ·Y__shlim(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ lim+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__shlim(SB) + RET + +// func Y__shm_mapname(tls *TLS, name uintptr, buf uintptr) (r uintptr) +TEXT ·Y__shm_mapname(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__shm_mapname(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__sigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r1 int32) +TEXT ·Y__sigaction(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sig+8(FP), AX + MOVL AX, 8(SP) + MOVQ sa+16(FP), AX + MOVQ AX, 16(SP) + MOVQ old+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__sigaction(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Y__signbit(tls *TLS, x float64) (r int32) +TEXT ·Y__signbit(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__signbit(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__signbitf(tls *TLS, x float32) (r int32) +TEXT ·Y__signbitf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·X__signbitf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__signbitl(tls *TLS, x float64) (r int32) +TEXT ·Y__signbitl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__signbitl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__sigsetjmp_tail(tls *TLS, jb uintptr, ret int32) (r int32) +TEXT ·Y__sigsetjmp_tail(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ jb+8(FP), AX + MOVQ AX, 8(SP) + MOVL ret+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__sigsetjmp_tail(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__sin(tls *TLS, x float64, y float64, iy int32) (r1 float64) +TEXT ·Y__sin(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + MOVL iy+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__sin(SB) + MOVQ 32(SP), AX + MOVQ AX, r1+32(FP) + RET + +// func Y__sindf(tls *TLS, x float64) (r1 float32) +TEXT ·Y__sindf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__sindf(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Y__stack_chk_fail(tls *TLS) +TEXT ·Y__stack_chk_fail(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__stack_chk_fail(SB) + RET + +// func Y__stack_chk_fail_local(tls *TLS) +TEXT ·Y__stack_chk_fail_local(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__stack_chk_fail_local(SB) + RET + +// func Y__stdio_close(tls *TLS, f uintptr) (r int32) +TEXT ·Y__stdio_close(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__stdio_close(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__stdio_exit(tls *TLS) +TEXT ·Y__stdio_exit(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__stdio_exit(SB) + RET + +// func Y__stdio_exit_needed(tls *TLS) +TEXT ·Y__stdio_exit_needed(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__stdio_exit_needed(SB) + RET + +// func Y__stdio_read(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) +TEXT ·Y__stdio_read(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__stdio_read(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__stdio_seek(tls *TLS, f uintptr, off Toff_t, whence int32) (r Toff_t) +TEXT ·Y__stdio_seek(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ off+16(FP), AX + MOVQ AX, 16(SP) + MOVL whence+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__stdio_seek(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__stdio_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) +TEXT ·Y__stdio_write(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__stdio_write(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__stdout_write(tls *TLS, f uintptr, buf uintptr, len1 Tsize_t) (r Tsize_t) +TEXT ·Y__stdout_write(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__stdout_write(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__stpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) +TEXT ·Y__stpcpy(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__stpcpy(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__stpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Y__stpncpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__stpncpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strcasecmp_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) +TEXT ·Y__strcasecmp_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ loc+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__strcasecmp_l(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Y__strchrnul(tls *TLS, s uintptr, c int32) (r uintptr) +TEXT ·Y__strchrnul(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__strchrnul(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__strcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) +TEXT ·Y__strcoll_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ loc+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__strcoll_l(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Y__strerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) +TEXT ·Y__strerror_l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL e+8(FP), AX + MOVL AX, 8(SP) + MOVQ loc+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__strerror_l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__strftime_fmt_1(tls *TLS, s uintptr, l uintptr, f int32, tm uintptr, loc Tlocale_t, pad int32) (r uintptr) +TEXT ·Y__strftime_fmt_1(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + MOVL f+24(FP), AX + MOVL AX, 24(SP) + MOVQ tm+32(FP), AX + MOVQ AX, 32(SP) + MOVQ loc+40(FP), AX + MOVQ AX, 40(SP) + MOVL pad+48(FP), AX + MOVL AX, 48(SP) + CALL ·X__strftime_fmt_1(SB) + MOVQ 56(SP), AX + MOVQ AX, r+56(FP) + RET + +// func Y__strftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) +TEXT ·Y__strftime_l(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + MOVQ tm+32(FP), AX + MOVQ AX, 32(SP) + MOVQ loc+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__strftime_l(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Y__strncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, loc Tlocale_t) (r1 int32) +TEXT ·Y__strncasecmp_l(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ loc+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__strncasecmp_l(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Y__strtod_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) +TEXT ·Y__strtod_l(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__strtod_l(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strtof_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float32) +TEXT ·Y__strtof_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__strtof_l(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__strtoimax_internal(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) +TEXT ·Y__strtoimax_internal(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__strtoimax_internal(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strtol_internal(tls *TLS, s uintptr, p uintptr, base int32) (r int64) +TEXT ·Y__strtol_internal(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__strtol_internal(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strtold_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) +TEXT ·Y__strtold_l(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__strtold_l(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strtoll_internal(tls *TLS, s uintptr, p uintptr, base int32) (r int64) +TEXT ·Y__strtoll_internal(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__strtoll_internal(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strtoul_internal(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) +TEXT ·Y__strtoul_internal(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__strtoul_internal(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strtoull_internal(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) +TEXT ·Y__strtoull_internal(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__strtoull_internal(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strtoumax_internal(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) +TEXT ·Y__strtoumax_internal(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__strtoumax_internal(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__strxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) +TEXT ·Y__strxfrm_l(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ loc+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__strxfrm_l(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Y__sync_synchronize(t *TLS) +TEXT ·Y__sync_synchronize(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__sync_synchronize(SB) + RET + +// func Y__sync_val_compare_and_swapInt16(t *TLS, ptr uintptr, oldval, newval int16) (r int16) +TEXT ·Y__sync_val_compare_and_swapInt16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW oldval+16(FP), AX + MOVW AX, 16(SP) + MOVW newval+18(FP), AX + MOVW AX, 18(SP) + CALL ·X__sync_val_compare_and_swapInt16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__sync_val_compare_and_swapInt32(t *TLS, ptr uintptr, oldval, newval int32) (r int32) +TEXT ·Y__sync_val_compare_and_swapInt32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL oldval+16(FP), AX + MOVL AX, 16(SP) + MOVL newval+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__sync_val_compare_and_swapInt32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__sync_val_compare_and_swapInt64(t *TLS, ptr uintptr, oldval, newval int64) (r int64) +TEXT ·Y__sync_val_compare_and_swapInt64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ oldval+16(FP), AX + MOVQ AX, 16(SP) + MOVQ newval+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__sync_val_compare_and_swapInt64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__sync_val_compare_and_swapInt8(t *TLS, ptr uintptr, oldval, newval int8) (r int8) +TEXT ·Y__sync_val_compare_and_swapInt8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB oldval+16(FP), AX + MOVB AX, 16(SP) + MOVB newval+17(FP), AX + MOVB AX, 17(SP) + CALL ·X__sync_val_compare_and_swapInt8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__sync_val_compare_and_swapUint16(t *TLS, ptr uintptr, oldval, newval uint16) (r uint16) +TEXT ·Y__sync_val_compare_and_swapUint16(SB),$32-26 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVW oldval+16(FP), AX + MOVW AX, 16(SP) + MOVW newval+18(FP), AX + MOVW AX, 18(SP) + CALL ·X__sync_val_compare_and_swapUint16(SB) + MOVW 24(SP), AX + MOVW AX, r+24(FP) + RET + +// func Y__sync_val_compare_and_swapUint32(t *TLS, ptr uintptr, oldval, newval uint32) (r uint32) +TEXT ·Y__sync_val_compare_and_swapUint32(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVL oldval+16(FP), AX + MOVL AX, 16(SP) + MOVL newval+20(FP), AX + MOVL AX, 20(SP) + CALL ·X__sync_val_compare_and_swapUint32(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__sync_val_compare_and_swapUint64(t *TLS, ptr uintptr, oldval, newval uint64) (r uint64) +TEXT ·Y__sync_val_compare_and_swapUint64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ oldval+16(FP), AX + MOVQ AX, 16(SP) + MOVQ newval+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__sync_val_compare_and_swapUint64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Y__sync_val_compare_and_swapUint8(t *TLS, ptr uintptr, oldval, newval uint8) (r uint8) +TEXT ·Y__sync_val_compare_and_swapUint8(SB),$32-25 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVB oldval+16(FP), AX + MOVB AX, 16(SP) + MOVB newval+17(FP), AX + MOVB AX, 17(SP) + CALL ·X__sync_val_compare_and_swapUint8(SB) + MOVB 24(SP), AX + MOVB AX, r+24(FP) + RET + +// func Y__syscall0(tls *TLS, n long) (_2 long) +TEXT ·Y__syscall0(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__syscall0(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Y__syscall1(tls *TLS, n, a1 long) (_2 long) +TEXT ·Y__syscall1(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__syscall1(SB) + MOVQ 24(SP), AX + MOVQ AX, _2+24(FP) + RET + +// func Y__syscall2(tls *TLS, n, a1, a2 long) (_2 long) +TEXT ·Y__syscall2(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ a2+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__syscall2(SB) + MOVQ 32(SP), AX + MOVQ AX, _2+32(FP) + RET + +// func Y__syscall3(tls *TLS, n, a1, a2, a3 long) (_2 long) +TEXT ·Y__syscall3(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ a2+24(FP), AX + MOVQ AX, 24(SP) + MOVQ a3+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__syscall3(SB) + MOVQ 40(SP), AX + MOVQ AX, _2+40(FP) + RET + +// func Y__syscall4(tls *TLS, n, a1, a2, a3, a4 long) (_2 long) +TEXT ·Y__syscall4(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ a2+24(FP), AX + MOVQ AX, 24(SP) + MOVQ a3+32(FP), AX + MOVQ AX, 32(SP) + MOVQ a4+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__syscall4(SB) + MOVQ 48(SP), AX + MOVQ AX, _2+48(FP) + RET + +// func Y__syscall5(tls *TLS, n, a1, a2, a3, a4, a5 long) (_2 long) +TEXT ·Y__syscall5(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ a2+24(FP), AX + MOVQ AX, 24(SP) + MOVQ a3+32(FP), AX + MOVQ AX, 32(SP) + MOVQ a4+40(FP), AX + MOVQ AX, 40(SP) + MOVQ a5+48(FP), AX + MOVQ AX, 48(SP) + CALL ·X__syscall5(SB) + MOVQ 56(SP), AX + MOVQ AX, _2+56(FP) + RET + +// func Y__syscall6(tls *TLS, n, a1, a2, a3, a4, a5, a6 long) (_2 long) +TEXT ·Y__syscall6(SB),$72-72 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ a2+24(FP), AX + MOVQ AX, 24(SP) + MOVQ a3+32(FP), AX + MOVQ AX, 32(SP) + MOVQ a4+40(FP), AX + MOVQ AX, 40(SP) + MOVQ a5+48(FP), AX + MOVQ AX, 48(SP) + MOVQ a6+56(FP), AX + MOVQ AX, 56(SP) + CALL ·X__syscall6(SB) + MOVQ 64(SP), AX + MOVQ AX, _2+64(FP) + RET + +// func Y__syscall_ret(tls *TLS, r uint64) (r1 int64) +TEXT ·Y__syscall_ret(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ r+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__syscall_ret(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Y__tan(tls *TLS, x float64, y float64, odd int32) (r1 float64) +TEXT ·Y__tan(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + MOVL odd+24(FP), AX + MOVL AX, 24(SP) + CALL ·X__tan(SB) + MOVQ 32(SP), AX + MOVQ AX, r1+32(FP) + RET + +// func Y__tandf(tls *TLS, x float64, odd int32) (r1 float32) +TEXT ·Y__tandf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVL odd+16(FP), AX + MOVL AX, 16(SP) + CALL ·X__tandf(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Y__tm_to_secs(tls *TLS, tm uintptr) (r int64) +TEXT ·Y__tm_to_secs(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tm+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__tm_to_secs(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__tm_to_tzname(tls *TLS, tm uintptr) (r uintptr) +TEXT ·Y__tm_to_tzname(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tm+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__tm_to_tzname(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__tolower_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__tolower_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__tolower_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__toread(tls *TLS, f uintptr) (r int32) +TEXT ·Y__toread(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__toread(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__toread_needs_stdio_exit(tls *TLS) +TEXT ·Y__toread_needs_stdio_exit(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__toread_needs_stdio_exit(SB) + RET + +// func Y__toupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Y__toupper_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__toupper_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__towctrans_l(tls *TLS, c Twint_t, t Twctrans_t, l Tlocale_t) (r Twint_t) +TEXT ·Y__towctrans_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ t+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__towctrans_l(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__towlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) +TEXT ·Y__towlower_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__towlower_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__towrite(tls *TLS, f uintptr) (r int32) +TEXT ·Y__towrite(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__towrite(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__towrite_needs_stdio_exit(tls *TLS) +TEXT ·Y__towrite_needs_stdio_exit(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__towrite_needs_stdio_exit(SB) + RET + +// func Y__towupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) +TEXT ·Y__towupper_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__towupper_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Y__tre_mem_alloc_impl(tls *TLS, mem Ttre_mem_t, provided int32, provided_block uintptr, zero int32, size Tsize_t) (r uintptr) +TEXT ·Y__tre_mem_alloc_impl(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ mem+8(FP), AX + MOVQ AX, 8(SP) + MOVL provided+16(FP), AX + MOVL AX, 16(SP) + MOVQ provided_block+24(FP), AX + MOVQ AX, 24(SP) + MOVL zero+32(FP), AX + MOVL AX, 32(SP) + MOVQ size+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__tre_mem_alloc_impl(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Y__tre_mem_destroy(tls *TLS, mem Ttre_mem_t) +TEXT ·Y__tre_mem_destroy(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ mem+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__tre_mem_destroy(SB) + RET + +// func Y__tre_mem_new_impl(tls *TLS, provided int32, provided_block uintptr) (r Ttre_mem_t) +TEXT ·Y__tre_mem_new_impl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL provided+8(FP), AX + MOVL AX, 8(SP) + MOVQ provided_block+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__tre_mem_new_impl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__tsearch_balance(tls *TLS, p uintptr) (r int32) +TEXT ·Y__tsearch_balance(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__tsearch_balance(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__uflow(tls *TLS, f uintptr) (r int32) +TEXT ·Y__uflow(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__uflow(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Y__unlist_locked_file(tls *TLS, f uintptr) +TEXT ·Y__unlist_locked_file(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__unlist_locked_file(SB) + RET + +// func Y__unlockfile(tls *TLS, file uintptr) +TEXT ·Y__unlockfile(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ file+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__unlockfile(SB) + RET + +// func Y__uselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) +TEXT ·Y__uselocale(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ new1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__uselocale(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__vm_wait(tls *TLS) +TEXT ·Y__vm_wait(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X__vm_wait(SB) + RET + +// func Y__wcscoll_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) +TEXT ·Y__wcscoll_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ locale+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__wcscoll_l(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Y__wcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) +TEXT ·Y__wcsftime_l(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + MOVQ tm+32(FP), AX + MOVQ AX, 32(SP) + MOVQ loc+40(FP), AX + MOVQ AX, 40(SP) + CALL ·X__wcsftime_l(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Y__wcsxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) +TEXT ·Y__wcsxfrm_l(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ loc+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__wcsxfrm_l(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Y__wctrans_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctrans_t) +TEXT ·Y__wctrans_l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__wctrans_l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__wctype_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctype_t) +TEXT ·Y__wctype_l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__wctype_l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y__xmknod(tls *TLS, ver int32, path uintptr, mode Tmode_t, dev uintptr) (r int32) +TEXT ·Y__xmknod(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ver+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL mode+24(FP), AX + MOVL AX, 24(SP) + MOVQ dev+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__xmknod(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Y__xmknodat(tls *TLS, ver int32, fd int32, path uintptr, mode Tmode_t, dev uintptr) (r int32) +TEXT ·Y__xmknodat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ver+8(FP), AX + MOVL AX, 8(SP) + MOVL fd+12(FP), AX + MOVL AX, 12(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL mode+24(FP), AX + MOVL AX, 24(SP) + MOVQ dev+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X__xmknodat(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Y__xpg_basename(tls *TLS, s uintptr) (r uintptr) +TEXT ·Y__xpg_basename(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X__xpg_basename(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Y__xpg_strerror_r(tls *TLS, err int32, buf uintptr, buflen Tsize_t) (r int32) +TEXT ·Y__xpg_strerror_r(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL err+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buflen+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__xpg_strerror_r(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__xstat(tls *TLS, ver int32, path uintptr, buf uintptr) (r int32) +TEXT ·Y__xstat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ver+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X__xstat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Y__year_to_secs(tls *TLS, year int64, is_leap uintptr) (r int64) +TEXT ·Y__year_to_secs(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ year+8(FP), AX + MOVQ AX, 8(SP) + MOVQ is_leap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·X__year_to_secs(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Y_exit(tls *TLS, status int32) +TEXT ·Y_exit(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL status+8(FP), AX + MOVL AX, 8(SP) + CALL ·X_exit(SB) + RET + +// func Y_flushlbf(tls *TLS) +TEXT ·Y_flushlbf(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·X_flushlbf(SB) + RET + +// func Y_longjmp(t *TLS, env uintptr, val int32) +TEXT ·Y_longjmp(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ env+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + CALL ·X_longjmp(SB) + RET + +// func Y_obstack_begin(t *TLS, obstack uintptr, size, alignment int32, chunkfun, freefun uintptr) (_4 int32) +TEXT ·Y_obstack_begin(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ obstack+8(FP), AX + MOVQ AX, 8(SP) + MOVL size+16(FP), AX + MOVL AX, 16(SP) + MOVL alignment+20(FP), AX + MOVL AX, 20(SP) + MOVQ chunkfun+24(FP), AX + MOVQ AX, 24(SP) + MOVQ freefun+32(FP), AX + MOVQ AX, 32(SP) + CALL ·X_obstack_begin(SB) + MOVL 40(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Y_obstack_newchunk(t *TLS, obstack uintptr, length int32) (_3 int32) +TEXT ·Y_obstack_newchunk(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ obstack+8(FP), AX + MOVQ AX, 8(SP) + MOVL length+16(FP), AX + MOVL AX, 16(SP) + CALL ·X_obstack_newchunk(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Y_pthread_cleanup_pop(tls *TLS, _ uintptr, run int32) +TEXT ·Y_pthread_cleanup_pop(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _+8(FP), AX + MOVQ AX, 8(SP) + MOVL run+16(FP), AX + MOVL AX, 16(SP) + CALL ·X_pthread_cleanup_pop(SB) + RET + +// func Y_pthread_cleanup_push(tls *TLS, _, f, x uintptr) +TEXT ·Y_pthread_cleanup_push(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + MOVQ x+24(FP), AX + MOVQ AX, 24(SP) + CALL ·X_pthread_cleanup_push(SB) + RET + +// func Y_setjmp(t *TLS, env uintptr) (_2 int32) +TEXT ·Y_setjmp(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ env+8(FP), AX + MOVQ AX, 8(SP) + CALL ·X_setjmp(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ya64l(tls *TLS, s uintptr) (r int64) +TEXT ·Ya64l(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xa64l(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yabort(tls *TLS) +TEXT ·Yabort(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xabort(SB) + RET + +// func Yabs(tls *TLS, a int32) (r int32) +TEXT ·Yabs(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL a+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xabs(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yaccept(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) +TEXT ·Yaccept(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ addr+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xaccept(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Yaccept4(tls *TLS, fd int32, addr uintptr, len1 uintptr, flg int32) (r1 int32) +TEXT ·Yaccept4(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ addr+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVL flg+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xaccept4(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Yaccess(tls *TLS, filename uintptr, amode int32) (r int32) +TEXT ·Yaccess(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVL amode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xaccess(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yacct(tls *TLS, filename uintptr) (r int32) +TEXT ·Yacct(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xacct(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yacos(tls *TLS, x float64) (r float64) +TEXT ·Yacos(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xacos(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yacosf(tls *TLS, x float32) (r float32) +TEXT ·Yacosf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xacosf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yacosh(tls *TLS, x float64) (r float64) +TEXT ·Yacosh(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xacosh(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yacoshf(tls *TLS, x float32) (r float32) +TEXT ·Yacoshf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xacoshf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yacoshl(tls *TLS, x float64) (r float64) +TEXT ·Yacoshl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xacoshl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yacosl(tls *TLS, x float64) (r float64) +TEXT ·Yacosl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xacosl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yaddmntent(tls *TLS, f uintptr, mnt uintptr) (r int32) +TEXT ·Yaddmntent(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mnt+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xaddmntent(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yadjtime(tls *TLS, in uintptr, out uintptr) (r int32) +TEXT ·Yadjtime(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ in+8(FP), AX + MOVQ AX, 8(SP) + MOVQ out+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xadjtime(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yadjtimex(tls *TLS, tx uintptr) (r int32) +TEXT ·Yadjtimex(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tx+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xadjtimex(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yalarm(tls *TLS, seconds uint32) (r uint32) +TEXT ·Yalarm(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL seconds+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xalarm(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yalloca(tls *TLS, size Tsize_t) (_2 uintptr) +TEXT ·Yalloca(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ size+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xalloca(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Yalphasort(tls *TLS, a uintptr, b uintptr) (r int32) +TEXT ·Yalphasort(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xalphasort(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yarch_prctl(tls *TLS, code int32, addr uint64) (r int32) +TEXT ·Yarch_prctl(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL code+8(FP), AX + MOVL AX, 8(SP) + MOVQ addr+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xarch_prctl(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yasctime(tls *TLS, tm uintptr) (r uintptr) +TEXT ·Yasctime(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tm+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xasctime(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yasctime_r(tls *TLS, tm uintptr, buf uintptr) (r uintptr) +TEXT ·Yasctime_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tm+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xasctime_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yasin(tls *TLS, x float64) (r1 float64) +TEXT ·Yasin(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xasin(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Yasinf(tls *TLS, x float32) (r float32) +TEXT ·Yasinf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xasinf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yasinh(tls *TLS, x3 float64) (r float64) +TEXT ·Yasinh(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xasinh(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yasinhf(tls *TLS, x3 float32) (r float32) +TEXT ·Yasinhf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xasinhf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yasinhl(tls *TLS, x float64) (r float64) +TEXT ·Yasinhl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xasinhl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yasinl(tls *TLS, x float64) (r float64) +TEXT ·Yasinl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xasinl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yasprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Yasprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xasprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) +TEXT ·Yat_quick_exit(SB),$32-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_func+8(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_at_quick_exit_0(SB) // Create the closure for calling __ccgo_fp_func + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + CALL ·Xat_quick_exit(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_at_quick_exit_0(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ __ccgo_fp+8(FP), AX + CALL *AX // Call the ABI0 code ptr + RET + +// func Yatan(tls *TLS, x3 float64) (r float64) +TEXT ·Yatan(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatan(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yatan2(tls *TLS, y float64, x float64) (r float64) +TEXT ·Yatan2(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ y+8(FP), AX + MOVQ AX, 8(SP) + MOVQ x+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xatan2(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yatan2f(tls *TLS, y float32, x float32) (r float32) +TEXT ·Yatan2f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL y+8(FP), AX + MOVL AX, 8(SP) + MOVL x+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xatan2f(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yatan2l(tls *TLS, y float64, x float64) (r float64) +TEXT ·Yatan2l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ y+8(FP), AX + MOVQ AX, 8(SP) + MOVQ x+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xatan2l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yatanf(tls *TLS, x3 float32) (r float32) +TEXT ·Yatanf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xatanf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yatanh(tls *TLS, x3 float64) (r float64) +TEXT ·Yatanh(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatanh(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yatanhf(tls *TLS, x3 float32) (r float32) +TEXT ·Yatanhf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xatanhf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yatanhl(tls *TLS, x float64) (r float64) +TEXT ·Yatanhl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatanhl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yatanl(tls *TLS, x float64) (r float64) +TEXT ·Yatanl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatanl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yatexit(tls *TLS, func_ uintptr) (r int32) +TEXT ·Yatexit(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ func_+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatexit(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yatof(tls *TLS, s uintptr) (r float64) +TEXT ·Yatof(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatof(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yatoi(tls *TLS, s uintptr) (r int32) +TEXT ·Yatoi(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatoi(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yatol(tls *TLS, s uintptr) (r int64) +TEXT ·Yatol(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatol(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yatoll(tls *TLS, s uintptr) (r int64) +TEXT ·Yatoll(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xatoll(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ybacktrace(t *TLS, buf uintptr, size int32) (_3 int32) +TEXT ·Ybacktrace(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVL size+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xbacktrace(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Ybacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) +TEXT ·Ybacktrace_symbols_fd(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buffer+8(FP), AX + MOVQ AX, 8(SP) + MOVL size+16(FP), AX + MOVL AX, 16(SP) + MOVL fd+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xbacktrace_symbols_fd(SB) + RET + +// func Ybasename(tls *TLS, s uintptr) (r uintptr) +TEXT ·Ybasename(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xbasename(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ybcmp(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) (r int32) +TEXT ·Ybcmp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xbcmp(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ybcopy(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) +TEXT ·Ybcopy(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xbcopy(SB) + RET + +// func Ybind(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) +TEXT ·Ybind(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ addr+16(FP), AX + MOVQ AX, 16(SP) + MOVL len1+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xbind(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ybind_textdomain_codeset(tls *TLS, domainname uintptr, codeset uintptr) (r uintptr) +TEXT ·Ybind_textdomain_codeset(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ domainname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ codeset+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xbind_textdomain_codeset(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ybindtextdomain(tls *TLS, domainname uintptr, dirname uintptr) (r uintptr) +TEXT ·Ybindtextdomain(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ domainname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ dirname+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xbindtextdomain(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ybrk(tls *TLS, end uintptr) (r int32) +TEXT ·Ybrk(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ end+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xbrk(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ybsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp uintptr) (r uintptr) +TEXT ·Ybsearch(SB),$64-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cmp+40(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_bsearch_4(SB) // Create the closure for calling __ccgo_fp_cmp + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ base+16(FP), AX + MOVQ AX, 16(SP) + MOVQ nel+24(FP), AX + MOVQ AX, 24(SP) + MOVQ width+32(FP), AX + MOVQ AX, 32(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 40(SP) + CALL ·Xbsearch(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_bsearch_4(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Ybtowc(tls *TLS, c int32) (r Twint_t) +TEXT ·Ybtowc(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xbtowc(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ybzero(tls *TLS, s uintptr, n Tsize_t) +TEXT ·Ybzero(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xbzero(SB) + RET + +// func Yc16rtomb(tls *TLS, s uintptr, c16 Tchar16_t, ps uintptr) (r Tsize_t) +TEXT ·Yc16rtomb(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVW c16+16(FP), AX + MOVW AX, 16(SP) + MOVQ ps+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xc16rtomb(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yc32rtomb(tls *TLS, s uintptr, c32 Tchar32_t, ps uintptr) (r Tsize_t) +TEXT ·Yc32rtomb(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c32+16(FP), AX + MOVL AX, 16(SP) + MOVQ ps+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xc32rtomb(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ycabs(tls *TLS, z complex128) (r float64) +TEXT ·Ycabs(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcabs(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycabsf(tls *TLS, z complex64) (r float32) +TEXT ·Ycabsf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcabsf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycabsl(tls *TLS, z complex128) (r float64) +TEXT ·Ycabsl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcabsl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycacos(tls *TLS, z complex128) (r complex128) +TEXT ·Ycacos(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcacos(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycacosf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycacosf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcacosf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycacosh(tls *TLS, z complex128) (r complex128) +TEXT ·Ycacosh(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcacosh(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycacoshf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycacoshf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcacoshf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycacoshl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycacoshl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcacoshl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycacosl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycacosl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcacosl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycalloc(tls *TLS, m Tsize_t, n Tsize_t) (r uintptr) +TEXT ·Ycalloc(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcalloc(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycapget(tls *TLS, a uintptr, b uintptr) (r int32) +TEXT ·Ycapget(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcapget(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ycapset(tls *TLS, a uintptr, b uintptr) (r int32) +TEXT ·Ycapset(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcapset(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ycarg(tls *TLS, z complex128) (r float64) +TEXT ·Ycarg(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcarg(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycargf(tls *TLS, z complex64) (r float32) +TEXT ·Ycargf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcargf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycargl(tls *TLS, z complex128) (r float64) +TEXT ·Ycargl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcargl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycasin(tls *TLS, z complex128) (r1 complex128) +TEXT ·Ycasin(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcasin(SB) + MOVQ 24(SP), AX + MOVQ AX, r1_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r1_imag+32(FP) + RET + +// func Ycasinf(tls *TLS, z complex64) (r1 complex64) +TEXT ·Ycasinf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcasinf(SB) + MOVL 16(SP), AX + MOVL AX, r1_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r1_imag+20(FP) + RET + +// func Ycasinh(tls *TLS, z complex128) (r complex128) +TEXT ·Ycasinh(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcasinh(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycasinhf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycasinhf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcasinhf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycasinhl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycasinhl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcasinhl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycasinl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycasinl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcasinl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycatan(tls *TLS, z complex128) (r complex128) +TEXT ·Ycatan(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcatan(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycatanf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycatanf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcatanf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycatanh(tls *TLS, z complex128) (r complex128) +TEXT ·Ycatanh(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcatanh(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycatanhf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycatanhf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcatanhf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycatanhl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycatanhl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcatanhl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycatanl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycatanl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcatanl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycatclose(tls *TLS, catd Tnl_catd) (r int32) +TEXT ·Ycatclose(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ catd+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcatclose(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycatgets(tls *TLS, catd Tnl_catd, set_id int32, msg_id int32, s uintptr) (r uintptr) +TEXT ·Ycatgets(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ catd+8(FP), AX + MOVQ AX, 8(SP) + MOVL set_id+16(FP), AX + MOVL AX, 16(SP) + MOVL msg_id+20(FP), AX + MOVL AX, 20(SP) + MOVQ s+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xcatgets(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ycatopen(tls *TLS, name uintptr, oflag int32) (r Tnl_catd) +TEXT ·Ycatopen(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVL oflag+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xcatopen(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycbrt(tls *TLS, x float64) (r1 float64) +TEXT ·Ycbrt(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcbrt(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Ycbrtf(tls *TLS, x float32) (r1 float32) +TEXT ·Ycbrtf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xcbrtf(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Ycbrtl(tls *TLS, x float64) (r float64) +TEXT ·Ycbrtl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcbrtl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yccos(tls *TLS, z complex128) (r complex128) +TEXT ·Yccos(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xccos(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yccosf(tls *TLS, z complex64) (r complex64) +TEXT ·Yccosf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xccosf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Yccosh(tls *TLS, z complex128) (r complex128) +TEXT ·Yccosh(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xccosh(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yccoshf(tls *TLS, z complex64) (r complex64) +TEXT ·Yccoshf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xccoshf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Yccoshl(tls *TLS, z complex128) (r complex128) +TEXT ·Yccoshl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xccoshl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yccosl(tls *TLS, z complex128) (r complex128) +TEXT ·Yccosl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xccosl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yceil(tls *TLS, x3 float64) (r float64) +TEXT ·Yceil(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xceil(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yceilf(tls *TLS, x3 float32) (r float32) +TEXT ·Yceilf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xceilf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yceill(tls *TLS, x float64) (r float64) +TEXT ·Yceill(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xceill(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ycexp(tls *TLS, z complex128) (r complex128) +TEXT ·Ycexp(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcexp(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycexpf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycexpf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcexpf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycexpl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycexpl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcexpl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycfgetispeed(tls *TLS, tio uintptr) (r Tspeed_t) +TEXT ·Ycfgetispeed(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tio+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcfgetispeed(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycfgetospeed(tls *TLS, tio uintptr) (r Tspeed_t) +TEXT ·Ycfgetospeed(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tio+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcfgetospeed(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycfmakeraw(tls *TLS, t uintptr) +TEXT ·Ycfmakeraw(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcfmakeraw(SB) + RET + +// func Ycfsetispeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) +TEXT ·Ycfsetispeed(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tio+8(FP), AX + MOVQ AX, 8(SP) + MOVL speed+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xcfsetispeed(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ycfsetospeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) +TEXT ·Ycfsetospeed(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tio+8(FP), AX + MOVQ AX, 8(SP) + MOVL speed+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xcfsetospeed(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ycfsetspeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) +TEXT ·Ycfsetspeed(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tio+8(FP), AX + MOVQ AX, 8(SP) + MOVL speed+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xcfsetspeed(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ychdir(tls *TLS, path uintptr) (r int32) +TEXT ·Ychdir(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xchdir(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ychmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) +TEXT ·Ychmod(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL mode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xchmod(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ychown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) +TEXT ·Ychown(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL uid+16(FP), AX + MOVL AX, 16(SP) + MOVL gid+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xchown(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ychroot(tls *TLS, path uintptr) (r int32) +TEXT ·Ychroot(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xchroot(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycimag(tls *TLS, z complex128) (r float64) +TEXT ·Ycimag(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcimag(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycimagf(tls *TLS, z complex64) (r float32) +TEXT ·Ycimagf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcimagf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycimagl(tls *TLS, z complex128) (r float64) +TEXT ·Ycimagl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcimagl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yclearenv(tls *TLS) (r int32) +TEXT ·Yclearenv(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xclearenv(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yclearerr(tls *TLS, f uintptr) +TEXT ·Yclearerr(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xclearerr(SB) + RET + +// func Yclearerr_unlocked(tls *TLS, f uintptr) +TEXT ·Yclearerr_unlocked(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xclearerr_unlocked(SB) + RET + +// func Yclock(tls *TLS) (r Tclock_t) +TEXT ·Yclock(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xclock(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Yclock_adjtime(tls *TLS, clock_id Tclockid_t, utx uintptr) (r1 int32) +TEXT ·Yclock_adjtime(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL clock_id+8(FP), AX + MOVL AX, 8(SP) + MOVQ utx+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xclock_adjtime(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Yclock_getcpuclockid(tls *TLS, pid Tpid_t, clk uintptr) (r int32) +TEXT ·Yclock_getcpuclockid(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVQ clk+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xclock_getcpuclockid(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yclock_getres(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) +TEXT ·Yclock_getres(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL clk+8(FP), AX + MOVL AX, 8(SP) + MOVQ ts+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xclock_getres(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yclock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) +TEXT ·Yclock_gettime(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL clk+8(FP), AX + MOVL AX, 8(SP) + MOVQ ts+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xclock_gettime(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yclock_nanosleep(tls *TLS, clk Tclockid_t, flags int32, req uintptr, rem uintptr) (r int32) +TEXT ·Yclock_nanosleep(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL clk+8(FP), AX + MOVL AX, 8(SP) + MOVL flags+12(FP), AX + MOVL AX, 12(SP) + MOVQ req+16(FP), AX + MOVQ AX, 16(SP) + MOVQ rem+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xclock_nanosleep(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yclock_settime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) +TEXT ·Yclock_settime(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL clk+8(FP), AX + MOVL AX, 8(SP) + MOVQ ts+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xclock_settime(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yclog(tls *TLS, z complex128) (r1 complex128) +TEXT ·Yclog(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xclog(SB) + MOVQ 24(SP), AX + MOVQ AX, r1_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r1_imag+32(FP) + RET + +// func Yclogf(tls *TLS, z complex64) (r1 complex64) +TEXT ·Yclogf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xclogf(SB) + MOVL 16(SP), AX + MOVL AX, r1_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r1_imag+20(FP) + RET + +// func Yclogl(tls *TLS, z complex128) (r complex128) +TEXT ·Yclogl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xclogl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yclose(tls *TLS, fd int32) (r1 int32) +TEXT ·Yclose(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xclose(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yclosedir(tls *TLS, dir uintptr) (r int32) +TEXT ·Yclosedir(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dir+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xclosedir(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycloselog(tls *TLS) +TEXT ·Ycloselog(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xcloselog(SB) + RET + +// func Yconfstr(tls *TLS, name int32, buf uintptr, len1 Tsize_t) (r Tsize_t) +TEXT ·Yconfstr(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL name+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xconfstr(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yconj(tls *TLS, z complex128) (r complex128) +TEXT ·Yconj(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xconj(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yconjf(tls *TLS, z complex64) (r complex64) +TEXT ·Yconjf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xconjf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Yconjl(tls *TLS, z complex128) (r complex128) +TEXT ·Yconjl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xconjl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yconnect(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) +TEXT ·Yconnect(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ addr+16(FP), AX + MOVQ AX, 16(SP) + MOVL len1+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xconnect(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ycopy_file_range(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) +TEXT ·Ycopy_file_range(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd_in+8(FP), AX + MOVL AX, 8(SP) + MOVQ off_in+16(FP), AX + MOVQ AX, 16(SP) + MOVL fd_out+24(FP), AX + MOVL AX, 24(SP) + MOVQ off_out+32(FP), AX + MOVQ AX, 32(SP) + MOVQ len1+40(FP), AX + MOVQ AX, 40(SP) + MOVL flags+48(FP), AX + MOVL AX, 48(SP) + CALL ·Xcopy_file_range(SB) + MOVQ 56(SP), AX + MOVQ AX, r+56(FP) + RET + +// func Ycopysign(tls *TLS, x float64, y float64) (r float64) +TEXT ·Ycopysign(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcopysign(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycopysignf(tls *TLS, x float32, y float32) (r float32) +TEXT ·Ycopysignf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcopysignf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycopysignl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Ycopysignl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcopysignl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycos(tls *TLS, x3 float64) (r float64) +TEXT ·Ycos(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcos(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ycosf(tls *TLS, x3 float32) (r float32) +TEXT ·Ycosf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xcosf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycosh(tls *TLS, x3 float64) (r float64) +TEXT ·Ycosh(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcosh(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ycoshf(tls *TLS, x3 float32) (r float32) +TEXT ·Ycoshf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xcoshf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycoshl(tls *TLS, x float64) (r float64) +TEXT ·Ycoshl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcoshl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ycosl(tls *TLS, x float64) (r float64) +TEXT ·Ycosl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcosl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ycpow(tls *TLS, z complex128, c complex128) (r complex128) +TEXT ·Ycpow(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + MOVQ c_real+24(FP), AX + MOVQ AX, 24(SP) + MOVQ c_imag+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xcpow(SB) + MOVQ 40(SP), AX + MOVQ AX, r_real+40(FP) + MOVQ 48(SP), AX + MOVQ AX, r_imag+48(FP) + RET + +// func Ycpowf(tls *TLS, z complex64, c complex64) (r complex64) +TEXT ·Ycpowf(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + MOVL c_real+16(FP), AX + MOVL AX, 16(SP) + MOVL c_imag+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xcpowf(SB) + MOVL 24(SP), AX + MOVL AX, r_real+24(FP) + MOVL 28(SP), AX + MOVL AX, r_imag+28(FP) + RET + +// func Ycpowl(tls *TLS, z complex128, c complex128) (r complex128) +TEXT ·Ycpowl(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + MOVQ c_real+24(FP), AX + MOVQ AX, 24(SP) + MOVQ c_imag+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xcpowl(SB) + MOVQ 40(SP), AX + MOVQ AX, r_real+40(FP) + MOVQ 48(SP), AX + MOVQ AX, r_imag+48(FP) + RET + +// func Ycproj(tls *TLS, z complex128) (r complex128) +TEXT ·Ycproj(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcproj(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycprojf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycprojf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcprojf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycprojl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycprojl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcprojl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycreal(tls *TLS, z complex128) (r float64) +TEXT ·Ycreal(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcreal(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycrealf(tls *TLS, z complex64) (r float32) +TEXT ·Ycrealf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcrealf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ycreall(tls *TLS, z complex128) (r float64) +TEXT ·Ycreall(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcreall(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycreat(tls *TLS, filename uintptr, mode Tmode_t) (r int32) +TEXT ·Ycreat(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVL mode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xcreat(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ycrypt(tls *TLS, key uintptr, salt uintptr) (r uintptr) +TEXT ·Ycrypt(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ salt+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcrypt(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycrypt_r(tls *TLS, key uintptr, salt uintptr, data uintptr) (r uintptr) +TEXT ·Ycrypt_r(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ salt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ data+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xcrypt_r(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ycsin(tls *TLS, z complex128) (r complex128) +TEXT ·Ycsin(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcsin(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycsinf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycsinf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcsinf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycsinh(tls *TLS, z complex128) (r complex128) +TEXT ·Ycsinh(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcsinh(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycsinhf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycsinhf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcsinhf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycsinhl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycsinhl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcsinhl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycsinl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycsinl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcsinl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycsqrt(tls *TLS, z complex128) (r complex128) +TEXT ·Ycsqrt(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcsqrt(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Ycsqrtf(tls *TLS, z complex64) (r complex64) +TEXT ·Ycsqrtf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xcsqrtf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Ycsqrtl(tls *TLS, z complex128) (r complex128) +TEXT ·Ycsqrtl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xcsqrtl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yctan(tls *TLS, z complex128) (r complex128) +TEXT ·Yctan(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xctan(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yctanf(tls *TLS, z complex64) (r complex64) +TEXT ·Yctanf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xctanf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Yctanh(tls *TLS, z complex128) (r complex128) +TEXT ·Yctanh(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xctanh(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yctanhf(tls *TLS, z complex64) (r complex64) +TEXT ·Yctanhf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL z_real+8(FP), AX + MOVL AX, 8(SP) + MOVL z_imag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xctanhf(SB) + MOVL 16(SP), AX + MOVL AX, r_real+16(FP) + MOVL 20(SP), AX + MOVL AX, r_imag+20(FP) + RET + +// func Yctanhl(tls *TLS, z complex128) (r complex128) +TEXT ·Yctanhl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xctanhl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yctanl(tls *TLS, z complex128) (r complex128) +TEXT ·Yctanl(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ z_real+8(FP), AX + MOVQ AX, 8(SP) + MOVQ z_imag+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xctanl(SB) + MOVQ 24(SP), AX + MOVQ AX, r_real+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_imag+32(FP) + RET + +// func Yctermid(tls *TLS, s uintptr) (r uintptr) +TEXT ·Yctermid(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xctermid(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yctime(tls *TLS, t uintptr) (r uintptr) +TEXT ·Yctime(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xctime(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yctime_r(tls *TLS, t uintptr, buf uintptr) (r uintptr) +TEXT ·Yctime_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xctime_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ycuserid(tls *TLS, buf uintptr) (r uintptr) +TEXT ·Ycuserid(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xcuserid(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ydcgettext(tls *TLS, domainname uintptr, msgid uintptr, category int32) (r uintptr) +TEXT ·Ydcgettext(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ domainname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ msgid+16(FP), AX + MOVQ AX, 16(SP) + MOVL category+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xdcgettext(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ydcngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64, category int32) (r1 uintptr) +TEXT ·Ydcngettext(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ domainname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ msgid1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ msgid2+24(FP), AX + MOVQ AX, 24(SP) + MOVQ n+32(FP), AX + MOVQ AX, 32(SP) + MOVL category+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xdcngettext(SB) + MOVQ 48(SP), AX + MOVQ AX, r1+48(FP) + RET + +// func Ydelete_module(tls *TLS, a uintptr, b uint32) (r int32) +TEXT ·Ydelete_module(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVL b+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xdelete_module(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ydgettext(tls *TLS, domainname uintptr, msgid uintptr) (r uintptr) +TEXT ·Ydgettext(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ domainname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ msgid+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xdgettext(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ydifftime(tls *TLS, t1 Ttime_t, t0 Ttime_t) (r float64) +TEXT ·Ydifftime(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ t0+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xdifftime(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ydirfd(tls *TLS, d uintptr) (r int32) +TEXT ·Ydirfd(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xdirfd(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ydirname(tls *TLS, s uintptr) (r uintptr) +TEXT ·Ydirname(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xdirname(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ydiv(tls *TLS, num int32, den int32) (r Tdiv_t) +TEXT ·Ydiv(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL num+8(FP), AX + MOVL AX, 8(SP) + MOVL den+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xdiv(SB) + MOVL 16(SP), AX + MOVL AX, r_Fquot+16(FP) + MOVL 20(SP), AX + MOVL AX, r_Frem+20(FP) + RET + +// func Ydlclose(t *TLS, handle uintptr) (_2 int32) +TEXT ·Ydlclose(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ handle+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xdlclose(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ydlerror(t *TLS) (_1 uintptr) +TEXT ·Ydlerror(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xdlerror(SB) + MOVQ 8(SP), AX + MOVQ AX, _1+8(FP) + RET + +// func Ydlopen(t *TLS, filename uintptr, flags int32) (_3 uintptr) +TEXT ·Ydlopen(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xdlopen(SB) + MOVQ 24(SP), AX + MOVQ AX, _3+24(FP) + RET + +// func Ydlsym(t *TLS, handle, symbol uintptr) (_2 uintptr) +TEXT ·Ydlsym(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ handle+8(FP), AX + MOVQ AX, 8(SP) + MOVQ symbol+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xdlsym(SB) + MOVQ 24(SP), AX + MOVQ AX, _2+24(FP) + RET + +// func Ydn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, lastdnptr uintptr) (r int32) +TEXT ·Ydn_comp(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ src+8(FP), AX + MOVQ AX, 8(SP) + MOVQ dst+16(FP), AX + MOVQ AX, 16(SP) + MOVL space+24(FP), AX + MOVL AX, 24(SP) + MOVQ dnptrs+32(FP), AX + MOVQ AX, 32(SP) + MOVQ lastdnptr+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xdn_comp(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ydn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr, space int32) (r int32) +TEXT ·Ydn_expand(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ base+8(FP), AX + MOVQ AX, 8(SP) + MOVQ end+16(FP), AX + MOVQ AX, 16(SP) + MOVQ src+24(FP), AX + MOVQ AX, 24(SP) + MOVQ dest+32(FP), AX + MOVQ AX, 32(SP) + MOVL space+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xdn_expand(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ydn_skipname(tls *TLS, s uintptr, end uintptr) (r int32) +TEXT ·Ydn_skipname(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ end+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xdn_skipname(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ydngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) +TEXT ·Ydngettext(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ domainname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ msgid1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ msgid2+24(FP), AX + MOVQ AX, 24(SP) + MOVQ n+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xdngettext(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ydprintf(tls *TLS, fd int32, fmt uintptr, va uintptr) (r int32) +TEXT ·Ydprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xdprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ydrand48(tls *TLS) (r float64) +TEXT ·Ydrand48(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xdrand48(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ydrem(tls *TLS, x float64, y float64) (r float64) +TEXT ·Ydrem(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xdrem(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ydremf(tls *TLS, x float32, y float32) (r float32) +TEXT ·Ydremf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xdremf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ydup(tls *TLS, fd int32) (r int32) +TEXT ·Ydup(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xdup(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ydup2(tls *TLS, old int32, new1 int32) (r1 int32) +TEXT ·Ydup2(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL old+8(FP), AX + MOVL AX, 8(SP) + MOVL new1+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xdup2(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Ydup3(tls *TLS, old int32, new1 int32, flags int32) (r int32) +TEXT ·Ydup3(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL old+8(FP), AX + MOVL AX, 8(SP) + MOVL new1+12(FP), AX + MOVL AX, 12(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xdup3(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yduplocale(tls *TLS, old Tlocale_t) (r Tlocale_t) +TEXT ·Yduplocale(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ old+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xduplocale(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yeaccess(tls *TLS, filename uintptr, amode int32) (r int32) +TEXT ·Yeaccess(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVL amode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xeaccess(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yecvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) +TEXT ·Yecvt(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + MOVQ dp+24(FP), AX + MOVQ AX, 24(SP) + MOVQ sign+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xecvt(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yencrypt(tls *TLS, block uintptr, edflag int32) +TEXT ·Yencrypt(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ block+8(FP), AX + MOVQ AX, 8(SP) + MOVL edflag+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xencrypt(SB) + RET + +// func Yendgrent(tls *TLS) +TEXT ·Yendgrent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendgrent(SB) + RET + +// func Yendhostent(tls *TLS) +TEXT ·Yendhostent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendhostent(SB) + RET + +// func Yendmntent(tls *TLS, f uintptr) (r int32) +TEXT ·Yendmntent(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xendmntent(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yendnetent(tls *TLS) +TEXT ·Yendnetent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendnetent(SB) + RET + +// func Yendprotoent(tls *TLS) +TEXT ·Yendprotoent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendprotoent(SB) + RET + +// func Yendpwent(tls *TLS) +TEXT ·Yendpwent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendpwent(SB) + RET + +// func Yendservent(tls *TLS) +TEXT ·Yendservent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendservent(SB) + RET + +// func Yendspent(tls *TLS) +TEXT ·Yendspent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendspent(SB) + RET + +// func Yendusershell(tls *TLS) +TEXT ·Yendusershell(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendusershell(SB) + RET + +// func Yendutent(tls *TLS) +TEXT ·Yendutent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendutent(SB) + RET + +// func Yendutxent(tls *TLS) +TEXT ·Yendutxent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xendutxent(SB) + RET + +// func Yepoll_create(tls *TLS, size int32) (r int32) +TEXT ·Yepoll_create(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL size+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xepoll_create(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yepoll_create1(tls *TLS, flags int32) (r1 int32) +TEXT ·Yepoll_create1(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL flags+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xepoll_create1(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yepoll_ctl(tls *TLS, fd int32, op int32, fd2 int32, ev uintptr) (r int32) +TEXT ·Yepoll_ctl(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL op+12(FP), AX + MOVL AX, 12(SP) + MOVL fd2+16(FP), AX + MOVL AX, 16(SP) + MOVQ ev+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xepoll_ctl(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yepoll_pwait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32, sigs uintptr) (r1 int32) +TEXT ·Yepoll_pwait(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ ev+16(FP), AX + MOVQ AX, 16(SP) + MOVL cnt+24(FP), AX + MOVL AX, 24(SP) + MOVL to+28(FP), AX + MOVL AX, 28(SP) + MOVQ sigs+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xepoll_pwait(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Yepoll_wait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32) (r int32) +TEXT ·Yepoll_wait(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ ev+16(FP), AX + MOVQ AX, 16(SP) + MOVL cnt+24(FP), AX + MOVL AX, 24(SP) + MOVL to+28(FP), AX + MOVL AX, 28(SP) + CALL ·Xepoll_wait(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yerand48(tls *TLS, s uintptr) (r float64) +TEXT ·Yerand48(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xerand48(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yerf(tls *TLS, x float64) (r1 float64) +TEXT ·Yerf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xerf(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Yerfc(tls *TLS, x float64) (r1 float64) +TEXT ·Yerfc(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xerfc(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Yerfcf(tls *TLS, x float32) (r1 float32) +TEXT ·Yerfcf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xerfcf(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yerfcl(tls *TLS, x float64) (r float64) +TEXT ·Yerfcl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xerfcl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yerff(tls *TLS, x float32) (r1 float32) +TEXT ·Yerff(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xerff(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yerfl(tls *TLS, x float64) (r float64) +TEXT ·Yerfl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xerfl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yerr(tls *TLS, status int32, fmt uintptr, va uintptr) +TEXT ·Yerr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL status+8(FP), AX + MOVL AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xerr(SB) + RET + +// func Yerrx(tls *TLS, status int32, fmt uintptr, va uintptr) +TEXT ·Yerrx(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL status+8(FP), AX + MOVL AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xerrx(SB) + RET + +// func Yether_aton(tls *TLS, x uintptr) (r uintptr) +TEXT ·Yether_aton(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xether_aton(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yether_aton_r(tls *TLS, x uintptr, p_a uintptr) (r uintptr) +TEXT ·Yether_aton_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p_a+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xether_aton_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yether_hostton(tls *TLS, hostname uintptr, e uintptr) (r int32) +TEXT ·Yether_hostton(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ hostname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ e+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xether_hostton(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yether_line(tls *TLS, l uintptr, e uintptr, hostname uintptr) (r int32) +TEXT ·Yether_line(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ e+16(FP), AX + MOVQ AX, 16(SP) + MOVQ hostname+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xether_line(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yether_ntoa(tls *TLS, p_a uintptr) (r uintptr) +TEXT ·Yether_ntoa(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p_a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xether_ntoa(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yether_ntoa_r(tls *TLS, p_a uintptr, x uintptr) (r uintptr) +TEXT ·Yether_ntoa_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p_a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ x+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xether_ntoa_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yether_ntohost(tls *TLS, hostname uintptr, e uintptr) (r int32) +TEXT ·Yether_ntohost(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ hostname+8(FP), AX + MOVQ AX, 8(SP) + MOVQ e+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xether_ntohost(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yeuidaccess(tls *TLS, filename uintptr, amode int32) (r int32) +TEXT ·Yeuidaccess(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVL amode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xeuidaccess(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yeventfd(tls *TLS, count uint32, flags int32) (r1 int32) +TEXT ·Yeventfd(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL count+8(FP), AX + MOVL AX, 8(SP) + MOVL flags+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xeventfd(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yeventfd_read(tls *TLS, fd int32, value uintptr) (r int32) +TEXT ·Yeventfd_read(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ value+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xeventfd_read(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yeventfd_write(tls *TLS, fd int32, _value Teventfd_t) (r int32) +TEXT ·Yeventfd_write(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ _value+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xeventfd_write(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yexecl(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) +TEXT ·Yexecl(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ argv0+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xexecl(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yexecle(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) +TEXT ·Yexecle(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ argv0+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xexecle(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yexeclp(tls *TLS, file uintptr, argv0 uintptr, va uintptr) (r int32) +TEXT ·Yexeclp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ file+8(FP), AX + MOVQ AX, 8(SP) + MOVQ argv0+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xexeclp(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yexecv(tls *TLS, path uintptr, argv uintptr) (r int32) +TEXT ·Yexecv(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xexecv(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yexecve(tls *TLS, path uintptr, argv uintptr, envp uintptr) (r int32) +TEXT ·Yexecve(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ envp+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xexecve(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yexecvp(tls *TLS, file uintptr, argv uintptr) (r int32) +TEXT ·Yexecvp(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ file+8(FP), AX + MOVQ AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xexecvp(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yexecvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) +TEXT ·Yexecvpe(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ file+8(FP), AX + MOVQ AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ envp+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xexecvpe(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yexit(tls *TLS, code int32) +TEXT ·Yexit(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL code+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xexit(SB) + RET + +// func Yexp(tls *TLS, x1 float64) (r1 float64) +TEXT ·Yexp(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xexp(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Yexp10(tls *TLS, x float64) (r float64) +TEXT ·Yexp10(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xexp10(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yexp10f(tls *TLS, x float32) (r float32) +TEXT ·Yexp10f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xexp10f(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yexp10l(tls *TLS, x float64) (r float64) +TEXT ·Yexp10l(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xexp10l(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yexp2(tls *TLS, x1 float64) (r1 float64) +TEXT ·Yexp2(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xexp2(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Yexp2f(tls *TLS, x2 float32) (r1 float32) +TEXT ·Yexp2f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x2+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xexp2f(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yexp2l(tls *TLS, x float64) (r float64) +TEXT ·Yexp2l(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xexp2l(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yexpf(tls *TLS, x2 float32) (r1 float32) +TEXT ·Yexpf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x2+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xexpf(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yexpl(tls *TLS, x float64) (r float64) +TEXT ·Yexpl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xexpl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yexplicit_bzero(tls *TLS, d uintptr, n Tsize_t) +TEXT ·Yexplicit_bzero(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xexplicit_bzero(SB) + RET + +// func Yexpm1(tls *TLS, x3 float64) (r float64) +TEXT ·Yexpm1(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xexpm1(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yexpm1f(tls *TLS, x3 float32) (r float32) +TEXT ·Yexpm1f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xexpm1f(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yexpm1l(tls *TLS, x float64) (r float64) +TEXT ·Yexpm1l(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xexpm1l(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfabs(tls *TLS, x float64) (r float64) +TEXT ·Yfabs(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfabs(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfabsf(tls *TLS, x float32) (r float32) +TEXT ·Yfabsf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfabsf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfabsl(tls *TLS, x float64) (r float64) +TEXT ·Yfabsl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfabsl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfaccessat(tls *TLS, fd int32, filename uintptr, amode int32, flag int32) (r int32) +TEXT ·Yfaccessat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ filename+16(FP), AX + MOVQ AX, 16(SP) + MOVL amode+24(FP), AX + MOVL AX, 24(SP) + MOVL flag+28(FP), AX + MOVL AX, 28(SP) + CALL ·Xfaccessat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfallocate(tls *TLS, fd int32, mode int32, base Toff_t, len1 Toff_t) (r int32) +TEXT ·Yfallocate(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL mode+12(FP), AX + MOVL AX, 12(SP) + MOVQ base+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfallocate(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfanotify_init(tls *TLS, flags uint32, event_f_flags uint32) (r int32) +TEXT ·Yfanotify_init(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL flags+8(FP), AX + MOVL AX, 8(SP) + MOVL event_f_flags+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xfanotify_init(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfanotify_mark(tls *TLS, fanotify_fd int32, flags uint32, mask uint64, dfd int32, pathname uintptr) (r int32) +TEXT ·Yfanotify_mark(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fanotify_fd+8(FP), AX + MOVL AX, 8(SP) + MOVL flags+12(FP), AX + MOVL AX, 12(SP) + MOVQ mask+16(FP), AX + MOVQ AX, 16(SP) + MOVL dfd+24(FP), AX + MOVL AX, 24(SP) + MOVQ pathname+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xfanotify_mark(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yfchdir(tls *TLS, fd int32) (r int32) +TEXT ·Yfchdir(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfchdir(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfchmod(tls *TLS, fd int32, mode Tmode_t) (r int32) +TEXT ·Yfchmod(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL mode+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xfchmod(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfchmodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, flag int32) (r int32) +TEXT ·Yfchmodat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL mode+24(FP), AX + MOVL AX, 24(SP) + MOVL flag+28(FP), AX + MOVL AX, 28(SP) + CALL ·Xfchmodat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfchown(tls *TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) +TEXT ·Yfchown(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL uid+12(FP), AX + MOVL AX, 12(SP) + MOVL gid+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xfchown(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfchownat(tls *TLS, fd int32, path uintptr, uid Tuid_t, gid Tgid_t, flag int32) (r int32) +TEXT ·Yfchownat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL uid+24(FP), AX + MOVL AX, 24(SP) + MOVL gid+28(FP), AX + MOVL AX, 28(SP) + MOVL flag+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xfchownat(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yfclose(tls *TLS, f uintptr) (r1 int32) +TEXT ·Yfclose(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfclose(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yfcntl(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) +TEXT ·Yfcntl(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL cmd+12(FP), AX + MOVL AX, 12(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfcntl(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfcntl64(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) +TEXT ·Yfcntl64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL cmd+12(FP), AX + MOVL AX, 12(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfcntl64(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfcvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) +TEXT ·Yfcvt(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + MOVQ dp+24(FP), AX + MOVQ AX, 24(SP) + MOVQ sign+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xfcvt(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yfdatasync(tls *TLS, fd int32) (r int32) +TEXT ·Yfdatasync(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfdatasync(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfdim(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yfdim(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfdim(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfdimf(tls *TLS, x float32, y float32) (r float32) +TEXT ·Yfdimf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xfdimf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfdiml(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yfdiml(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfdiml(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfdopen(tls *TLS, fd int32, mode uintptr) (r uintptr) +TEXT ·Yfdopen(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ mode+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfdopen(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfdopendir(tls *TLS, fd int32) (r uintptr) +TEXT ·Yfdopendir(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfdopendir(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfeclearexcept(tls *TLS, mask int32) (r int32) +TEXT ·Yfeclearexcept(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL mask+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfeclearexcept(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfegetenv(tls *TLS, envp uintptr) (r int32) +TEXT ·Yfegetenv(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ envp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfegetenv(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfegetround(tls *TLS) (r int32) +TEXT ·Yfegetround(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xfegetround(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yfeof(tls *TLS, f uintptr) (r int32) +TEXT ·Yfeof(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfeof(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfeof_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Yfeof_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfeof_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yferaiseexcept(tls *TLS, mask int32) (r int32) +TEXT ·Yferaiseexcept(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL mask+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xferaiseexcept(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yferror(tls *TLS, f uintptr) (r int32) +TEXT ·Yferror(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xferror(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yferror_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Yferror_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xferror_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfesetenv(tls *TLS, envp uintptr) (r int32) +TEXT ·Yfesetenv(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ envp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfesetenv(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfetestexcept(tls *TLS, mask int32) (r int32) +TEXT ·Yfetestexcept(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL mask+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfetestexcept(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfexecve(tls *TLS, fd int32, argv uintptr, envp uintptr) (r1 int32) +TEXT ·Yfexecve(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ envp+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfexecve(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Yfflush(tls *TLS, f uintptr) (r1 int32) +TEXT ·Yfflush(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfflush(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yfflush_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Yfflush_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfflush_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yffs(tls *TLS, i int32) (r int32) +TEXT ·Yffs(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL i+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xffs(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yffsl(tls *TLS, i int64) (r int32) +TEXT ·Yffsl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ i+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xffsl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yffsll(tls *TLS, i int64) (r int32) +TEXT ·Yffsll(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ i+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xffsll(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfgetc(tls *TLS, f1 uintptr) (r int32) +TEXT ·Yfgetc(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfgetc(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfgetc_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Yfgetc_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfgetc_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfgetgrent(tls *TLS, f uintptr) (r uintptr) +TEXT ·Yfgetgrent(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfgetgrent(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfgetln(tls *TLS, f uintptr, plen uintptr) (r uintptr) +TEXT ·Yfgetln(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ plen+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfgetln(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfgetpos(tls *TLS, f uintptr, pos uintptr) (r int32) +TEXT ·Yfgetpos(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ pos+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfgetpos(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfgetpwent(tls *TLS, f uintptr) (r uintptr) +TEXT ·Yfgetpwent(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfgetpwent(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfgets(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) +TEXT ·Yfgets(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfgets(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yfgets_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) +TEXT ·Yfgets_unlocked(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfgets_unlocked(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yfgetwc(tls *TLS, f uintptr) (r Twint_t) +TEXT ·Yfgetwc(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfgetwc(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) +TEXT ·Yfgetwc_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfgetwc_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfgetws(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) +TEXT ·Yfgetws(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfgetws(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yfgetws_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) +TEXT ·Yfgetws_unlocked(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfgetws_unlocked(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yfgetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) +TEXT ·Yfgetxattr(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL filedes+8(FP), AX + MOVL AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ value+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xfgetxattr(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yfileno(tls *TLS, f uintptr) (r int32) +TEXT ·Yfileno(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfileno(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfileno_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Yfileno_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfileno_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfinite(tls *TLS, x float64) (r int32) +TEXT ·Yfinite(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfinite(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfinitef(tls *TLS, x float32) (r int32) +TEXT ·Yfinitef(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfinitef(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yflistxattr(tls *TLS, filedes int32, list uintptr, size Tsize_t) (r Tssize_t) +TEXT ·Yflistxattr(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL filedes+8(FP), AX + MOVL AX, 8(SP) + MOVQ list+16(FP), AX + MOVQ AX, 16(SP) + MOVQ size+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xflistxattr(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yflock(tls *TLS, fd int32, op int32) (r int32) +TEXT ·Yflock(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL op+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xflock(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yflockfile(tls *TLS, f uintptr) +TEXT ·Yflockfile(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xflockfile(SB) + RET + +// func Yfloor(tls *TLS, x3 float64) (r float64) +TEXT ·Yfloor(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfloor(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfloorf(tls *TLS, x3 float32) (r float32) +TEXT ·Yfloorf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfloorf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfloorl(tls *TLS, x float64) (r float64) +TEXT ·Yfloorl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfloorl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfma(tls *TLS, x1 float64, y float64, z float64) (r1 float64) +TEXT ·Yfma(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + MOVQ z+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfma(SB) + MOVQ 32(SP), AX + MOVQ AX, r1+32(FP) + RET + +// func Yfmal(tls *TLS, x float64, y float64, z float64) (r float64) +TEXT ·Yfmal(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + MOVQ z+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfmal(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yfmax(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yfmax(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfmax(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfmaxf(tls *TLS, x float32, y float32) (r float32) +TEXT ·Yfmaxf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xfmaxf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfmaxl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yfmaxl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfmaxl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfmemopen(tls *TLS, buf uintptr, size Tsize_t, mode uintptr) (r uintptr) +TEXT ·Yfmemopen(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVQ mode+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfmemopen(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yfmin(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yfmin(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfmin(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfminf(tls *TLS, x float32, y float32) (r float32) +TEXT ·Yfminf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xfminf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfminl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yfminl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfminl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfmod(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yfmod(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfmod(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfmodf(tls *TLS, x float32, y float32) (r float32) +TEXT ·Yfmodf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xfmodf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfmodl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yfmodl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfmodl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfmtmsg(tls *TLS, classification int64, label uintptr, severity int32, text uintptr, action uintptr, tag uintptr) (r int32) +TEXT ·Yfmtmsg(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ classification+8(FP), AX + MOVQ AX, 8(SP) + MOVQ label+16(FP), AX + MOVQ AX, 16(SP) + MOVL severity+24(FP), AX + MOVL AX, 24(SP) + MOVQ text+32(FP), AX + MOVQ AX, 32(SP) + MOVQ action+40(FP), AX + MOVQ AX, 40(SP) + MOVQ tag+48(FP), AX + MOVQ AX, 48(SP) + CALL ·Xfmtmsg(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Yfnmatch(tls *TLS, pat uintptr, str uintptr, flags int32) (r int32) +TEXT ·Yfnmatch(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ pat+8(FP), AX + MOVQ AX, 8(SP) + MOVQ str+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xfnmatch(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfopen(tls *TLS, filename uintptr, mode uintptr) (r uintptr) +TEXT ·Yfopen(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mode+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfopen(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfopen64(tls *TLS, filename uintptr, mode uintptr) (r uintptr) +TEXT ·Yfopen64(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mode+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfopen64(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfopencookie(tls *TLS, cookie uintptr, mode uintptr, iofuncs Tcookie_io_functions_t) (r uintptr) +TEXT ·Yfopencookie(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ cookie+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mode+16(FP), AX + MOVQ AX, 16(SP) + MOVQ iofuncs_Fread+24(FP), AX + MOVQ AX, 24(SP) + MOVQ iofuncs_Fwrite+32(FP), AX + MOVQ AX, 32(SP) + MOVQ iofuncs_Fseek+40(FP), AX + MOVQ AX, 40(SP) + MOVQ iofuncs_Fclose1+48(FP), AX + MOVQ AX, 48(SP) + CALL ·Xfopencookie(SB) + MOVQ 56(SP), AX + MOVQ AX, r+56(FP) + RET + +// func Yfork(t *TLS) (_1 int32) +TEXT ·Yfork(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xfork(SB) + MOVL 8(SP), AX + MOVL AX, _1+8(FP) + RET + +// func Yfpathconf(tls *TLS, fd int32, name int32) (r int64) +TEXT ·Yfpathconf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL name+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xfpathconf(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yfprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Yfprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfpurge(tls *TLS, f uintptr) (r int32) +TEXT ·Yfpurge(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfpurge(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfputc(tls *TLS, c1 int32, f1 uintptr) (r int32) +TEXT ·Yfputc(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c1+8(FP), AX + MOVL AX, 8(SP) + MOVQ f1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfputc(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) +TEXT ·Yfputc_unlocked(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfputc_unlocked(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfputs(tls *TLS, s uintptr, f uintptr) (r int32) +TEXT ·Yfputs(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfputs(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfputs_unlocked(tls *TLS, s uintptr, f uintptr) (r int32) +TEXT ·Yfputs_unlocked(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfputs_unlocked(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) +TEXT ·Yfputwc(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfputwc(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) +TEXT ·Yfputwc_unlocked(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfputwc_unlocked(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfputws(tls *TLS, _ws uintptr, f uintptr) (r int32) +TEXT ·Yfputws(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _ws+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfputws(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfputws_unlocked(tls *TLS, _ws uintptr, f uintptr) (r int32) +TEXT ·Yfputws_unlocked(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _ws+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfputws_unlocked(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfread(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) +TEXT ·Yfread(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ destv+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVQ nmemb+24(FP), AX + MOVQ AX, 24(SP) + MOVQ f+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xfread(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yfread_unlocked(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) +TEXT ·Yfread_unlocked(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ destv+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVQ nmemb+24(FP), AX + MOVQ AX, 24(SP) + MOVQ f+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xfread_unlocked(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yfree(tls *TLS, p uintptr) +TEXT ·Yfree(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfree(SB) + RET + +// func Yfreeaddrinfo(tls *TLS, p uintptr) +TEXT ·Yfreeaddrinfo(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfreeaddrinfo(SB) + RET + +// func Yfreeifaddrs(tls *TLS, ifp uintptr) +TEXT ·Yfreeifaddrs(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ifp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfreeifaddrs(SB) + RET + +// func Yfreelocale(tls *TLS, l Tlocale_t) +TEXT ·Yfreelocale(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfreelocale(SB) + RET + +// func Yfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) +TEXT ·Yfremovexattr(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfremovexattr(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfreopen(tls *TLS, filename uintptr, mode uintptr, f uintptr) (r uintptr) +TEXT ·Yfreopen(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mode+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfreopen(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yfrexp(tls *TLS, x float64, e uintptr) (r float64) +TEXT ·Yfrexp(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ e+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfrexp(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfrexpf(tls *TLS, x float32, e uintptr) (r float32) +TEXT ·Yfrexpf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVQ e+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfrexpf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfrexpl(tls *TLS, x float64, e uintptr) (r float64) +TEXT ·Yfrexpl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ e+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfrexpl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yfscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Yfscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfseek(tls *TLS, f uintptr, off int64, whence int32) (r int32) +TEXT ·Yfseek(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ off+16(FP), AX + MOVQ AX, 16(SP) + MOVL whence+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xfseek(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfseeko(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) +TEXT ·Yfseeko(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ off+16(FP), AX + MOVQ AX, 16(SP) + MOVL whence+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xfseeko(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfsetpos(tls *TLS, f uintptr, pos uintptr) (r int32) +TEXT ·Yfsetpos(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ pos+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfsetpos(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfsetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) +TEXT ·Yfsetxattr(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL filedes+8(FP), AX + MOVL AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ value+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVL flags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xfsetxattr(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Yfstat(tls *TLS, fd int32, st uintptr) (r int32) +TEXT ·Yfstat(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ st+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfstat(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfstat64(tls *TLS, fd int32, st uintptr) (r int32) +TEXT ·Yfstat64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ st+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfstat64(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) +TEXT ·Yfstatat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVQ st+24(FP), AX + MOVQ AX, 24(SP) + MOVL flag+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xfstatat(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yfstatfs(tls *TLS, fd int32, buf uintptr) (r int32) +TEXT ·Yfstatfs(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfstatfs(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfstatvfs(tls *TLS, fd int32, buf uintptr) (r int32) +TEXT ·Yfstatvfs(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfstatvfs(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfsync(tls *TLS, fd int32) (r int32) +TEXT ·Yfsync(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xfsync(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yftell(tls *TLS, f uintptr) (r int64) +TEXT ·Yftell(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xftell(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yftello(tls *TLS, f uintptr) (r Toff_t) +TEXT ·Yftello(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xftello(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yftime(tls *TLS, tp uintptr) (r int32) +TEXT ·Yftime(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xftime(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yftok(tls *TLS, path uintptr, id int32) (r Tkey_t) +TEXT ·Yftok(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL id+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xftok(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yftruncate(tls *TLS, fd int32, length Toff_t) (r int32) +TEXT ·Yftruncate(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ length+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xftruncate(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yftruncate64(tls *TLS, fd int32, length Toff_t) (r int32) +TEXT ·Yftruncate64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ length+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xftruncate64(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yftrylockfile(tls *TLS, f uintptr) (r int32) +TEXT ·Yftrylockfile(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xftrylockfile(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yfts64_close(t *TLS, ftsp uintptr) (_2 int32) +TEXT ·Yfts64_close(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ftsp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfts64_close(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Yfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) (_4 uintptr) +TEXT ·Yfts64_open(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path_argv+8(FP), AX + MOVQ AX, 8(SP) + MOVL options+16(FP), AX + MOVL AX, 16(SP) + MOVQ compar+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfts64_open(SB) + MOVQ 32(SP), AX + MOVQ AX, _4+32(FP) + RET + +// func Yfts64_read(t *TLS, ftsp uintptr) (_2 uintptr) +TEXT ·Yfts64_read(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ftsp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfts64_read(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Yfts_close(t *TLS, ftsp uintptr) (_2 int32) +TEXT ·Yfts_close(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ftsp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfts_close(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Yfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) (_4 uintptr) +TEXT ·Yfts_open(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path_argv+8(FP), AX + MOVQ AX, 8(SP) + MOVL options+16(FP), AX + MOVL AX, 16(SP) + MOVQ compar+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfts_open(SB) + MOVQ 32(SP), AX + MOVQ AX, _4+32(FP) + RET + +// func Yfts_read(t *TLS, ftsp uintptr) (_2 uintptr) +TEXT ·Yfts_read(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ftsp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfts_read(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Yftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32) (r int32) +TEXT ·Yftw(SB),$48-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_fn+16(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_ftw_1(SB) // Create the closure for calling __ccgo_fp_fn + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 16(SP) + MOVL fd_limit+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xftw(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_ftw_1(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVL _3+24(FP), AX + MOVL AX, 24(SP) + MOVQ __ccgo_fp+32(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 32(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Yfunlockfile(tls *TLS, f uintptr) +TEXT ·Yfunlockfile(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xfunlockfile(SB) + RET + +// func Yfutimens(tls *TLS, fd int32, times uintptr) (r int32) +TEXT ·Yfutimens(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ times+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfutimens(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfutimes(tls *TLS, fd int32, tv uintptr) (r int32) +TEXT ·Yfutimes(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ tv+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xfutimes(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfutimesat(tls *TLS, dirfd int32, pathname uintptr, times uintptr) (r int32) +TEXT ·Yfutimesat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL dirfd+8(FP), AX + MOVL AX, 8(SP) + MOVQ pathname+16(FP), AX + MOVQ AX, 16(SP) + MOVQ times+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfutimesat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfwide(tls *TLS, f uintptr, mode int32) (r int32) +TEXT ·Yfwide(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVL mode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xfwide(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yfwprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Yfwprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfwprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yfwrite(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) +TEXT ·Yfwrite(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ src+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVQ nmemb+24(FP), AX + MOVQ AX, 24(SP) + MOVQ f+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xfwrite(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yfwrite_unlocked(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) +TEXT ·Yfwrite_unlocked(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ src+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVQ nmemb+24(FP), AX + MOVQ AX, 24(SP) + MOVQ f+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xfwrite_unlocked(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yfwscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Yfwscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xfwscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ygai_strerror(tls *TLS, ecode int32) (r uintptr) +TEXT ·Ygai_strerror(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ecode+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xgai_strerror(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygcvt(tls *TLS, x float64, n int32, b uintptr) (r uintptr) +TEXT ·Ygcvt(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + MOVQ b+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgcvt(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yget_avphys_pages(tls *TLS) (r int64) +TEXT ·Yget_avphys_pages(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xget_avphys_pages(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Yget_current_dir_name(tls *TLS) (r uintptr) +TEXT ·Yget_current_dir_name(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xget_current_dir_name(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Yget_nprocs(tls *TLS) (r int32) +TEXT ·Yget_nprocs(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xget_nprocs(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yget_nprocs_conf(tls *TLS) (r int32) +TEXT ·Yget_nprocs_conf(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xget_nprocs_conf(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yget_phys_pages(tls *TLS) (r int64) +TEXT ·Yget_phys_pages(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xget_phys_pages(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) (r1 int32) +TEXT ·Ygetaddrinfo(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ host+8(FP), AX + MOVQ AX, 8(SP) + MOVQ serv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ hint+24(FP), AX + MOVQ AX, 24(SP) + MOVQ res+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xgetaddrinfo(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Ygetauxval(tls *TLS, item uint64) (r uint64) +TEXT ·Ygetauxval(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ item+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetauxval(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetc(tls *TLS, f1 uintptr) (r int32) +TEXT ·Ygetc(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetc(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ygetc_unlocked(tls *TLS, f uintptr) (r int32) +TEXT ·Ygetc_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetc_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ygetchar(tls *TLS) (r int32) +TEXT ·Ygetchar(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetchar(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetchar_unlocked(tls *TLS) (r int32) +TEXT ·Ygetchar_unlocked(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetchar_unlocked(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetcwd(tls *TLS, buf uintptr, size Tsize_t) (r uintptr) +TEXT ·Ygetcwd(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetcwd(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ygetdate(tls *TLS, s uintptr) (r uintptr) +TEXT ·Ygetdate(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetdate(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) +TEXT ·Ygetdelim(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVL delim+24(FP), AX + MOVL AX, 24(SP) + MOVQ f+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xgetdelim(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ygetdents(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) +TEXT ·Ygetdents(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgetdents(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ygetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) +TEXT ·Ygetdomainname(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetdomainname(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygetdtablesize(tls *TLS) (r int32) +TEXT ·Ygetdtablesize(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetdtablesize(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetegid(tls *TLS) (r Tgid_t) +TEXT ·Ygetegid(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetegid(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetentropy(tls *TLS, buffer uintptr, len1 Tsize_t) (r int32) +TEXT ·Ygetentropy(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buffer+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetentropy(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygetenv(tls *TLS, name uintptr) (r uintptr) +TEXT ·Ygetenv(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetenv(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygeteuid(tls *TLS) (r Tuid_t) +TEXT ·Ygeteuid(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgeteuid(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetgid(tls *TLS) (r Tgid_t) +TEXT ·Ygetgid(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetgid(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetgrent(tls *TLS) (r uintptr) +TEXT ·Ygetgrent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetgrent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetgrgid(tls *TLS, gid Tgid_t) (r uintptr) +TEXT ·Ygetgrgid(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL gid+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xgetgrgid(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetgrgid_r(tls *TLS, gid Tgid_t, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) +TEXT ·Ygetgrgid_r(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL gid+8(FP), AX + MOVL AX, 8(SP) + MOVQ gr+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVQ res+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xgetgrgid_r(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ygetgrnam(tls *TLS, name uintptr) (r uintptr) +TEXT ·Ygetgrnam(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetgrnam(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetgrnam_r(tls *TLS, name uintptr, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) +TEXT ·Ygetgrnam_r(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ gr+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVQ res+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xgetgrnam_r(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ygetgrouplist(tls *TLS, user uintptr, gid Tgid_t, groups uintptr, ngroups uintptr) (r int32) +TEXT ·Ygetgrouplist(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ user+8(FP), AX + MOVQ AX, 8(SP) + MOVL gid+16(FP), AX + MOVL AX, 16(SP) + MOVQ groups+24(FP), AX + MOVQ AX, 24(SP) + MOVQ ngroups+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xgetgrouplist(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ygetgroups(tls *TLS, count int32, list uintptr) (r int32) +TEXT ·Ygetgroups(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL count+8(FP), AX + MOVL AX, 8(SP) + MOVQ list+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetgroups(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygethostbyaddr(tls *TLS, a uintptr, l Tsocklen_t, af int32) (r uintptr) +TEXT ·Ygethostbyaddr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVL l+16(FP), AX + MOVL AX, 16(SP) + MOVL af+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xgethostbyaddr(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ygethostbyaddr_r(tls *TLS, a uintptr, l Tsocklen_t, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) +TEXT ·Ygethostbyaddr_r(SB),$72-68 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVL l+16(FP), AX + MOVL AX, 16(SP) + MOVL af+20(FP), AX + MOVL AX, 20(SP) + MOVQ h+24(FP), AX + MOVQ AX, 24(SP) + MOVQ buf+32(FP), AX + MOVQ AX, 32(SP) + MOVQ buflen+40(FP), AX + MOVQ AX, 40(SP) + MOVQ res+48(FP), AX + MOVQ AX, 48(SP) + MOVQ err+56(FP), AX + MOVQ AX, 56(SP) + CALL ·Xgethostbyaddr_r(SB) + MOVL 64(SP), AX + MOVL AX, r+64(FP) + RET + +// func Ygethostbyname(tls *TLS, name uintptr) (r uintptr) +TEXT ·Ygethostbyname(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgethostbyname(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygethostbyname2(tls *TLS, name uintptr, af int32) (r uintptr) +TEXT ·Ygethostbyname2(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVL af+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xgethostbyname2(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ygethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) +TEXT ·Ygethostbyname2_r(SB),$72-68 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVL af+16(FP), AX + MOVL AX, 16(SP) + MOVQ h+24(FP), AX + MOVQ AX, 24(SP) + MOVQ buf+32(FP), AX + MOVQ AX, 32(SP) + MOVQ buflen+40(FP), AX + MOVQ AX, 40(SP) + MOVQ res+48(FP), AX + MOVQ AX, 48(SP) + MOVQ err+56(FP), AX + MOVQ AX, 56(SP) + CALL ·Xgethostbyname2_r(SB) + MOVL 64(SP), AX + MOVL AX, r+64(FP) + RET + +// func Ygethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) +TEXT ·Ygethostbyname_r(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ h+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ buflen+32(FP), AX + MOVQ AX, 32(SP) + MOVQ res+40(FP), AX + MOVQ AX, 40(SP) + MOVQ err+48(FP), AX + MOVQ AX, 48(SP) + CALL ·Xgethostbyname_r(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Ygethostent(tls *TLS) (r uintptr) +TEXT ·Ygethostent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgethostent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygethostid(tls *TLS) (r int64) +TEXT ·Ygethostid(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgethostid(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) +TEXT ·Ygethostname(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgethostname(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygetifaddrs(tls *TLS, ifap uintptr) (r1 int32) +TEXT ·Ygetifaddrs(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ifap+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetifaddrs(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Ygetitimer(tls *TLS, which int32, old uintptr) (r1 int32) +TEXT ·Ygetitimer(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL which+8(FP), AX + MOVL AX, 8(SP) + MOVQ old+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetitimer(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ygetline(tls *TLS, s uintptr, n uintptr, f uintptr) (r Tssize_t) +TEXT ·Ygetline(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgetline(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ygetloadavg(tls *TLS, a uintptr, n int32) (r int32) +TEXT ·Ygetloadavg(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xgetloadavg(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygetlogin(tls *TLS) (r uintptr) +TEXT ·Ygetlogin(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetlogin(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetlogin_r(tls *TLS, name uintptr, size Tsize_t) (r int32) +TEXT ·Ygetlogin_r(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetlogin_r(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygetmntent(tls *TLS, f uintptr) (r uintptr) +TEXT ·Ygetmntent(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetmntent(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetmntent_r(tls *TLS, f uintptr, mnt uintptr, linebuf uintptr, buflen int32) (r uintptr) +TEXT ·Ygetmntent_r(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mnt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ linebuf+24(FP), AX + MOVQ AX, 24(SP) + MOVL buflen+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xgetmntent_r(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ygetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tsocklen_t, serv uintptr, servlen Tsocklen_t, flags int32) (r int32) +TEXT ·Ygetnameinfo(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ sa+8(FP), AX + MOVQ AX, 8(SP) + MOVL sl+16(FP), AX + MOVL AX, 16(SP) + MOVQ node+24(FP), AX + MOVQ AX, 24(SP) + MOVL nodelen+32(FP), AX + MOVL AX, 32(SP) + MOVQ serv+40(FP), AX + MOVQ AX, 40(SP) + MOVL servlen+48(FP), AX + MOVL AX, 48(SP) + MOVL flags+52(FP), AX + MOVL AX, 52(SP) + CALL ·Xgetnameinfo(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Ygetnetbyaddr(tls *TLS, net Tuint32_t, type1 int32) (r uintptr) +TEXT ·Ygetnetbyaddr(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL net+8(FP), AX + MOVL AX, 8(SP) + MOVL type1+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xgetnetbyaddr(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetnetbyname(tls *TLS, name uintptr) (r uintptr) +TEXT ·Ygetnetbyname(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetnetbyname(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetnetent(tls *TLS) (r uintptr) +TEXT ·Ygetnetent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetnetent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) +TEXT ·Ygetopt(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL argc+8(FP), AX + MOVL AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ optstring+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgetopt(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ygetopt_long(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) +TEXT ·Ygetopt_long(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL argc+8(FP), AX + MOVL AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ optstring+24(FP), AX + MOVQ AX, 24(SP) + MOVQ longopts+32(FP), AX + MOVQ AX, 32(SP) + MOVQ idx+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xgetopt_long(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ygetopt_long_only(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) +TEXT ·Ygetopt_long_only(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL argc+8(FP), AX + MOVL AX, 8(SP) + MOVQ argv+16(FP), AX + MOVQ AX, 16(SP) + MOVQ optstring+24(FP), AX + MOVQ AX, 24(SP) + MOVQ longopts+32(FP), AX + MOVQ AX, 32(SP) + MOVQ idx+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xgetopt_long_only(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ygetpagesize(tls *TLS) (r int32) +TEXT ·Ygetpagesize(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetpagesize(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetpass(tls *TLS, prompt uintptr) (r uintptr) +TEXT ·Ygetpass(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ prompt+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetpass(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetpeername(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) +TEXT ·Ygetpeername(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ addr+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgetpeername(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ygetpgid(tls *TLS, pid Tpid_t) (r Tpid_t) +TEXT ·Ygetpgid(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xgetpgid(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ygetpgrp(tls *TLS) (r Tpid_t) +TEXT ·Ygetpgrp(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetpgrp(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetpid(tls *TLS) (r Tpid_t) +TEXT ·Ygetpid(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetpid(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetppid(tls *TLS) (r Tpid_t) +TEXT ·Ygetppid(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetppid(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetpriority(tls *TLS, which int32, who Tid_t) (r int32) +TEXT ·Ygetpriority(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL which+8(FP), AX + MOVL AX, 8(SP) + MOVL who+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xgetpriority(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ygetprotobyname(tls *TLS, name uintptr) (r uintptr) +TEXT ·Ygetprotobyname(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetprotobyname(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetprotobynumber(tls *TLS, num int32) (r uintptr) +TEXT ·Ygetprotobynumber(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL num+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xgetprotobynumber(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetprotoent(tls *TLS) (r uintptr) +TEXT ·Ygetprotoent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetprotoent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetpwent(tls *TLS) (r uintptr) +TEXT ·Ygetpwent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetpwent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetpwnam(tls *TLS, name uintptr) (r uintptr) +TEXT ·Ygetpwnam(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetpwnam(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetpwnam_r(tls *TLS, name uintptr, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) +TEXT ·Ygetpwnam_r(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ pw+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVQ res+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xgetpwnam_r(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ygetpwuid(tls *TLS, uid Tuid_t) (r uintptr) +TEXT ·Ygetpwuid(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL uid+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xgetpwuid(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetpwuid_r(tls *TLS, uid Tuid_t, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) +TEXT ·Ygetpwuid_r(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL uid+8(FP), AX + MOVL AX, 8(SP) + MOVQ pw+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVQ res+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xgetpwuid_r(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ygetrandom(tls *TLS, buf uintptr, buflen Tsize_t, flags uint32) (r Tssize_t) +TEXT ·Ygetrandom(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buflen+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xgetrandom(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ygetresgid(tls *TLS, rgid uintptr, egid uintptr, sgid uintptr) (r int32) +TEXT ·Ygetresgid(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ rgid+8(FP), AX + MOVQ AX, 8(SP) + MOVQ egid+16(FP), AX + MOVQ AX, 16(SP) + MOVQ sgid+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgetresgid(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ygetresuid(tls *TLS, ruid uintptr, euid uintptr, suid uintptr) (r int32) +TEXT ·Ygetresuid(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ruid+8(FP), AX + MOVQ AX, 8(SP) + MOVQ euid+16(FP), AX + MOVQ AX, 16(SP) + MOVQ suid+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgetresuid(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ygetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) +TEXT ·Ygetrlimit(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL resource+8(FP), AX + MOVL AX, 8(SP) + MOVQ rlim+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetrlimit(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygetrlimit64(tls *TLS, resource int32, rlim uintptr) (r int32) +TEXT ·Ygetrlimit64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL resource+8(FP), AX + MOVL AX, 8(SP) + MOVQ rlim+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetrlimit64(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygetrusage(tls *TLS, who int32, ru uintptr) (r1 int32) +TEXT ·Ygetrusage(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL who+8(FP), AX + MOVL AX, 8(SP) + MOVQ ru+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetrusage(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ygets(tls *TLS, s uintptr) (r uintptr) +TEXT ·Ygets(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgets(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetservbyname(tls *TLS, name uintptr, prots uintptr) (r uintptr) +TEXT ·Ygetservbyname(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ prots+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgetservbyname(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ygetservbyname_r(tls *TLS, name uintptr, prots uintptr, se uintptr, buf uintptr, buflen Tsize_t, res uintptr) (r int32) +TEXT ·Ygetservbyname_r(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ prots+16(FP), AX + MOVQ AX, 16(SP) + MOVQ se+24(FP), AX + MOVQ AX, 24(SP) + MOVQ buf+32(FP), AX + MOVQ AX, 32(SP) + MOVQ buflen+40(FP), AX + MOVQ AX, 40(SP) + MOVQ res+48(FP), AX + MOVQ AX, 48(SP) + CALL ·Xgetservbyname_r(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Ygetservent(tls *TLS) (r uintptr) +TEXT ·Ygetservent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetservent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetsid(tls *TLS, pid Tpid_t) (r Tpid_t) +TEXT ·Ygetsid(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xgetsid(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ygetsockname(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) +TEXT ·Ygetsockname(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ addr+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgetsockname(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ygetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen uintptr) (r2 int32) +TEXT ·Ygetsockopt(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL level+12(FP), AX + MOVL AX, 12(SP) + MOVL optname+16(FP), AX + MOVL AX, 16(SP) + MOVQ optval+24(FP), AX + MOVQ AX, 24(SP) + MOVQ optlen+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xgetsockopt(SB) + MOVL 40(SP), AX + MOVL AX, r2+40(FP) + RET + +// func Ygetspent(tls *TLS) (r uintptr) +TEXT ·Ygetspent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetspent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetsubopt(tls *TLS, opt uintptr, keys uintptr, val uintptr) (r int32) +TEXT ·Ygetsubopt(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ opt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ keys+16(FP), AX + MOVQ AX, 16(SP) + MOVQ val+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xgetsubopt(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ygettext(tls *TLS, msgid uintptr) (r uintptr) +TEXT ·Ygettext(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msgid+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgettext(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) +TEXT ·Ygettimeofday(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tv+8(FP), AX + MOVQ AX, 8(SP) + MOVQ tz+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgettimeofday(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ygetuid(tls *TLS) (r Tuid_t) +TEXT ·Ygetuid(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetuid(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetusershell(tls *TLS) (r uintptr) +TEXT ·Ygetusershell(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetusershell(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetutent(tls *TLS) (r uintptr) +TEXT ·Ygetutent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetutent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetutid(tls *TLS, ut uintptr) (r uintptr) +TEXT ·Ygetutid(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ut+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetutid(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetutline(tls *TLS, ut uintptr) (r uintptr) +TEXT ·Ygetutline(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ut+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetutline(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetutxent(tls *TLS) (r uintptr) +TEXT ·Ygetutxent(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetutxent(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ygetutxid(tls *TLS, ut uintptr) (r uintptr) +TEXT ·Ygetutxid(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ut+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetutxid(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetutxline(tls *TLS, ut uintptr) (r uintptr) +TEXT ·Ygetutxline(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ut+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetutxline(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygetw(tls *TLS, f uintptr) (r int32) +TEXT ·Ygetw(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetw(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ygetwc(tls *TLS, f uintptr) (r Twint_t) +TEXT ·Ygetwc(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetwc(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ygetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) +TEXT ·Ygetwc_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgetwc_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ygetwchar(tls *TLS) (r Twint_t) +TEXT ·Ygetwchar(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetwchar(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetwchar_unlocked(tls *TLS) (r Twint_t) +TEXT ·Ygetwchar_unlocked(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xgetwchar_unlocked(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ygetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) +TEXT ·Ygetxattr(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ value+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xgetxattr(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, g_ uintptr) (r int32) +TEXT ·Yglob(SB),$56-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_errfunc+24(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_glob_2(SB) // Create the closure for calling __ccgo_fp_errfunc + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ pat+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 24(SP) + MOVQ g_+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xglob(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_glob_2(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVL _2+16(FP), AX + MOVL AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Yglobfree(tls *TLS, g_ uintptr) +TEXT ·Yglobfree(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ g_+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xglobfree(SB) + RET + +// func Ygmtime(tls *TLS, t uintptr) (r uintptr) +TEXT ·Ygmtime(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xgmtime(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ygmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) +TEXT ·Ygmtime_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ tm+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xgmtime_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ygrantpt(tls *TLS, fd int32) (r int32) +TEXT ·Ygrantpt(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xgrantpt(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yhasmntopt(tls *TLS, mnt uintptr, opt uintptr) (r uintptr) +TEXT ·Yhasmntopt(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ mnt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ opt+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xhasmntopt(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yhcreate(tls *TLS, nel Tsize_t) (r int32) +TEXT ·Yhcreate(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ nel+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xhcreate(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yhdestroy(tls *TLS) +TEXT ·Yhdestroy(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xhdestroy(SB) + RET + +// func Yherror(tls *TLS, msg uintptr) +TEXT ·Yherror(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msg+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xherror(SB) + RET + +// func Yhsearch(tls *TLS, item TENTRY, action TACTION) (r uintptr) +TEXT ·Yhsearch(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ item_Fkey+8(FP), AX + MOVQ AX, 8(SP) + MOVQ item_Fdata+16(FP), AX + MOVQ AX, 16(SP) + MOVL action+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xhsearch(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yhstrerror(tls *TLS, ecode int32) (r uintptr) +TEXT ·Yhstrerror(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL ecode+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xhstrerror(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yhtonl(tls *TLS, n Tuint32_t) (r Tuint32_t) +TEXT ·Yhtonl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xhtonl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yhtons(tls *TLS, n Tuint16_t) (r Tuint16_t) +TEXT ·Yhtons(SB),$24-18 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVW n+8(FP), AX + MOVW AX, 8(SP) + CALL ·Xhtons(SB) + MOVW 16(SP), AX + MOVW AX, r+16(FP) + RET + +// func Yhypot(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yhypot(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xhypot(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yhypotf(tls *TLS, x float32, y float32) (r float32) +TEXT ·Yhypotf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xhypotf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yhypotl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yhypotl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xhypotl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb uintptr) (r Tsize_t) +TEXT ·Yiconv(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ cd+8(FP), AX + MOVQ AX, 8(SP) + MOVQ in+16(FP), AX + MOVQ AX, 16(SP) + MOVQ inb+24(FP), AX + MOVQ AX, 24(SP) + MOVQ out+32(FP), AX + MOVQ AX, 32(SP) + MOVQ outb+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xiconv(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Yiconv_close(tls *TLS, cd Ticonv_t) (r int32) +TEXT ·Yiconv_close(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ cd+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xiconv_close(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiconv_open(tls *TLS, to uintptr, from uintptr) (r Ticonv_t) +TEXT ·Yiconv_open(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ to+8(FP), AX + MOVQ AX, 8(SP) + MOVQ from+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiconv_open(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yif_freenameindex(tls *TLS, idx uintptr) +TEXT ·Yif_freenameindex(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ idx+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xif_freenameindex(SB) + RET + +// func Yif_indextoname(tls *TLS, index uint32, name uintptr) (r1 uintptr) +TEXT ·Yif_indextoname(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL index+8(FP), AX + MOVL AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xif_indextoname(SB) + MOVQ 24(SP), AX + MOVQ AX, r1+24(FP) + RET + +// func Yif_nameindex(tls *TLS) (r uintptr) +TEXT ·Yif_nameindex(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xif_nameindex(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Yif_nametoindex(tls *TLS, name uintptr) (r1 uint32) +TEXT ·Yif_nametoindex(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xif_nametoindex(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yilogb(tls *TLS, x3 float64) (r int32) +TEXT ·Yilogb(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xilogb(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yilogbf(tls *TLS, x3 float32) (r int32) +TEXT ·Yilogbf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xilogbf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yilogbl(tls *TLS, x float64) (r int32) +TEXT ·Yilogbl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xilogbl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yimaxabs(tls *TLS, a Tintmax_t) (r Tintmax_t) +TEXT ·Yimaxabs(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Ximaxabs(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yimaxdiv(tls *TLS, num Tintmax_t, den Tintmax_t) (r Timaxdiv_t) +TEXT ·Yimaxdiv(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ num+8(FP), AX + MOVQ AX, 8(SP) + MOVQ den+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Ximaxdiv(SB) + MOVQ 24(SP), AX + MOVQ AX, r_Fquot+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_Frem+32(FP) + RET + +// func Yindex(tls *TLS, s uintptr, c int32) (r uintptr) +TEXT ·Yindex(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xindex(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yinet_addr(tls *TLS, p uintptr) (r Tin_addr_t) +TEXT ·Yinet_addr(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xinet_addr(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yinet_aton(tls *TLS, s0 uintptr, dest uintptr) (r int32) +TEXT ·Yinet_aton(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s0+8(FP), AX + MOVQ AX, 8(SP) + MOVQ dest+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xinet_aton(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yinet_lnaof(tls *TLS, in Tin_addr) (r Tin_addr_t) +TEXT ·Yinet_lnaof(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL in_Fs_addr+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xinet_lnaof(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yinet_makeaddr(tls *TLS, n Tin_addr_t, h Tin_addr_t) (r Tin_addr) +TEXT ·Yinet_makeaddr(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + MOVL h+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xinet_makeaddr(SB) + MOVL 16(SP), AX + MOVL AX, r_Fs_addr+16(FP) + RET + +// func Yinet_netof(tls *TLS, in Tin_addr) (r Tin_addr_t) +TEXT ·Yinet_netof(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL in_Fs_addr+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xinet_netof(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yinet_network(tls *TLS, p uintptr) (r Tin_addr_t) +TEXT ·Yinet_network(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xinet_network(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yinet_ntoa(tls *TLS, _in Tin_addr) (r uintptr) +TEXT ·Yinet_ntoa(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL _in_Fs_addr+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xinet_ntoa(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l Tsocklen_t) (r uintptr) +TEXT ·Yinet_ntop(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL af+8(FP), AX + MOVL AX, 8(SP) + MOVQ a0+16(FP), AX + MOVQ AX, 16(SP) + MOVQ s+24(FP), AX + MOVQ AX, 24(SP) + MOVL l+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xinet_ntop(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) (r int32) +TEXT ·Yinet_pton(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL af+8(FP), AX + MOVL AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ a0+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xinet_pton(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yinit_module(tls *TLS, a uintptr, b uint64, c uintptr) (r int32) +TEXT ·Yinit_module(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + MOVQ c+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xinit_module(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yinitstate(tls *TLS, seed uint32, state uintptr, size Tsize_t) (r uintptr) +TEXT ·Yinitstate(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL seed+8(FP), AX + MOVL AX, 8(SP) + MOVQ state+16(FP), AX + MOVQ AX, 16(SP) + MOVQ size+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xinitstate(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yinitstate_r(t *TLS, seed uint32, statebuf uintptr, statelen Tsize_t, buf uintptr) (_5 int32) +TEXT ·Yinitstate_r(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL seed+8(FP), AX + MOVL AX, 8(SP) + MOVQ statebuf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ statelen+24(FP), AX + MOVQ AX, 24(SP) + MOVQ buf+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xinitstate_r(SB) + MOVL 40(SP), AX + MOVL AX, _5+40(FP) + RET + +// func Yinotify_add_watch(tls *TLS, fd int32, pathname uintptr, mask Tuint32_t) (r int32) +TEXT ·Yinotify_add_watch(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ pathname+16(FP), AX + MOVQ AX, 16(SP) + MOVL mask+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xinotify_add_watch(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yinotify_init(tls *TLS) (r int32) +TEXT ·Yinotify_init(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xinotify_init(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yinotify_init1(tls *TLS, flags int32) (r1 int32) +TEXT ·Yinotify_init1(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL flags+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xinotify_init1(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yinotify_rm_watch(tls *TLS, fd int32, wd int32) (r int32) +TEXT ·Yinotify_rm_watch(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL wd+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xinotify_rm_watch(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yinsque(tls *TLS, element uintptr, pred uintptr) +TEXT ·Yinsque(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ element+8(FP), AX + MOVQ AX, 8(SP) + MOVQ pred+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xinsque(SB) + RET + +// func Yioctl(tls *TLS, fd int32, req int32, va uintptr) (r1 int32) +TEXT ·Yioctl(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL req+12(FP), AX + MOVL AX, 12(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xioctl(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Yioperm(tls *TLS, from uint64, num uint64, turn_on int32) (r int32) +TEXT ·Yioperm(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ from+8(FP), AX + MOVQ AX, 8(SP) + MOVQ num+16(FP), AX + MOVQ AX, 16(SP) + MOVL turn_on+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xioperm(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yiopl(tls *TLS, level int32) (r int32) +TEXT ·Yiopl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL level+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiopl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisalnum(tls *TLS, c int32) (r int32) +TEXT ·Yisalnum(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisalnum(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisalnum_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisalnum_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisalnum_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yisalpha(tls *TLS, c int32) (r int32) +TEXT ·Yisalpha(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisalpha(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisalpha_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisalpha_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yisascii(tls *TLS, c int32) (r int32) +TEXT ·Yisascii(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisascii(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisastream(tls *TLS, fd int32) (r int32) +TEXT ·Yisastream(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisastream(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisatty(tls *TLS, fd int32) (r1 int32) +TEXT ·Yisatty(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisatty(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yisblank(tls *TLS, c int32) (r int32) +TEXT ·Yisblank(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisblank(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisblank_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisblank_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisblank_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiscntrl(tls *TLS, c int32) (r int32) +TEXT ·Yiscntrl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiscntrl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yiscntrl_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiscntrl_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yisdigit(tls *TLS, c int32) (r int32) +TEXT ·Yisdigit(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisdigit(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisdigit_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisdigit_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yisgraph(tls *TLS, c int32) (r int32) +TEXT ·Yisgraph(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisgraph(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisgraph_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisgraph_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yislower(tls *TLS, c int32) (r int32) +TEXT ·Yislower(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xislower(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yislower_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yislower_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xislower_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yisnan(t *TLS, x float64) (_2 int32) +TEXT ·Yisnan(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xisnan(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Yisnanf(t *TLS, arg float32) (_2 int32) +TEXT ·Yisnanf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL arg+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisnanf(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Yisnanl(t *TLS, arg float64) (_2 int32) +TEXT ·Yisnanl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ arg+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xisnanl(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Yisprint(tls *TLS, c int32) (r int32) +TEXT ·Yisprint(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisprint(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisprint_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisprint_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yispunct(tls *TLS, c int32) (r int32) +TEXT ·Yispunct(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xispunct(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yispunct_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yispunct_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xispunct_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yissetugid(tls *TLS) (r int32) +TEXT ·Yissetugid(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xissetugid(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yisspace(tls *TLS, c int32) (r int32) +TEXT ·Yisspace(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisspace(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisspace_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisspace_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yisupper(tls *TLS, c int32) (r int32) +TEXT ·Yisupper(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisupper(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisupper_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisupper_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswalnum(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswalnum(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswalnum(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswalnum_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswalnum_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswalnum_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswalpha(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswalpha(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswalpha(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswalpha_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswalpha_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswalpha_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswblank(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswblank(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswblank(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswblank_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswblank_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswcntrl(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswcntrl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswcntrl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswcntrl_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswcntrl_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswcntrl_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswctype(tls *TLS, wc Twint_t, type1 Twctype_t) (r int32) +TEXT ·Yiswctype(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + MOVQ type1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswctype(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswctype_l(tls *TLS, c Twint_t, t Twctype_t, l Tlocale_t) (r int32) +TEXT ·Yiswctype_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ t+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xiswctype_l(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yiswdigit(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswdigit(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswdigit(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswdigit_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswdigit_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswgraph(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswgraph(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswgraph(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswgraph_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswgraph_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswgraph_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswlower(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswlower(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswlower(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswlower_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswlower_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswprint(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswprint(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswprint(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswprint_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswprint_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswprint_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswpunct(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswpunct(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswpunct(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswpunct_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswpunct_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswpunct_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswspace(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswspace(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswspace(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswspace_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswspace_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswspace_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswupper(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswupper(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswupper(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswupper_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswupper_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yiswxdigit(tls *TLS, wc Twint_t) (r int32) +TEXT ·Yiswxdigit(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xiswxdigit(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yiswxdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) +TEXT ·Yiswxdigit_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xiswxdigit_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yisxdigit(tls *TLS, c int32) (r int32) +TEXT ·Yisxdigit(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xisxdigit(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yisxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Yisxdigit_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xisxdigit_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yj0(tls *TLS, x float64) (r1 float64) +TEXT ·Yj0(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xj0(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Yj0f(tls *TLS, x float32) (r1 float32) +TEXT ·Yj0f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xj0f(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yj1(tls *TLS, x float64) (r1 float64) +TEXT ·Yj1(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xj1(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Yj1f(tls *TLS, x float32) (r1 float32) +TEXT ·Yj1f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xj1f(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yjn(tls *TLS, n int32, x float64) (r float64) +TEXT ·Yjn(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + MOVQ x+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xjn(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yjnf(tls *TLS, n int32, x float32) (r float32) +TEXT ·Yjnf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + MOVL x+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xjnf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yjrand48(tls *TLS, s uintptr) (r int64) +TEXT ·Yjrand48(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xjrand48(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ykill(tls *TLS, pid Tpid_t, sig int32) (r int32) +TEXT ·Ykill(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVL sig+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xkill(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ykillpg(tls *TLS, pgid Tpid_t, sig int32) (r int32) +TEXT ·Ykillpg(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pgid+8(FP), AX + MOVL AX, 8(SP) + MOVL sig+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xkillpg(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yklogctl(tls *TLS, type1 int32, buf uintptr, len1 int32) (r int32) +TEXT ·Yklogctl(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL type1+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVL len1+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xklogctl(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yl64a(tls *TLS, x0 int64) (r uintptr) +TEXT ·Yl64a(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x0+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xl64a(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylabs(tls *TLS, a int64) (r int64) +TEXT ·Ylabs(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlabs(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylchmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) +TEXT ·Ylchmod(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL mode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xlchmod(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ylchown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) +TEXT ·Ylchown(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL uid+16(FP), AX + MOVL AX, 16(SP) + MOVL gid+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xlchown(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ylckpwdf(tls *TLS) (r int32) +TEXT ·Ylckpwdf(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xlckpwdf(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ylcong48(tls *TLS, p uintptr) +TEXT ·Ylcong48(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlcong48(SB) + RET + +// func Yldexp(tls *TLS, x float64, n int32) (r float64) +TEXT ·Yldexp(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xldexp(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yldexpf(tls *TLS, x float32, n int32) (r float32) +TEXT ·Yldexpf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL n+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xldexpf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yldexpl(tls *TLS, x float64, n int32) (r float64) +TEXT ·Yldexpl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xldexpl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yldiv(tls *TLS, num int64, den int64) (r Tldiv_t) +TEXT ·Yldiv(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ num+8(FP), AX + MOVQ AX, 8(SP) + MOVQ den+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xldiv(SB) + MOVQ 24(SP), AX + MOVQ AX, r_Fquot+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_Frem+32(FP) + RET + +// func Ylfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_compar uintptr) (r uintptr) +TEXT ·Ylfind(SB),$64-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_compar+40(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_lfind_4(SB) // Create the closure for calling __ccgo_fp_compar + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ base+16(FP), AX + MOVQ AX, 16(SP) + MOVQ nelp+24(FP), AX + MOVQ AX, 24(SP) + MOVQ width+32(FP), AX + MOVQ AX, 32(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 40(SP) + CALL ·Xlfind(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_lfind_4(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Ylgamma(tls *TLS, x float64) (r float64) +TEXT ·Ylgamma(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlgamma(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylgamma_r(tls *TLS, x float64, signgamp uintptr) (r float64) +TEXT ·Ylgamma_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ signgamp+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlgamma_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ylgammaf(tls *TLS, x float32) (r float32) +TEXT ·Ylgammaf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlgammaf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ylgammaf_r(tls *TLS, x float32, signgamp uintptr) (r float32) +TEXT ·Ylgammaf_r(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVQ signgamp+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlgammaf_r(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ylgammal(tls *TLS, x float64) (r float64) +TEXT ·Ylgammal(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlgammal(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylgammal_r(tls *TLS, x float64, sg uintptr) (r float64) +TEXT ·Ylgammal_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sg+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlgammal_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ylgetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) +TEXT ·Ylgetxattr(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ value+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xlgetxattr(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ylink(tls *TLS, existing uintptr, new1 uintptr) (r int32) +TEXT ·Ylink(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ existing+8(FP), AX + MOVQ AX, 8(SP) + MOVQ new1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlink(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ylinkat(tls *TLS, fd1 int32, existing uintptr, fd2 int32, new1 uintptr, flag int32) (r int32) +TEXT ·Ylinkat(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd1+8(FP), AX + MOVL AX, 8(SP) + MOVQ existing+16(FP), AX + MOVQ AX, 16(SP) + MOVL fd2+24(FP), AX + MOVL AX, 24(SP) + MOVQ new1+32(FP), AX + MOVQ AX, 32(SP) + MOVL flag+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xlinkat(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ylisten(tls *TLS, fd int32, backlog int32) (r1 int32) +TEXT ·Ylisten(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL backlog+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xlisten(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Ylistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) +TEXT ·Ylistxattr(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ list+16(FP), AX + MOVQ AX, 16(SP) + MOVQ size+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xlistxattr(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yllabs(tls *TLS, a int64) (r int64) +TEXT ·Yllabs(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xllabs(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylldiv(tls *TLS, num int64, den int64) (r Tlldiv_t) +TEXT ·Ylldiv(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ num+8(FP), AX + MOVQ AX, 8(SP) + MOVQ den+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlldiv(SB) + MOVQ 24(SP), AX + MOVQ AX, r_Fquot+24(FP) + MOVQ 32(SP), AX + MOVQ AX, r_Frem+32(FP) + RET + +// func Yllistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) +TEXT ·Yllistxattr(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ list+16(FP), AX + MOVQ AX, 16(SP) + MOVQ size+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xllistxattr(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yllrint(tls *TLS, x float64) (r int64) +TEXT ·Yllrint(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xllrint(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yllrintf(tls *TLS, x float32) (r int64) +TEXT ·Yllrintf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xllrintf(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yllrintl(tls *TLS, x float64) (r int64) +TEXT ·Yllrintl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xllrintl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yllround(tls *TLS, x float64) (r int64) +TEXT ·Yllround(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xllround(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yllroundf(tls *TLS, x float32) (r int64) +TEXT ·Yllroundf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xllroundf(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yllroundl(tls *TLS, x float64) (r int64) +TEXT ·Yllroundl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xllroundl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylocaleconv(tls *TLS) (r uintptr) +TEXT ·Ylocaleconv(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xlocaleconv(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ylocaltime(tls *TLS, t uintptr) (r uintptr) +TEXT ·Ylocaltime(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlocaltime(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylocaltime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) +TEXT ·Ylocaltime_r(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ tm+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlocaltime_r(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ylockf(tls *TLS, fd int32, op int32, size Toff_t) (r int32) +TEXT ·Ylockf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL op+12(FP), AX + MOVL AX, 12(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlockf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ylog(tls *TLS, x1 float64) (r1 float64) +TEXT ·Ylog(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlog(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Ylog10(tls *TLS, x float64) (r float64) +TEXT ·Ylog10(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlog10(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylog10f(tls *TLS, x float32) (r float32) +TEXT ·Ylog10f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlog10f(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ylog10l(tls *TLS, x float64) (r float64) +TEXT ·Ylog10l(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlog10l(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylog1p(tls *TLS, x3 float64) (r float64) +TEXT ·Ylog1p(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlog1p(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylog1pf(tls *TLS, x3 float32) (r float32) +TEXT ·Ylog1pf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlog1pf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ylog1pl(tls *TLS, x float64) (r float64) +TEXT ·Ylog1pl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlog1pl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylog2(tls *TLS, x1 float64) (r1 float64) +TEXT ·Ylog2(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlog2(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Ylog2f(tls *TLS, x1 float32) (r1 float32) +TEXT ·Ylog2f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x1+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlog2f(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Ylog2l(tls *TLS, x float64) (r float64) +TEXT ·Ylog2l(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlog2l(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylogb(tls *TLS, x float64) (r float64) +TEXT ·Ylogb(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlogb(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylogbf(tls *TLS, x float32) (r float32) +TEXT ·Ylogbf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlogbf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ylogbl(tls *TLS, x float64) (r float64) +TEXT ·Ylogbl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlogbl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylogf(tls *TLS, x1 float32) (r1 float32) +TEXT ·Ylogf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x1+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlogf(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Ylogin_tty(tls *TLS, fd int32) (r int32) +TEXT ·Ylogin_tty(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlogin_tty(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ylogl(tls *TLS, x float64) (r float64) +TEXT ·Ylogl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlogl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylongjmp(t *TLS, env uintptr, val int32) +TEXT ·Ylongjmp(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ env+8(FP), AX + MOVQ AX, 8(SP) + MOVL val+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xlongjmp(SB) + RET + +// func Ylrand48(tls *TLS) (r int64) +TEXT ·Ylrand48(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xlrand48(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ylremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) +TEXT ·Ylremovexattr(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlremovexattr(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ylrint(tls *TLS, x float64) (r int64) +TEXT ·Ylrint(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlrint(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylrintf(tls *TLS, x float32) (r int64) +TEXT ·Ylrintf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlrintf(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylrintl(tls *TLS, x float64) (r int64) +TEXT ·Ylrintl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlrintl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylround(tls *TLS, x float64) (r int64) +TEXT ·Ylround(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlround(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylroundf(tls *TLS, x float32) (r int64) +TEXT ·Ylroundf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xlroundf(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylroundl(tls *TLS, x float64) (r int64) +TEXT ·Ylroundl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xlroundl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ylsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_compar uintptr) (r uintptr) +TEXT ·Ylsearch(SB),$64-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_compar+40(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_lsearch_4(SB) // Create the closure for calling __ccgo_fp_compar + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ base+16(FP), AX + MOVQ AX, 16(SP) + MOVQ nelp+24(FP), AX + MOVQ AX, 24(SP) + MOVQ width+32(FP), AX + MOVQ AX, 32(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 40(SP) + CALL ·Xlsearch(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_lsearch_4(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Ylseek(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) +TEXT ·Ylseek(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ offset+16(FP), AX + MOVQ AX, 16(SP) + MOVL whence+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xlseek(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ylseek64(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) +TEXT ·Ylseek64(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ offset+16(FP), AX + MOVQ AX, 16(SP) + MOVL whence+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xlseek64(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ylsetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) +TEXT ·Ylsetxattr(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ value+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVL flags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xlsetxattr(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ylstat(tls *TLS, path uintptr, buf uintptr) (r int32) +TEXT ·Ylstat(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlstat(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ylstat64(tls *TLS, path uintptr, buf uintptr) (r int32) +TEXT ·Ylstat64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlstat64(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ylutimes(tls *TLS, filename uintptr, tv uintptr) (r int32) +TEXT ·Ylutimes(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVQ tv+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xlutimes(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymadvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) +TEXT ·Ymadvise(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL advice+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xmadvise(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymalloc(tls *TLS, n Tsize_t) (r uintptr) +TEXT ·Ymalloc(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xmalloc(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ymalloc_usable_size(tls *TLS, p uintptr) (r Tsize_t) +TEXT ·Ymalloc_usable_size(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xmalloc_usable_size(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ymblen(tls *TLS, s uintptr, n Tsize_t) (r int32) +TEXT ·Ymblen(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xmblen(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymbrlen(tls *TLS, s uintptr, n Tsize_t, st uintptr) (r Tsize_t) +TEXT ·Ymbrlen(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ st+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmbrlen(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ymbrtoc16(tls *TLS, pc16 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) +TEXT ·Ymbrtoc16(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ pc16+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ ps+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xmbrtoc16(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ymbrtoc32(tls *TLS, pc32 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) +TEXT ·Ymbrtoc32(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ pc32+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ ps+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xmbrtoc32(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ymbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize_t) +TEXT ·Ymbrtowc(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ wc+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ st+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xmbrtowc(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ymbsinit(tls *TLS, st uintptr) (r int32) +TEXT ·Ymbsinit(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ st+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xmbsinit(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ymbsnrtowcs(tls *TLS, wcs uintptr, src uintptr, n Tsize_t, wn Tsize_t, st uintptr) (r Tsize_t) +TEXT ·Ymbsnrtowcs(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ wcs+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ wn+32(FP), AX + MOVQ AX, 32(SP) + MOVQ st+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xmbsnrtowcs(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ymbsrtowcs(tls *TLS, ws uintptr, src uintptr, wn Tsize_t, st uintptr) (r Tsize_t) +TEXT ·Ymbsrtowcs(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ws+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ wn+24(FP), AX + MOVQ AX, 24(SP) + MOVQ st+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xmbsrtowcs(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ymbstowcs(tls *TLS, ws uintptr, _s uintptr, wn Tsize_t) (r Tsize_t) +TEXT ·Ymbstowcs(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ws+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ wn+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmbstowcs(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ymbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) +TEXT ·Ymbtowc(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ wc+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmbtowc(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintptr) +TEXT ·Ymemccpy(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVL c+24(FP), AX + MOVL AX, 24(SP) + MOVQ n+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xmemccpy(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ymemchr(tls *TLS, src uintptr, c int32, n Tsize_t) (r uintptr) +TEXT ·Ymemchr(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ src+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmemchr(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ymemcmp(tls *TLS, vl uintptr, vr uintptr, n Tsize_t) (r1 int32) +TEXT ·Ymemcmp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ vl+8(FP), AX + MOVQ AX, 8(SP) + MOVQ vr+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmemcmp(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ymemcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) +TEXT ·Ymemcpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmemcpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ymemfd_create(tls *TLS, name uintptr, flags uint32) (r int32) +TEXT ·Ymemfd_create(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xmemfd_create(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymemmem(tls *TLS, h0 uintptr, k Tsize_t, n0 uintptr, l Tsize_t) (r uintptr) +TEXT ·Ymemmem(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ h0+8(FP), AX + MOVQ AX, 8(SP) + MOVQ k+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n0+24(FP), AX + MOVQ AX, 24(SP) + MOVQ l+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xmemmem(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ymemmove(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) +TEXT ·Ymemmove(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmemmove(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ymempcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) +TEXT ·Ymempcpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmempcpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ymemrchr(tls *TLS, m uintptr, c int32, n Tsize_t) (r uintptr) +TEXT ·Ymemrchr(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmemrchr(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ymemset(tls *TLS, dest uintptr, c int32, n Tsize_t) (r uintptr) +TEXT ·Ymemset(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmemset(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ymincore(tls *TLS, addr uintptr, len1 Tsize_t, vec uintptr) (r int32) +TEXT ·Ymincore(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ vec+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmincore(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymkdir(tls *TLS, path uintptr, mode Tmode_t) (r int32) +TEXT ·Ymkdir(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL mode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xmkdir(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymkdirat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) +TEXT ·Ymkdirat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL mode+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xmkdirat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymkdtemp(tls *TLS, template uintptr) (r uintptr) +TEXT ·Ymkdtemp(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xmkdtemp(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ymkfifo(tls *TLS, path uintptr, mode Tmode_t) (r int32) +TEXT ·Ymkfifo(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL mode+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xmkfifo(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymkfifoat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) +TEXT ·Ymkfifoat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL mode+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xmkfifoat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymknod(tls *TLS, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) +TEXT ·Ymknod(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL mode+16(FP), AX + MOVL AX, 16(SP) + MOVQ dev+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xmknod(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymknodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) +TEXT ·Ymknodat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL mode+24(FP), AX + MOVL AX, 24(SP) + MOVQ dev+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xmknodat(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ymkostemp(tls *TLS, template uintptr, flags int32) (r int32) +TEXT ·Ymkostemp(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xmkostemp(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymkostemps(tls *TLS, template uintptr, len1 int32, flags int32) (r int32) +TEXT ·Ymkostemps(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + MOVL len1+16(FP), AX + MOVL AX, 16(SP) + MOVL flags+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xmkostemps(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymkstemp(tls *TLS, template uintptr) (r int32) +TEXT ·Ymkstemp(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xmkstemp(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ymkstemp64(tls *TLS, template uintptr) (r int32) +TEXT ·Ymkstemp64(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xmkstemp64(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ymkstemps(tls *TLS, template uintptr, len1 int32) (r int32) +TEXT ·Ymkstemps(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + MOVL len1+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xmkstemps(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymkstemps64(tls *TLS, template uintptr, len1 int32) (r int32) +TEXT ·Ymkstemps64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + MOVL len1+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xmkstemps64(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymktemp(tls *TLS, template uintptr) (r uintptr) +TEXT ·Ymktemp(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ template+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xmktemp(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ymktime(tls *TLS, tm uintptr) (r Ttime_t) +TEXT ·Ymktime(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tm+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xmktime(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ymlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) +TEXT ·Ymlock(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xmlock(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymlock2(tls *TLS, addr uintptr, len1 Tsize_t, flags uint32) (r int32) +TEXT ·Ymlock2(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xmlock2(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymlockall(tls *TLS, flags int32) (r int32) +TEXT ·Ymlockall(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL flags+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xmlockall(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ymmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) +TEXT ·Ymmap(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ start+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL prot+24(FP), AX + MOVL AX, 24(SP) + MOVL flags+28(FP), AX + MOVL AX, 28(SP) + MOVL fd+32(FP), AX + MOVL AX, 32(SP) + MOVQ off+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xmmap(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ymmap64(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) +TEXT ·Ymmap64(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ start+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL prot+24(FP), AX + MOVL AX, 24(SP) + MOVL flags+28(FP), AX + MOVL AX, 28(SP) + MOVL fd+32(FP), AX + MOVL AX, 32(SP) + MOVQ off+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xmmap64(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ymodf(tls *TLS, x float64, iptr uintptr) (r float64) +TEXT ·Ymodf(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ iptr+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xmodf(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ymodff(tls *TLS, x float32, iptr uintptr) (r float32) +TEXT ·Ymodff(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVQ iptr+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xmodff(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymodfl(tls *TLS, x float64, iptr uintptr) (r1 float64) +TEXT ·Ymodfl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ iptr+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xmodfl(SB) + MOVQ 24(SP), AX + MOVQ AX, r1+24(FP) + RET + +// func Ymount(tls *TLS, special uintptr, dir uintptr, fstype uintptr, flags uint64, data uintptr) (r int32) +TEXT ·Ymount(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ special+8(FP), AX + MOVQ AX, 8(SP) + MOVQ dir+16(FP), AX + MOVQ AX, 16(SP) + MOVQ fstype+24(FP), AX + MOVQ AX, 24(SP) + MOVQ flags+32(FP), AX + MOVQ AX, 32(SP) + MOVQ data+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xmount(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ymprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) +TEXT ·Ymprotect(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL prot+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xmprotect(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymrand48(tls *TLS) (r int64) +TEXT ·Ymrand48(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xmrand48(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ymremap(tls *TLS, old_addr uintptr, old_len Tsize_t, new_len Tsize_t, flags int32, va uintptr) (r uintptr) +TEXT ·Ymremap(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ old_addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ old_len+16(FP), AX + MOVQ AX, 16(SP) + MOVQ new_len+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + MOVQ va+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xmremap(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ymsgctl(tls *TLS, q int32, cmd int32, buf uintptr) (r1 int32) +TEXT ·Ymsgctl(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL q+8(FP), AX + MOVL AX, 8(SP) + MOVL cmd+12(FP), AX + MOVL AX, 12(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xmsgctl(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ymsgget(tls *TLS, k Tkey_t, flag int32) (r int32) +TEXT ·Ymsgget(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL k+8(FP), AX + MOVL AX, 8(SP) + MOVL flag+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xmsgget(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ymsgrcv(tls *TLS, q int32, m uintptr, len1 Tsize_t, type1 int64, flag int32) (r Tssize_t) +TEXT ·Ymsgrcv(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL q+8(FP), AX + MOVL AX, 8(SP) + MOVQ m+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVQ type1+32(FP), AX + MOVQ AX, 32(SP) + MOVL flag+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xmsgrcv(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ymsgsnd(tls *TLS, q int32, m uintptr, len1 Tsize_t, flag int32) (r int32) +TEXT ·Ymsgsnd(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL q+8(FP), AX + MOVL AX, 8(SP) + MOVQ m+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVL flag+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xmsgsnd(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ymsync(tls *TLS, start uintptr, len1 Tsize_t, flags int32) (r int32) +TEXT ·Ymsync(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ start+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xmsync(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ymunlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) +TEXT ·Ymunlock(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xmunlock(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ymunlockall(tls *TLS) (r int32) +TEXT ·Ymunlockall(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xmunlockall(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ymunmap(tls *TLS, start uintptr, len1 Tsize_t) (r int32) +TEXT ·Ymunmap(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ start+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xmunmap(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yname_to_handle_at(tls *TLS, dirfd int32, pathname uintptr, handle uintptr, mount_id uintptr, flags int32) (r int32) +TEXT ·Yname_to_handle_at(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL dirfd+8(FP), AX + MOVL AX, 8(SP) + MOVQ pathname+16(FP), AX + MOVQ AX, 16(SP) + MOVQ handle+24(FP), AX + MOVQ AX, 24(SP) + MOVQ mount_id+32(FP), AX + MOVQ AX, 32(SP) + MOVL flags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xname_to_handle_at(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ynan(tls *TLS, s uintptr) (r float64) +TEXT ·Ynan(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xnan(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ynanf(tls *TLS, s uintptr) (r float32) +TEXT ·Ynanf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xnanf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ynanl(tls *TLS, s uintptr) (r float64) +TEXT ·Ynanl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xnanl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ynanosleep(tls *TLS, req uintptr, rem uintptr) (r int32) +TEXT ·Ynanosleep(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ req+8(FP), AX + MOVQ AX, 8(SP) + MOVQ rem+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xnanosleep(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ynewlocale(tls *TLS, mask int32, name uintptr, loc Tlocale_t) (r Tlocale_t) +TEXT ·Ynewlocale(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL mask+8(FP), AX + MOVL AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ loc+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xnewlocale(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ynextafter(tls *TLS, x3 float64, y3 float64) (r float64) +TEXT ·Ynextafter(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y3+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xnextafter(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ynextafterf(tls *TLS, x3 float32, y3 float32) (r float32) +TEXT ·Ynextafterf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + MOVL y3+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xnextafterf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ynextafterl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Ynextafterl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xnextafterl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ynexttoward(tls *TLS, x float64, y float64) (r float64) +TEXT ·Ynexttoward(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xnexttoward(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ynexttowardf(tls *TLS, x3 float32, y3 float64) (r float32) +TEXT ·Ynexttowardf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + MOVQ y3+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xnexttowardf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ynexttowardl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Ynexttowardl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xnexttowardl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ynftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32) (r1 int32) +TEXT ·Ynftw(SB),$48-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_fn+16(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_nftw_1(SB) // Create the closure for calling __ccgo_fp_fn + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 16(SP) + MOVL fd_limit+24(FP), AX + MOVL AX, 24(SP) + MOVL flags+28(FP), AX + MOVL AX, 28(SP) + CALL ·Xnftw(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_nftw_1(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVL _3+24(FP), AX + MOVL AX, 24(SP) + MOVQ _4+32(FP), AX + MOVQ AX, 32(SP) + MOVQ __ccgo_fp+40(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 40(SP), AX + MOVL AX, _5+48(FP) + RET + +// func Yngettext(tls *TLS, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) +TEXT ·Yngettext(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msgid1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ msgid2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xngettext(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ynice(tls *TLS, inc int32) (r int32) +TEXT ·Ynice(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL inc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xnice(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ynl_langinfo(tls *TLS, item Tnl_item) (r uintptr) +TEXT ·Ynl_langinfo(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL item+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xnl_langinfo(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ynl_langinfo_l(tls *TLS, item Tnl_item, loc Tlocale_t) (r uintptr) +TEXT ·Ynl_langinfo_l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL item+8(FP), AX + MOVL AX, 8(SP) + MOVQ loc+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xnl_langinfo_l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ynrand48(tls *TLS, s uintptr) (r int64) +TEXT ·Ynrand48(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xnrand48(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yns_get16(tls *TLS, cp uintptr) (r uint32) +TEXT ·Yns_get16(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ cp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xns_get16(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yns_get32(tls *TLS, cp uintptr) (r uint64) +TEXT ·Yns_get32(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ cp+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xns_get32(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yns_initparse(tls *TLS, msg uintptr, msglen int32, handle uintptr) (r1 int32) +TEXT ·Yns_initparse(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msg+8(FP), AX + MOVQ AX, 8(SP) + MOVL msglen+16(FP), AX + MOVL AX, 16(SP) + MOVQ handle+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xns_initparse(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Yns_name_uncompress(tls *TLS, msg uintptr, eom uintptr, src uintptr, dst uintptr, dstsiz Tsize_t) (r1 int32) +TEXT ·Yns_name_uncompress(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msg+8(FP), AX + MOVQ AX, 8(SP) + MOVQ eom+16(FP), AX + MOVQ AX, 16(SP) + MOVQ src+24(FP), AX + MOVQ AX, 24(SP) + MOVQ dst+32(FP), AX + MOVQ AX, 32(SP) + MOVQ dstsiz+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xns_name_uncompress(SB) + MOVL 48(SP), AX + MOVL AX, r1+48(FP) + RET + +// func Yns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uintptr) (r1 int32) +TEXT ·Yns_parserr(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ handle+8(FP), AX + MOVQ AX, 8(SP) + MOVL section+16(FP), AX + MOVL AX, 16(SP) + MOVL rrnum+20(FP), AX + MOVL AX, 20(SP) + MOVQ rr+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xns_parserr(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Yns_put16(tls *TLS, s uint32, cp uintptr) +TEXT ·Yns_put16(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL s+8(FP), AX + MOVL AX, 8(SP) + MOVQ cp+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xns_put16(SB) + RET + +// func Yns_put32(tls *TLS, l uint64, cp uintptr) +TEXT ·Yns_put32(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ cp+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xns_put32(SB) + RET + +// func Yns_skiprr(tls *TLS, ptr uintptr, eom uintptr, section Tns_sect, count int32) (r1 int32) +TEXT ·Yns_skiprr(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ eom+16(FP), AX + MOVQ AX, 16(SP) + MOVL section+24(FP), AX + MOVL AX, 24(SP) + MOVL count+28(FP), AX + MOVL AX, 28(SP) + CALL ·Xns_skiprr(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Yntohl(tls *TLS, n Tuint32_t) (r Tuint32_t) +TEXT ·Yntohl(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xntohl(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yntohs(tls *TLS, n Tuint16_t) (r Tuint16_t) +TEXT ·Yntohs(SB),$24-18 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVW n+8(FP), AX + MOVW AX, 8(SP) + CALL ·Xntohs(SB) + MOVW 16(SP), AX + MOVW AX, r+16(FP) + RET + +// func Yobstack_free(t *TLS, obstack, obj uintptr) +TEXT ·Yobstack_free(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ obstack+8(FP), AX + MOVQ AX, 8(SP) + MOVQ obj+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xobstack_free(SB) + RET + +// func Yobstack_vprintf(t *TLS, obstack, template, va uintptr) (_2 int32) +TEXT ·Yobstack_vprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ obstack+8(FP), AX + MOVQ AX, 8(SP) + MOVQ template+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xobstack_vprintf(SB) + MOVL 32(SP), AX + MOVL AX, _2+32(FP) + RET + +// func Yopen(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) +TEXT ·Yopen(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xopen(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yopen64(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) +TEXT ·Yopen64(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xopen64(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yopen_by_handle_at(tls *TLS, mount_fd int32, handle uintptr, flags int32) (r int32) +TEXT ·Yopen_by_handle_at(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL mount_fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ handle+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xopen_by_handle_at(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yopen_memstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) +TEXT ·Yopen_memstream(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ bufp+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sizep+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xopen_memstream(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yopen_wmemstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) +TEXT ·Yopen_wmemstream(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ bufp+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sizep+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xopen_wmemstream(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yopenat(tls *TLS, fd int32, filename uintptr, flags int32, va uintptr) (r int32) +TEXT ·Yopenat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ filename+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + MOVQ va+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xopenat(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yopendir(tls *TLS, name uintptr) (r uintptr) +TEXT ·Yopendir(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xopendir(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yopenlog(tls *TLS, ident uintptr, opt int32, facility int32) +TEXT ·Yopenlog(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ident+8(FP), AX + MOVQ AX, 8(SP) + MOVL opt+16(FP), AX + MOVL AX, 16(SP) + MOVL facility+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xopenlog(SB) + RET + +// func Yopenpty(tls *TLS, pm uintptr, ps uintptr, name uintptr, tio uintptr, ws uintptr) (r int32) +TEXT ·Yopenpty(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ pm+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ps+16(FP), AX + MOVQ AX, 16(SP) + MOVQ name+24(FP), AX + MOVQ AX, 24(SP) + MOVQ tio+32(FP), AX + MOVQ AX, 32(SP) + MOVQ ws+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xopenpty(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ypathconf(tls *TLS, path uintptr, name int32) (r int64) +TEXT ·Ypathconf(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL name+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xpathconf(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ypause(tls *TLS) (r int32) +TEXT ·Ypause(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xpause(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ypclose(tls *TLS, f uintptr) (r1 int32) +TEXT ·Ypclose(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpclose(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yperror(tls *TLS, msg uintptr) +TEXT ·Yperror(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ msg+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xperror(SB) + RET + +// func Ypersonality(tls *TLS, persona uint64) (r int32) +TEXT ·Ypersonality(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ persona+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpersonality(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ypipe(tls *TLS, fd uintptr) (r int32) +TEXT ·Ypipe(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fd+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpipe(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ypipe2(tls *TLS, fd uintptr, flag int32) (r int32) +TEXT ·Ypipe2(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fd+8(FP), AX + MOVQ AX, 8(SP) + MOVL flag+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xpipe2(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ypivot_root(tls *TLS, new1 uintptr, old uintptr) (r int32) +TEXT ·Ypivot_root(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ new1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ old+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpivot_root(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ypoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) +TEXT ·Ypoll(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fds+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVL timeout+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xpoll(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ypopen(t *TLS, command, type1 uintptr) (_2 uintptr) +TEXT ·Ypopen(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ command+8(FP), AX + MOVQ AX, 8(SP) + MOVQ type1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpopen(SB) + MOVQ 24(SP), AX + MOVQ AX, _2+24(FP) + RET + +// func Yposix_close(tls *TLS, fd int32, flags int32) (r int32) +TEXT ·Yposix_close(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL flags+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xposix_close(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yposix_fadvise(tls *TLS, fd int32, base Toff_t, len1 Toff_t, advice int32) (r int32) +TEXT ·Yposix_fadvise(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ base+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVL advice+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xposix_fadvise(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yposix_fallocate(tls *TLS, fd int32, base Toff_t, len1 Toff_t) (r int32) +TEXT ·Yposix_fallocate(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ base+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xposix_fallocate(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yposix_madvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) +TEXT ·Yposix_madvise(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL advice+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xposix_madvise(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yposix_openpt(tls *TLS, flags int32) (r1 int32) +TEXT ·Yposix_openpt(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL flags+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xposix_openpt(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yposix_spawn_file_actions_addchdir_np(tls *TLS, fa uintptr, path uintptr) (r int32) +TEXT ·Yposix_spawn_file_actions_addchdir_np(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fa+8(FP), AX + MOVQ AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawn_file_actions_addchdir_np(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawn_file_actions_addclose(tls *TLS, fa uintptr, fd int32) (r int32) +TEXT ·Yposix_spawn_file_actions_addclose(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fa+8(FP), AX + MOVQ AX, 8(SP) + MOVL fd+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xposix_spawn_file_actions_addclose(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawn_file_actions_adddup2(tls *TLS, fa uintptr, srcfd int32, fd int32) (r int32) +TEXT ·Yposix_spawn_file_actions_adddup2(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fa+8(FP), AX + MOVQ AX, 8(SP) + MOVL srcfd+16(FP), AX + MOVL AX, 16(SP) + MOVL fd+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xposix_spawn_file_actions_adddup2(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawn_file_actions_addfchdir_np(tls *TLS, fa uintptr, fd int32) (r int32) +TEXT ·Yposix_spawn_file_actions_addfchdir_np(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fa+8(FP), AX + MOVQ AX, 8(SP) + MOVL fd+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xposix_spawn_file_actions_addfchdir_np(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawn_file_actions_addopen(tls *TLS, fa uintptr, fd int32, path uintptr, flags int32, mode Tmode_t) (r int32) +TEXT ·Yposix_spawn_file_actions_addopen(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fa+8(FP), AX + MOVQ AX, 8(SP) + MOVL fd+16(FP), AX + MOVL AX, 16(SP) + MOVQ path+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + MOVL mode+36(FP), AX + MOVL AX, 36(SP) + CALL ·Xposix_spawn_file_actions_addopen(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yposix_spawn_file_actions_destroy(tls *TLS, fa uintptr) (r int32) +TEXT ·Yposix_spawn_file_actions_destroy(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fa+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xposix_spawn_file_actions_destroy(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yposix_spawn_file_actions_init(tls *TLS, fa uintptr) (r int32) +TEXT ·Yposix_spawn_file_actions_init(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fa+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xposix_spawn_file_actions_init(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yposix_spawnattr_destroy(tls *TLS, attr uintptr) (r int32) +TEXT ·Yposix_spawnattr_destroy(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xposix_spawnattr_destroy(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yposix_spawnattr_getflags(tls *TLS, attr uintptr, flags uintptr) (r int32) +TEXT ·Yposix_spawnattr_getflags(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ flags+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_getflags(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_getpgroup(tls *TLS, attr uintptr, pgrp uintptr) (r int32) +TEXT ·Yposix_spawnattr_getpgroup(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ pgrp+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_getpgroup(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_getschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) +TEXT ·Yposix_spawnattr_getschedparam(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ schedparam+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_getschedparam(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_getschedpolicy(tls *TLS, attr uintptr, policy uintptr) (r int32) +TEXT ·Yposix_spawnattr_getschedpolicy(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ policy+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_getschedpolicy(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_getsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) +TEXT ·Yposix_spawnattr_getsigdefault(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ def+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_getsigdefault(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_getsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) +TEXT ·Yposix_spawnattr_getsigmask(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mask+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_getsigmask(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_init(tls *TLS, attr uintptr) (r int32) +TEXT ·Yposix_spawnattr_init(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xposix_spawnattr_init(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yposix_spawnattr_setflags(tls *TLS, attr uintptr, flags int16) (r int32) +TEXT ·Yposix_spawnattr_setflags(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVW flags+16(FP), AX + MOVW AX, 16(SP) + CALL ·Xposix_spawnattr_setflags(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_setpgroup(tls *TLS, attr uintptr, pgrp Tpid_t) (r int32) +TEXT ·Yposix_spawnattr_setpgroup(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVL pgrp+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xposix_spawnattr_setpgroup(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_setschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) +TEXT ·Yposix_spawnattr_setschedparam(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ schedparam+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_setschedparam(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_setschedpolicy(tls *TLS, attr uintptr, policy int32) (r int32) +TEXT ·Yposix_spawnattr_setschedpolicy(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVL policy+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xposix_spawnattr_setschedpolicy(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_setsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) +TEXT ·Yposix_spawnattr_setsigdefault(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ def+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_setsigdefault(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yposix_spawnattr_setsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) +TEXT ·Yposix_spawnattr_setsigmask(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ attr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mask+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xposix_spawnattr_setsigmask(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ypow(tls *TLS, x1 float64, y1 float64) (r float64) +TEXT ·Ypow(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpow(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ypow10(tls *TLS, x float64) (r float64) +TEXT ·Ypow10(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpow10(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ypow10f(tls *TLS, x float32) (r float32) +TEXT ·Ypow10f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xpow10f(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ypow10l(tls *TLS, x float64) (r float64) +TEXT ·Ypow10l(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpow10l(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ypowf(tls *TLS, x1 float32, y1 float32) (r float32) +TEXT ·Ypowf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x1+8(FP), AX + MOVL AX, 8(SP) + MOVL y1+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xpowf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ypowl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Ypowl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpowl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32) +TEXT ·Yppoll(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fds+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ to+24(FP), AX + MOVQ AX, 24(SP) + MOVQ mask+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xppoll(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yprctl(tls *TLS, op int32, va uintptr) (r int32) +TEXT ·Yprctl(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL op+8(FP), AX + MOVL AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xprctl(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ypread(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) +TEXT ·Ypread(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ size+24(FP), AX + MOVQ AX, 24(SP) + MOVQ ofs+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xpread(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ypreadv(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) +TEXT ·Ypreadv(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ iov+16(FP), AX + MOVQ AX, 16(SP) + MOVL count+24(FP), AX + MOVL AX, 24(SP) + MOVQ ofs+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xpreadv(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ypreadv2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) +TEXT ·Ypreadv2(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ iov+16(FP), AX + MOVQ AX, 16(SP) + MOVL count+24(FP), AX + MOVL AX, 24(SP) + MOVQ ofs+32(FP), AX + MOVQ AX, 32(SP) + MOVL flags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xpreadv2(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Yprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) +TEXT ·Yprintf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xprintf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yprlimit(tls *TLS, pid Tpid_t, resource int32, new_limit uintptr, old_limit uintptr) (r1 int32) +TEXT ·Yprlimit(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVL resource+12(FP), AX + MOVL AX, 12(SP) + MOVQ new_limit+16(FP), AX + MOVQ AX, 16(SP) + MOVQ old_limit+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xprlimit(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Yprocess_vm_readv(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) +TEXT ·Yprocess_vm_readv(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVQ lvec+16(FP), AX + MOVQ AX, 16(SP) + MOVQ liovcnt+24(FP), AX + MOVQ AX, 24(SP) + MOVQ rvec+32(FP), AX + MOVQ AX, 32(SP) + MOVQ riovcnt+40(FP), AX + MOVQ AX, 40(SP) + MOVQ flags+48(FP), AX + MOVQ AX, 48(SP) + CALL ·Xprocess_vm_readv(SB) + MOVQ 56(SP), AX + MOVQ AX, r+56(FP) + RET + +// func Yprocess_vm_writev(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) +TEXT ·Yprocess_vm_writev(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVQ lvec+16(FP), AX + MOVQ AX, 16(SP) + MOVQ liovcnt+24(FP), AX + MOVQ AX, 24(SP) + MOVQ rvec+32(FP), AX + MOVQ AX, 32(SP) + MOVQ riovcnt+40(FP), AX + MOVQ AX, 40(SP) + MOVQ flags+48(FP), AX + MOVQ AX, 48(SP) + CALL ·Xprocess_vm_writev(SB) + MOVQ 56(SP), AX + MOVQ AX, r+56(FP) + RET + +// func Ypselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts uintptr, mask uintptr) (r int32) +TEXT ·Ypselect(SB),$64-60 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + MOVQ rfds+16(FP), AX + MOVQ AX, 16(SP) + MOVQ wfds+24(FP), AX + MOVQ AX, 24(SP) + MOVQ efds+32(FP), AX + MOVQ AX, 32(SP) + MOVQ ts+40(FP), AX + MOVQ AX, 40(SP) + MOVQ mask+48(FP), AX + MOVQ AX, 48(SP) + CALL ·Xpselect(SB) + MOVL 56(SP), AX + MOVL AX, r+56(FP) + RET + +// func Ypsiginfo(tls *TLS, si uintptr, msg uintptr) +TEXT ·Ypsiginfo(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ si+8(FP), AX + MOVQ AX, 8(SP) + MOVQ msg+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpsiginfo(SB) + RET + +// func Ypsignal(tls *TLS, sig int32, msg uintptr) +TEXT ·Ypsignal(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sig+8(FP), AX + MOVL AX, 8(SP) + MOVQ msg+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpsignal(SB) + RET + +// func Ypthread_atfork(tls *TLS, prepare, parent, child uintptr) (_2 int32) +TEXT ·Ypthread_atfork(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ prepare+8(FP), AX + MOVQ AX, 8(SP) + MOVQ parent+16(FP), AX + MOVQ AX, 16(SP) + MOVQ child+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xpthread_atfork(SB) + MOVL 32(SP), AX + MOVL AX, _2+32(FP) + RET + +// func Ypthread_attr_destroy(tls *TLS, a uintptr) (_2 int32) +TEXT ·Ypthread_attr_destroy(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_attr_destroy(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) (_3 int32) +TEXT ·Ypthread_attr_getdetachstate(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ state+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_attr_getdetachstate(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Ypthread_attr_init(tls *TLS, a uintptr) (_2 int32) +TEXT ·Ypthread_attr_init(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_attr_init(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) (r int32) +TEXT ·Ypthread_attr_setdetachstate(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVL state+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xpthread_attr_setdetachstate(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ypthread_attr_setscope(tls *TLS, a uintptr, scope int32) (_3 int32) +TEXT ·Ypthread_attr_setscope(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVL scope+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xpthread_attr_setscope(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Ypthread_attr_setstacksize(tls *TLS, a uintptr, stacksite Tsize_t) (_3 int32) +TEXT ·Ypthread_attr_setstacksize(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ stacksite+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_attr_setstacksize(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Ypthread_cleanup_pop(tls *TLS, run int32) +TEXT ·Ypthread_cleanup_pop(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL run+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xpthread_cleanup_pop(SB) + RET + +// func Ypthread_cleanup_push(tls *TLS, f, x uintptr) +TEXT ·Ypthread_cleanup_push(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ x+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_cleanup_push(SB) + RET + +// func Ypthread_cond_broadcast(tls *TLS, c uintptr) (_2 int32) +TEXT ·Ypthread_cond_broadcast(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ c+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_cond_broadcast(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_cond_destroy(tls *TLS, c uintptr) (_2 int32) +TEXT ·Ypthread_cond_destroy(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ c+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_cond_destroy(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_cond_init(tls *TLS, c, a uintptr) (_2 int32) +TEXT ·Ypthread_cond_init(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ c+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_cond_init(SB) + MOVL 24(SP), AX + MOVL AX, _2+24(FP) + RET + +// func Ypthread_cond_signal(tls *TLS, c uintptr) (_2 int32) +TEXT ·Ypthread_cond_signal(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ c+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_cond_signal(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_cond_timedwait(tls *TLS, c, m, ts uintptr) (r int32) +TEXT ·Ypthread_cond_timedwait(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ c+8(FP), AX + MOVQ AX, 8(SP) + MOVQ m+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ts+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xpthread_cond_timedwait(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ypthread_cond_wait(tls *TLS, c, m uintptr) (_2 int32) +TEXT ·Ypthread_cond_wait(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ c+8(FP), AX + MOVQ AX, 8(SP) + MOVQ m+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_cond_wait(SB) + MOVL 24(SP), AX + MOVL AX, _2+24(FP) + RET + +// func Ypthread_create(tls *TLS, res, attrp, entry, arg uintptr) (_2 int32) +TEXT ·Ypthread_create(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ res+8(FP), AX + MOVQ AX, 8(SP) + MOVQ attrp+16(FP), AX + MOVQ AX, 16(SP) + MOVQ entry+24(FP), AX + MOVQ AX, 24(SP) + MOVQ arg+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xpthread_create(SB) + MOVL 40(SP), AX + MOVL AX, _2+40(FP) + RET + +// func Ypthread_detach(tls *TLS, t uintptr) (_2 int32) +TEXT ·Ypthread_detach(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_detach(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_equal(tls *TLS, t, u uintptr) (_2 int32) +TEXT ·Ypthread_equal(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ u+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_equal(SB) + MOVL 24(SP), AX + MOVL AX, _2+24(FP) + RET + +// func Ypthread_exit(tls *TLS, result uintptr) +TEXT ·Ypthread_exit(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ result+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_exit(SB) + RET + +// func Ypthread_getspecific(tls *TLS, k Tpthread_key_t) (_2 uintptr) +TEXT ·Ypthread_getspecific(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL k+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xpthread_getspecific(SB) + MOVQ 16(SP), AX + MOVQ AX, _2+16(FP) + RET + +// func Ypthread_join(tls *TLS, t Tpthread_t, res uintptr) (r int32) +TEXT ·Ypthread_join(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ res+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_join(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ypthread_key_create(tls *TLS, k uintptr, dtor uintptr) (_3 int32) +TEXT ·Ypthread_key_create(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ k+8(FP), AX + MOVQ AX, 8(SP) + MOVQ dtor+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_key_create(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Ypthread_key_delete(tls *TLS, k Tpthread_key_t) (_2 int32) +TEXT ·Ypthread_key_delete(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL k+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xpthread_key_delete(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_mutex_destroy(tls *TLS, m uintptr) (_2 int32) +TEXT ·Ypthread_mutex_destroy(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_mutex_destroy(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_mutex_init(tls *TLS, m, a uintptr) (_2 int32) +TEXT ·Ypthread_mutex_init(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + MOVQ a+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_mutex_init(SB) + MOVL 24(SP), AX + MOVL AX, _2+24(FP) + RET + +// func Ypthread_mutex_lock(tls *TLS, m uintptr) (_2 int32) +TEXT ·Ypthread_mutex_lock(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_mutex_lock(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_mutex_trylock(tls *TLS, m uintptr) (_2 int32) +TEXT ·Ypthread_mutex_trylock(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_mutex_trylock(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_mutex_unlock(tls *TLS, m uintptr) (_2 int32) +TEXT ·Ypthread_mutex_unlock(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ m+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_mutex_unlock(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_mutexattr_destroy(tls *TLS, a uintptr) (_2 int32) +TEXT ·Ypthread_mutexattr_destroy(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_mutexattr_destroy(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_mutexattr_init(tls *TLS, a uintptr) (_2 int32) +TEXT ·Ypthread_mutexattr_init(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpthread_mutexattr_init(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ypthread_mutexattr_settype(tls *TLS, a uintptr, typ int32) (_3 int32) +TEXT ·Ypthread_mutexattr_settype(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVL typ+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xpthread_mutexattr_settype(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Ypthread_self(tls *TLS) (_1 uintptr) +TEXT ·Ypthread_self(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xpthread_self(SB) + MOVQ 8(SP), AX + MOVQ AX, _1+8(FP) + RET + +// func Ypthread_setcancelstate(tls *TLS, new int32, old uintptr) (_3 int32) +TEXT ·Ypthread_setcancelstate(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL new+8(FP), AX + MOVL AX, 8(SP) + MOVQ old+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_setcancelstate(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Ypthread_setspecific(tls *TLS, k Tpthread_key_t, x uintptr) (_3 int32) +TEXT ·Ypthread_setspecific(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL k+8(FP), AX + MOVL AX, 8(SP) + MOVQ x+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xpthread_setspecific(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Ypthread_sigmask(tls *TLS, now int32, set, old uintptr) (_3 int32) +TEXT ·Ypthread_sigmask(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL now+8(FP), AX + MOVL AX, 8(SP) + MOVQ set+16(FP), AX + MOVQ AX, 16(SP) + MOVQ old+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xpthread_sigmask(SB) + MOVL 32(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Yptrace(tls *TLS, req int32, va uintptr) (r int64) +TEXT ·Yptrace(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL req+8(FP), AX + MOVL AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xptrace(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yptsname(tls *TLS, fd int32) (r uintptr) +TEXT ·Yptsname(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xptsname(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yptsname_r(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) +TEXT ·Yptsname_r(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xptsname_r(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yputc(tls *TLS, c1 int32, f1 uintptr) (r int32) +TEXT ·Yputc(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c1+8(FP), AX + MOVL AX, 8(SP) + MOVQ f1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xputc(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) +TEXT ·Yputc_unlocked(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xputc_unlocked(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yputchar(tls *TLS, c1 int32) (r int32) +TEXT ·Yputchar(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c1+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xputchar(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yputchar_unlocked(tls *TLS, c int32) (r int32) +TEXT ·Yputchar_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xputchar_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yputenv(tls *TLS, s uintptr) (r int32) +TEXT ·Yputenv(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xputenv(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yputgrent(tls *TLS, gr uintptr, f uintptr) (r1 int32) +TEXT ·Yputgrent(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ gr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xputgrent(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Yputpwent(tls *TLS, pw uintptr, f uintptr) (r int32) +TEXT ·Yputpwent(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ pw+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xputpwent(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yputs(tls *TLS, s uintptr) (r1 int32) +TEXT ·Yputs(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xputs(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yputspent(tls *TLS, sp uintptr, f uintptr) (r int32) +TEXT ·Yputspent(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ sp+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xputspent(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ypututline(tls *TLS, ut uintptr) (r uintptr) +TEXT ·Ypututline(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ut+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpututline(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ypututxline(tls *TLS, ut uintptr) (r uintptr) +TEXT ·Ypututxline(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ut+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xpututxline(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yputw(tls *TLS, _x int32, f uintptr) (r int32) +TEXT ·Yputw(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL _x+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xputw(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) +TEXT ·Yputwc(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xputwc(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) +TEXT ·Yputwc_unlocked(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xputwc_unlocked(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yputwchar(tls *TLS, c Twchar_t) (r Twint_t) +TEXT ·Yputwchar(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xputwchar(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yputwchar_unlocked(tls *TLS, c Twchar_t) (r Twint_t) +TEXT ·Yputwchar_unlocked(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xputwchar_unlocked(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ypwrite(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) +TEXT ·Ypwrite(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ size+24(FP), AX + MOVQ AX, 24(SP) + MOVQ ofs+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xpwrite(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ypwritev(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) +TEXT ·Ypwritev(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ iov+16(FP), AX + MOVQ AX, 16(SP) + MOVL count+24(FP), AX + MOVL AX, 24(SP) + MOVQ ofs+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xpwritev(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ypwritev2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) +TEXT ·Ypwritev2(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ iov+16(FP), AX + MOVQ AX, 16(SP) + MOVL count+24(FP), AX + MOVL AX, 24(SP) + MOVQ ofs+32(FP), AX + MOVQ AX, 32(SP) + MOVL flags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xpwritev2(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Yqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) +TEXT ·Yqsort(SB),$48-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cmp+32(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_qsort_3(SB) // Create the closure for calling __ccgo_fp_cmp + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ base+8(FP), AX + MOVQ AX, 8(SP) + MOVQ nel+16(FP), AX + MOVQ AX, 16(SP) + MOVQ width+24(FP), AX + MOVQ AX, 24(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 32(SP) + CALL ·Xqsort(SB) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_qsort_3(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Yqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr) +TEXT ·Yqsort_r(SB),$56-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cmp+32(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_qsort_r_3(SB) // Create the closure for calling __ccgo_fp_cmp + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ base+8(FP), AX + MOVQ AX, 8(SP) + MOVQ nel+16(FP), AX + MOVQ AX, 16(SP) + MOVQ width+24(FP), AX + MOVQ AX, 24(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 32(SP) + MOVQ arg+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xqsort_r(SB) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_qsort_r_3(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ _3+24(FP), AX + MOVQ AX, 24(SP) + MOVQ __ccgo_fp+32(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 32(SP), AX + MOVL AX, _4+40(FP) + RET + +// func Yquick_exit(tls *TLS, code int32) +TEXT ·Yquick_exit(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL code+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xquick_exit(SB) + RET + +// func Yquotactl(tls *TLS, cmd int32, special uintptr, id int32, addr uintptr) (r int32) +TEXT ·Yquotactl(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL cmd+8(FP), AX + MOVL AX, 8(SP) + MOVQ special+16(FP), AX + MOVQ AX, 16(SP) + MOVL id+24(FP), AX + MOVL AX, 24(SP) + MOVQ addr+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xquotactl(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yraise(tls *TLS, sig int32) (r int32) +TEXT ·Yraise(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sig+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xraise(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yrand(tls *TLS) (r int32) +TEXT ·Yrand(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xrand(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yrand_r(tls *TLS, seed uintptr) (r int32) +TEXT ·Yrand_r(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ seed+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xrand_r(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yrandom(tls *TLS) (r int64) +TEXT ·Yrandom(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xrandom(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Yrandom_r(t *TLS, buf, result uintptr) (_2 int32) +TEXT ·Yrandom_r(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + MOVQ result+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xrandom_r(SB) + MOVL 24(SP), AX + MOVL AX, _2+24(FP) + RET + +// func Yread(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) +TEXT ·Yread(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ count+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xread(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yreadahead(tls *TLS, fd int32, pos Toff_t, len1 Tsize_t) (r Tssize_t) +TEXT ·Yreadahead(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ pos+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xreadahead(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yreaddir(tls *TLS, dir uintptr) (r uintptr) +TEXT ·Yreaddir(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dir+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xreaddir(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yreaddir64(tls *TLS, dir uintptr) (r uintptr) +TEXT ·Yreaddir64(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dir+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xreaddir64(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yreaddir_r(tls *TLS, dir uintptr, buf uintptr, result uintptr) (r int32) +TEXT ·Yreaddir_r(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dir+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ result+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xreaddir_r(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yreadlink(tls *TLS, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) +TEXT ·Yreadlink(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ bufsize+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xreadlink(SB) + MOVQ 32(SP), AX + MOVQ AX, r1+32(FP) + RET + +// func Yreadlinkat(tls *TLS, fd int32, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) +TEXT ·Yreadlinkat(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ bufsize+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xreadlinkat(SB) + MOVQ 40(SP), AX + MOVQ AX, r1+40(FP) + RET + +// func Yreadv(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) +TEXT ·Yreadv(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ iov+16(FP), AX + MOVQ AX, 16(SP) + MOVL count+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xreadv(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yrealloc(tls *TLS, p uintptr, n Tsize_t) (r uintptr) +TEXT ·Yrealloc(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ p+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xrealloc(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yreallocarray(tls *TLS, ptr uintptr, m Tsize_t, n Tsize_t) (r uintptr) +TEXT ·Yreallocarray(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ptr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ m+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xreallocarray(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yrealpath(tls *TLS, filename uintptr, resolved uintptr) (r uintptr) +TEXT ·Yrealpath(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ filename+8(FP), AX + MOVQ AX, 8(SP) + MOVQ resolved+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xrealpath(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yreboot(tls *TLS, type1 int32) (r int32) +TEXT ·Yreboot(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL type1+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xreboot(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yrecv(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) +TEXT ·Yrecv(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xrecv(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yrecvfrom(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen uintptr) (r1 Tssize_t) +TEXT ·Yrecvfrom(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + MOVQ addr+40(FP), AX + MOVQ AX, 40(SP) + MOVQ alen+48(FP), AX + MOVQ AX, 48(SP) + CALL ·Xrecvfrom(SB) + MOVQ 56(SP), AX + MOVQ AX, r1+56(FP) + RET + +// func Yrecvmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32, timeout uintptr) (r int32) +TEXT ·Yrecvmmsg(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ msgvec+16(FP), AX + MOVQ AX, 16(SP) + MOVL vlen+24(FP), AX + MOVL AX, 24(SP) + MOVL flags+28(FP), AX + MOVL AX, 28(SP) + MOVQ timeout+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xrecvmmsg(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yrecvmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r2 Tssize_t) +TEXT ·Yrecvmsg(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ msg+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xrecvmsg(SB) + MOVQ 32(SP), AX + MOVQ AX, r2+32(FP) + RET + +// func Yregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) +TEXT ·Yregcomp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ preg+8(FP), AX + MOVQ AX, 8(SP) + MOVQ regex+16(FP), AX + MOVQ AX, 16(SP) + MOVL cflags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xregcomp(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yregerror(tls *TLS, e int32, preg uintptr, buf uintptr, size Tsize_t) (r Tsize_t) +TEXT ·Yregerror(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL e+8(FP), AX + MOVL AX, 8(SP) + MOVQ preg+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buf+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xregerror(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yregexec(tls *TLS, preg uintptr, string1 uintptr, nmatch Tsize_t, pmatch uintptr, eflags int32) (r int32) +TEXT ·Yregexec(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ preg+8(FP), AX + MOVQ AX, 8(SP) + MOVQ string1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ nmatch+24(FP), AX + MOVQ AX, 24(SP) + MOVQ pmatch+32(FP), AX + MOVQ AX, 32(SP) + MOVL eflags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xregexec(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Yregfree(tls *TLS, preg uintptr) +TEXT ·Yregfree(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ preg+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xregfree(SB) + RET + +// func Yremainder(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yremainder(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xremainder(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yremainderf(tls *TLS, x float32, y float32) (r float32) +TEXT ·Yremainderf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xremainderf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yremainderl(tls *TLS, x float64, y float64) (r float64) +TEXT ·Yremainderl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xremainderl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yremap_file_pages(tls *TLS, addr uintptr, size Tsize_t, prot int32, pgoff Tsize_t, flags int32) (r int32) +TEXT ·Yremap_file_pages(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVL prot+24(FP), AX + MOVL AX, 24(SP) + MOVQ pgoff+32(FP), AX + MOVQ AX, 32(SP) + MOVL flags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xremap_file_pages(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Yremove(tls *TLS, path uintptr) (r1 int32) +TEXT ·Yremove(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xremove(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Yremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) +TEXT ·Yremovexattr(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xremovexattr(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yremque(tls *TLS, element uintptr) +TEXT ·Yremque(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ element+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xremque(SB) + RET + +// func Yremquo(tls *TLS, x float64, y float64, quo uintptr) (r float64) +TEXT ·Yremquo(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + MOVQ quo+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xremquo(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yremquof(tls *TLS, x float32, y float32, quo uintptr) (r float32) +TEXT ·Yremquof(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL y+12(FP), AX + MOVL AX, 12(SP) + MOVQ quo+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xremquof(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yremquol(tls *TLS, x float64, y float64, quo uintptr) (r float64) +TEXT ·Yremquol(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ y+16(FP), AX + MOVQ AX, 16(SP) + MOVQ quo+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xremquol(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yrename(tls *TLS, old uintptr, new1 uintptr) (r int32) +TEXT ·Yrename(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ old+8(FP), AX + MOVQ AX, 8(SP) + MOVQ new1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xrename(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yrenameat(tls *TLS, oldfd int32, old uintptr, newfd int32, new1 uintptr) (r int32) +TEXT ·Yrenameat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL oldfd+8(FP), AX + MOVL AX, 8(SP) + MOVQ old+16(FP), AX + MOVQ AX, 16(SP) + MOVL newfd+24(FP), AX + MOVL AX, 24(SP) + MOVQ new1+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xrenameat(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yrenameat2(t *TLS, olddirfd int32, oldpath uintptr, newdirfd int32, newpath uintptr, flags int32) (_6 int32) +TEXT ·Yrenameat2(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVL olddirfd+8(FP), AX + MOVL AX, 8(SP) + MOVQ oldpath+16(FP), AX + MOVQ AX, 16(SP) + MOVL newdirfd+24(FP), AX + MOVL AX, 24(SP) + MOVQ newpath+32(FP), AX + MOVQ AX, 32(SP) + MOVL flags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xrenameat2(SB) + MOVL 48(SP), AX + MOVL AX, _6+48(FP) + RET + +// func Yres_init(tls *TLS) (r int32) +TEXT ·Yres_init(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xres_init(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yres_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, data uintptr, datalen int32, newrr uintptr, buf uintptr, buflen int32) (r int32) +TEXT ·Yres_mkquery(SB),$80-76 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL op+8(FP), AX + MOVL AX, 8(SP) + MOVQ dname+16(FP), AX + MOVQ AX, 16(SP) + MOVL class+24(FP), AX + MOVL AX, 24(SP) + MOVL type1+28(FP), AX + MOVL AX, 28(SP) + MOVQ data+32(FP), AX + MOVQ AX, 32(SP) + MOVL datalen+40(FP), AX + MOVL AX, 40(SP) + MOVQ newrr+48(FP), AX + MOVQ AX, 48(SP) + MOVQ buf+56(FP), AX + MOVQ AX, 56(SP) + MOVL buflen+64(FP), AX + MOVL AX, 64(SP) + CALL ·Xres_mkquery(SB) + MOVL 72(SP), AX + MOVL AX, r+72(FP) + RET + +// func Yres_send(tls *TLS, _msg uintptr, _msglen int32, _answer uintptr, _anslen int32) (r int32) +TEXT ·Yres_send(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _msg+8(FP), AX + MOVQ AX, 8(SP) + MOVL _msglen+16(FP), AX + MOVL AX, 16(SP) + MOVQ _answer+24(FP), AX + MOVQ AX, 24(SP) + MOVL _anslen+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xres_send(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yrewind(tls *TLS, f uintptr) +TEXT ·Yrewind(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xrewind(SB) + RET + +// func Yrewinddir(tls *TLS, dir uintptr) +TEXT ·Yrewinddir(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dir+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xrewinddir(SB) + RET + +// func Yrindex(tls *TLS, s uintptr, c int32) (r uintptr) +TEXT ·Yrindex(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xrindex(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yrint(tls *TLS, x float64) (r float64) +TEXT ·Yrint(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xrint(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yrintf(tls *TLS, x float32) (r float32) +TEXT ·Yrintf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xrintf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yrintl(tls *TLS, x float64) (r float64) +TEXT ·Yrintl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xrintl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yrmdir(tls *TLS, path uintptr) (r int32) +TEXT ·Yrmdir(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xrmdir(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yround(tls *TLS, x3 float64) (r float64) +TEXT ·Yround(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xround(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yroundf(tls *TLS, x3 float32) (r float32) +TEXT ·Yroundf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xroundf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yroundl(tls *TLS, x float64) (r float64) +TEXT ·Yroundl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xroundl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysbrk(tls *TLS, inc Tintptr_t) (r uintptr) +TEXT ·Ysbrk(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ inc+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsbrk(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yscalb(tls *TLS, x float64, fn float64) (r float64) +TEXT ·Yscalb(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fn+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xscalb(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yscalbf(tls *TLS, x float32, fn float32) (r float32) +TEXT ·Yscalbf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL fn+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xscalbf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yscalbln(tls *TLS, x float64, n int64) (r float64) +TEXT ·Yscalbln(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xscalbln(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yscalblnf(tls *TLS, x float32, n int64) (r float32) +TEXT ·Yscalblnf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xscalblnf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yscalblnl(tls *TLS, x float64, n int64) (r float64) +TEXT ·Yscalblnl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xscalblnl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yscalbn(tls *TLS, x float64, n int32) (r float64) +TEXT ·Yscalbn(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xscalbn(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yscalbnf(tls *TLS, x float32, n int32) (r float32) +TEXT ·Yscalbnf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + MOVL n+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xscalbnf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yscalbnl(tls *TLS, x float64, n int32) (r float64) +TEXT ·Yscalbnl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVL n+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xscalbnl(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_cmp uintptr) (r int32) +TEXT ·Yscandir(SB),$56-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $32, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_sel+24(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_scandir_2(SB) // Create the closure for calling __ccgo_fp_sel + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $16, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cmp+32(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_scandir_3(SB) // Create the closure for calling __ccgo_fp_cmp + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ res+16(FP), AX + MOVQ AX, 16(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 24(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $16, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 32(SP) + CALL ·Xscandir(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_scandir_2(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ __ccgo_fp+16(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 16(SP), AX + MOVL AX, _2+24(FP) + RET + +TEXT ·__ccgo_abi0_scandir_3(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Yscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) +TEXT ·Yscanf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xscanf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysched_yield(tls *TLS) (_1 int32) +TEXT ·Ysched_yield(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsched_yield(SB) + MOVL 8(SP), AX + MOVL AX, _1+8(FP) + RET + +// func Ysecure_getenv(tls *TLS, name uintptr) (r uintptr) +TEXT ·Ysecure_getenv(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsecure_getenv(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yseed48(tls *TLS, s uintptr) (r uintptr) +TEXT ·Yseed48(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xseed48(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yseekdir(tls *TLS, dir uintptr, off int64) +TEXT ·Yseekdir(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dir+8(FP), AX + MOVQ AX, 8(SP) + MOVQ off+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xseekdir(SB) + RET + +// func Yselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, tv uintptr) (r int32) +TEXT ·Yselect(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + MOVQ rfds+16(FP), AX + MOVQ AX, 16(SP) + MOVQ wfds+24(FP), AX + MOVQ AX, 24(SP) + MOVQ efds+32(FP), AX + MOVQ AX, 32(SP) + MOVQ tv+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xselect(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Ysemctl(tls *TLS, id int32, num int32, cmd int32, va uintptr) (r1 int32) +TEXT ·Ysemctl(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL id+8(FP), AX + MOVL AX, 8(SP) + MOVL num+12(FP), AX + MOVL AX, 12(SP) + MOVL cmd+16(FP), AX + MOVL AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsemctl(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ysemget(tls *TLS, key Tkey_t, n int32, fl int32) (r int32) +TEXT ·Ysemget(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL key+8(FP), AX + MOVL AX, 8(SP) + MOVL n+12(FP), AX + MOVL AX, 12(SP) + MOVL fl+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xsemget(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysemop(tls *TLS, id int32, buf uintptr, n Tsize_t) (r int32) +TEXT ·Ysemop(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL id+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsemop(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ysemtimedop(tls *TLS, id int32, buf uintptr, n Tsize_t, ts uintptr) (r int32) +TEXT ·Ysemtimedop(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL id+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ ts+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xsemtimedop(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ysend(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) +TEXT ·Ysend(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xsend(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ysendfile(tls *TLS, out_fd int32, in_fd int32, ofs uintptr, count Tsize_t) (r Tssize_t) +TEXT ·Ysendfile(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL out_fd+8(FP), AX + MOVL AX, 8(SP) + MOVL in_fd+12(FP), AX + MOVL AX, 12(SP) + MOVQ ofs+16(FP), AX + MOVQ AX, 16(SP) + MOVQ count+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsendfile(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ysendmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32) (r1 int32) +TEXT ·Ysendmmsg(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ msgvec+16(FP), AX + MOVQ AX, 16(SP) + MOVL vlen+24(FP), AX + MOVL AX, 24(SP) + MOVL flags+28(FP), AX + MOVL AX, 28(SP) + CALL ·Xsendmmsg(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ysendmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r1 Tssize_t) +TEXT ·Ysendmsg(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ msg+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xsendmsg(SB) + MOVQ 32(SP), AX + MOVQ AX, r1+32(FP) + RET + +// func Ysendto(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen Tsocklen_t) (r1 Tssize_t) +TEXT ·Ysendto(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + MOVQ addr+40(FP), AX + MOVQ AX, 40(SP) + MOVL alen+48(FP), AX + MOVL AX, 48(SP) + CALL ·Xsendto(SB) + MOVQ 56(SP), AX + MOVQ AX, r1+56(FP) + RET + +// func Ysetbuf(tls *TLS, f uintptr, buf uintptr) +TEXT ·Ysetbuf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsetbuf(SB) + RET + +// func Ysetbuffer(tls *TLS, f uintptr, buf uintptr, size Tsize_t) +TEXT ·Ysetbuffer(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ size+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsetbuffer(SB) + RET + +// func Ysetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) +TEXT ·Ysetdomainname(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsetdomainname(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) (r int32) +TEXT ·Ysetenv(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ var1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ value+16(FP), AX + MOVQ AX, 16(SP) + MOVL overwrite+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xsetenv(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ysetfsgid(tls *TLS, gid Tgid_t) (r int32) +TEXT ·Ysetfsgid(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL gid+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsetfsgid(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysetfsuid(tls *TLS, uid Tuid_t) (r int32) +TEXT ·Ysetfsuid(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL uid+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsetfsuid(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysetgid(tls *TLS, gid Tgid_t) (r int32) +TEXT ·Ysetgid(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL gid+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsetgid(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysetgrent(tls *TLS) +TEXT ·Ysetgrent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsetgrent(SB) + RET + +// func Ysethostent(tls *TLS, x int32) +TEXT ·Ysethostent(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsethostent(SB) + RET + +// func Ysethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) +TEXT ·Ysethostname(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsethostname(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysetitimer(tls *TLS, which int32, new1 uintptr, old uintptr) (r1 int32) +TEXT ·Ysetitimer(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL which+8(FP), AX + MOVL AX, 8(SP) + MOVQ new1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ old+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsetitimer(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ysetjmp(t *TLS, env uintptr) (_2 int32) +TEXT ·Ysetjmp(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ env+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsetjmp(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ysetkey(tls *TLS, key uintptr) +TEXT ·Ysetkey(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsetkey(SB) + RET + +// func Ysetlinebuf(tls *TLS, f uintptr) +TEXT ·Ysetlinebuf(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsetlinebuf(SB) + RET + +// func Ysetlocale(tls *TLS, cat int32, name uintptr) (r uintptr) +TEXT ·Ysetlocale(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL cat+8(FP), AX + MOVL AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsetlocale(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ysetlogmask(tls *TLS, maskpri int32) (r int32) +TEXT ·Ysetlogmask(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL maskpri+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsetlogmask(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysetmntent(tls *TLS, name uintptr, mode uintptr) (r uintptr) +TEXT ·Ysetmntent(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ mode+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsetmntent(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ysetnetent(tls *TLS, x int32) +TEXT ·Ysetnetent(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsetnetent(SB) + RET + +// func Ysetns(tls *TLS, fd int32, nstype int32) (r int32) +TEXT ·Ysetns(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL nstype+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xsetns(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysetpgid(tls *TLS, pid Tpid_t, pgid Tpid_t) (r int32) +TEXT ·Ysetpgid(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVL pgid+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xsetpgid(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysetpgrp(tls *TLS) (r Tpid_t) +TEXT ·Ysetpgrp(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsetpgrp(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ysetpriority(tls *TLS, which int32, who Tid_t, prio int32) (r int32) +TEXT ·Ysetpriority(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL which+8(FP), AX + MOVL AX, 8(SP) + MOVL who+12(FP), AX + MOVL AX, 12(SP) + MOVL prio+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xsetpriority(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysetprotoent(tls *TLS, stayopen int32) +TEXT ·Ysetprotoent(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL stayopen+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsetprotoent(SB) + RET + +// func Ysetpwent(tls *TLS) +TEXT ·Ysetpwent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsetpwent(SB) + RET + +// func Ysetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) +TEXT ·Ysetrlimit(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL resource+8(FP), AX + MOVL AX, 8(SP) + MOVQ rlim+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsetrlimit(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysetrlimit64(tls *TLS, resource int32, rlim uintptr) (r int32) +TEXT ·Ysetrlimit64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL resource+8(FP), AX + MOVL AX, 8(SP) + MOVQ rlim+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsetrlimit64(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysetservent(tls *TLS, stayopen int32) +TEXT ·Ysetservent(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL stayopen+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsetservent(SB) + RET + +// func Ysetsid(tls *TLS) (r Tpid_t) +TEXT ·Ysetsid(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsetsid(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Ysetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen Tsocklen_t) (r2 int32) +TEXT ·Ysetsockopt(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL level+12(FP), AX + MOVL AX, 12(SP) + MOVL optname+16(FP), AX + MOVL AX, 16(SP) + MOVQ optval+24(FP), AX + MOVQ AX, 24(SP) + MOVL optlen+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xsetsockopt(SB) + MOVL 40(SP), AX + MOVL AX, r2+40(FP) + RET + +// func Ysetspent(tls *TLS) +TEXT ·Ysetspent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsetspent(SB) + RET + +// func Ysetstate(tls *TLS, state uintptr) (r uintptr) +TEXT ·Ysetstate(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ state+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsetstate(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) +TEXT ·Ysettimeofday(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tv+8(FP), AX + MOVQ AX, 8(SP) + MOVQ tz+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsettimeofday(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysetuid(tls *TLS, uid Tuid_t) (r int32) +TEXT ·Ysetuid(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL uid+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsetuid(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysetusershell(tls *TLS) +TEXT ·Ysetusershell(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsetusershell(SB) + RET + +// func Ysetutent(tls *TLS) +TEXT ·Ysetutent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsetutent(SB) + RET + +// func Ysetutxent(tls *TLS) +TEXT ·Ysetutxent(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsetutxent(SB) + RET + +// func Ysetvbuf(tls *TLS, f uintptr, buf uintptr, type1 int32, size Tsize_t) (r int32) +TEXT ·Ysetvbuf(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVL type1+24(FP), AX + MOVL AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xsetvbuf(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ysetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) +TEXT ·Ysetxattr(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ value+24(FP), AX + MOVQ AX, 24(SP) + MOVQ size+32(FP), AX + MOVQ AX, 32(SP) + MOVL flags+40(FP), AX + MOVL AX, 40(SP) + CALL ·Xsetxattr(SB) + MOVL 48(SP), AX + MOVL AX, r+48(FP) + RET + +// func Yshm_open(tls *TLS, name uintptr, flag int32, mode Tmode_t) (r int32) +TEXT ·Yshm_open(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVL flag+16(FP), AX + MOVL AX, 16(SP) + MOVL mode+20(FP), AX + MOVL AX, 20(SP) + CALL ·Xshm_open(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yshm_unlink(tls *TLS, name uintptr) (r int32) +TEXT ·Yshm_unlink(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xshm_unlink(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yshmat(tls *TLS, id int32, addr uintptr, flag int32) (r uintptr) +TEXT ·Yshmat(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL id+8(FP), AX + MOVL AX, 8(SP) + MOVQ addr+16(FP), AX + MOVQ AX, 16(SP) + MOVL flag+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xshmat(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Yshmctl(tls *TLS, id int32, cmd int32, buf uintptr) (r1 int32) +TEXT ·Yshmctl(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL id+8(FP), AX + MOVL AX, 8(SP) + MOVL cmd+12(FP), AX + MOVL AX, 12(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xshmctl(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Yshmdt(tls *TLS, addr uintptr) (r int32) +TEXT ·Yshmdt(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ addr+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xshmdt(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yshmget(tls *TLS, key Tkey_t, size Tsize_t, flag int32) (r int32) +TEXT ·Yshmget(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL key+8(FP), AX + MOVL AX, 8(SP) + MOVQ size+16(FP), AX + MOVQ AX, 16(SP) + MOVL flag+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xshmget(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yshutdown(tls *TLS, fd int32, how int32) (r1 int32) +TEXT ·Yshutdown(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL how+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xshutdown(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Ysigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r int32) +TEXT ·Ysigaction(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL sig+8(FP), AX + MOVL AX, 8(SP) + MOVQ sa+16(FP), AX + MOVQ AX, 16(SP) + MOVQ old+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsigaction(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ysigaddset(tls *TLS, set uintptr, sig int32) (r int32) +TEXT ·Ysigaddset(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + MOVL sig+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xsigaddset(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) +TEXT ·Ysigaltstack(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ss+8(FP), AX + MOVQ AX, 8(SP) + MOVQ old+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsigaltstack(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysigandset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) +TEXT ·Ysigandset(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ left+16(FP), AX + MOVQ AX, 16(SP) + MOVQ right+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsigandset(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ysigdelset(tls *TLS, set uintptr, sig int32) (r int32) +TEXT ·Ysigdelset(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + MOVL sig+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xsigdelset(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysigemptyset(tls *TLS, set uintptr) (r int32) +TEXT ·Ysigemptyset(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsigemptyset(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysigfillset(tls *TLS, set uintptr) (r int32) +TEXT ·Ysigfillset(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsigfillset(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysigisemptyset(tls *TLS, set uintptr) (r int32) +TEXT ·Ysigisemptyset(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsigisemptyset(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysigismember(tls *TLS, set uintptr, sig int32) (r int32) +TEXT ·Ysigismember(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + MOVL sig+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xsigismember(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysignal(tls *TLS, signum int32, handler uintptr) (r uintptr) +TEXT ·Ysignal(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL signum+8(FP), AX + MOVL AX, 8(SP) + MOVQ handler+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsignal(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ysignalfd(tls *TLS, fd int32, sigs uintptr, flags int32) (r int32) +TEXT ·Ysignalfd(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ sigs+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xsignalfd(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ysignificand(tls *TLS, x float64) (r float64) +TEXT ·Ysignificand(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsignificand(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysignificandf(tls *TLS, x float32) (r float32) +TEXT ·Ysignificandf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsignificandf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysigorset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) +TEXT ·Ysigorset(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ left+16(FP), AX + MOVQ AX, 16(SP) + MOVQ right+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsigorset(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ysigpending(tls *TLS, set uintptr) (r int32) +TEXT ·Ysigpending(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ set+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsigpending(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysigprocmask(tls *TLS, how int32, set uintptr, old uintptr) (r1 int32) +TEXT ·Ysigprocmask(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL how+8(FP), AX + MOVL AX, 8(SP) + MOVQ set+16(FP), AX + MOVQ AX, 16(SP) + MOVQ old+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsigprocmask(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ysigqueue(tls *TLS, pid Tpid_t, sig int32, value Tsigval) (r1 int32) +TEXT ·Ysigqueue(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVL sig+12(FP), AX + MOVL AX, 12(SP) + MOVL value_Fsival_int+16(FP), AX + MOVL AX, 16(SP) + MOVB value_F__ccgo_pad2_0+20(FP), AX + MOVB AX, 20(SP) + MOVB value_F__ccgo_pad2_1+21(FP), AX + MOVB AX, 21(SP) + MOVB value_F__ccgo_pad2_2+22(FP), AX + MOVB AX, 22(SP) + MOVB value_F__ccgo_pad2_3+23(FP), AX + MOVB AX, 23(SP) + CALL ·Xsigqueue(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ysigsuspend(tls *TLS, mask uintptr) (r int32) +TEXT ·Ysigsuspend(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ mask+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsigsuspend(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysigtimedwait(tls *TLS, mask uintptr, si uintptr, timeout uintptr) (r int32) +TEXT ·Ysigtimedwait(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ mask+8(FP), AX + MOVQ AX, 8(SP) + MOVQ si+16(FP), AX + MOVQ AX, 16(SP) + MOVQ timeout+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsigtimedwait(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ysigwait(tls *TLS, mask uintptr, sig uintptr) (r int32) +TEXT ·Ysigwait(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ mask+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sig+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsigwait(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysigwaitinfo(tls *TLS, mask uintptr, si uintptr) (r int32) +TEXT ·Ysigwaitinfo(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ mask+8(FP), AX + MOVQ AX, 8(SP) + MOVQ si+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsigwaitinfo(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysin(tls *TLS, x3 float64) (r float64) +TEXT ·Ysin(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsin(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysincos(tls *TLS, x3 float64, sin uintptr, cos uintptr) +TEXT ·Ysincos(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sin+16(FP), AX + MOVQ AX, 16(SP) + MOVQ cos+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsincos(SB) + RET + +// func Ysincosf(tls *TLS, x3 float32, sin uintptr, cos uintptr) +TEXT ·Ysincosf(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + MOVQ sin+16(FP), AX + MOVQ AX, 16(SP) + MOVQ cos+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsincosf(SB) + RET + +// func Ysincosl(tls *TLS, x float64, sin uintptr, cos uintptr) +TEXT ·Ysincosl(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sin+16(FP), AX + MOVQ AX, 16(SP) + MOVQ cos+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsincosl(SB) + RET + +// func Ysinf(tls *TLS, x3 float32) (r float32) +TEXT ·Ysinf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsinf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysinh(tls *TLS, x float64) (r float64) +TEXT ·Ysinh(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsinh(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysinhf(tls *TLS, x float32) (r float32) +TEXT ·Ysinhf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsinhf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysinhl(tls *TLS, x float64) (r float64) +TEXT ·Ysinhl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsinhl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysinl(tls *TLS, x float64) (r float64) +TEXT ·Ysinl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsinl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysleep(tls *TLS, seconds uint32) (r uint32) +TEXT ·Ysleep(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL seconds+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsleep(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) +TEXT ·Ysnprintf(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ fmt+24(FP), AX + MOVQ AX, 24(SP) + MOVQ va+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xsnprintf(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ysockatmark(tls *TLS, s int32) (r int32) +TEXT ·Ysockatmark(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL s+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsockatmark(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysocket(tls *TLS, domain int32, type1 int32, protocol int32) (r1 int32) +TEXT ·Ysocket(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL domain+8(FP), AX + MOVL AX, 8(SP) + MOVL type1+12(FP), AX + MOVL AX, 12(SP) + MOVL protocol+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xsocket(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ysocketpair(tls *TLS, domain int32, type1 int32, protocol int32, fd uintptr) (r2 int32) +TEXT ·Ysocketpair(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL domain+8(FP), AX + MOVL AX, 8(SP) + MOVL type1+12(FP), AX + MOVL AX, 12(SP) + MOVL protocol+16(FP), AX + MOVL AX, 16(SP) + MOVQ fd+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsocketpair(SB) + MOVL 32(SP), AX + MOVL AX, r2+32(FP) + RET + +// func Ysplice(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) +TEXT ·Ysplice(SB),$64-64 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd_in+8(FP), AX + MOVL AX, 8(SP) + MOVQ off_in+16(FP), AX + MOVQ AX, 16(SP) + MOVL fd_out+24(FP), AX + MOVL AX, 24(SP) + MOVQ off_out+32(FP), AX + MOVQ AX, 32(SP) + MOVQ len1+40(FP), AX + MOVQ AX, 40(SP) + MOVL flags+48(FP), AX + MOVL AX, 48(SP) + CALL ·Xsplice(SB) + MOVQ 56(SP), AX + MOVQ AX, r+56(FP) + RET + +// func Ysprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Ysprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ysqrt(tls *TLS, x1 float64) (r1 float64) +TEXT ·Ysqrt(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsqrt(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Ysqrtf(tls *TLS, x1 float32) (r1 float32) +TEXT ·Ysqrtf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x1+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsqrtf(SB) + MOVL 16(SP), AX + MOVL AX, r1+16(FP) + RET + +// func Ysqrtl(tls *TLS, x float64) (r float64) +TEXT ·Ysqrtl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsqrtl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysrand(tls *TLS, s uint32) +TEXT ·Ysrand(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL s+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsrand(SB) + RET + +// func Ysrand48(tls *TLS, seed int64) +TEXT ·Ysrand48(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ seed+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsrand48(SB) + RET + +// func Ysrandom(tls *TLS, seed uint32) +TEXT ·Ysrandom(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL seed+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsrandom(SB) + RET + +// func Ysscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Ysscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ystat(tls *TLS, path uintptr, buf uintptr) (r int32) +TEXT ·Ystat(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstat(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ystat64(tls *TLS, path uintptr, buf uintptr) (r int32) +TEXT ·Ystat64(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstat64(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ystatvfs(tls *TLS, path uintptr, buf uintptr) (r int32) +TEXT ·Ystatvfs(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstatvfs(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ystatx(tls *TLS, dirfd int32, path uintptr, flags int32, mask uint32, stx uintptr) (r int32) +TEXT ·Ystatx(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL dirfd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + MOVL mask+28(FP), AX + MOVL AX, 28(SP) + MOVQ stx+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xstatx(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ystime(tls *TLS, t uintptr) (r int32) +TEXT ·Ystime(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xstime(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ystpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) +TEXT ·Ystpcpy(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstpcpy(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ystpncpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstpncpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrcasecmp(tls *TLS, _l uintptr, _r uintptr) (r1 int32) +TEXT ·Ystrcasecmp(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _r+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrcasecmp(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ystrcasecmp_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) +TEXT ·Ystrcasecmp_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ loc+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrcasecmp_l(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ystrcasestr(tls *TLS, h uintptr, n uintptr) (r uintptr) +TEXT ·Ystrcasestr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ h+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrcasestr(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrcat(tls *TLS, dest uintptr, src uintptr) (r uintptr) +TEXT ·Ystrcat(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrcat(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrchr(tls *TLS, s uintptr, c int32) (r1 uintptr) +TEXT ·Ystrchr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xstrchr(SB) + MOVQ 24(SP), AX + MOVQ AX, r1+24(FP) + RET + +// func Ystrchrnul(tls *TLS, s uintptr, c int32) (r uintptr) +TEXT ·Ystrchrnul(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xstrchrnul(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrcmp(tls *TLS, l uintptr, r uintptr) (r1 int32) +TEXT ·Ystrcmp(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrcmp(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ystrcoll(tls *TLS, l uintptr, r uintptr) (r1 int32) +TEXT ·Ystrcoll(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrcoll(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ystrcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) +TEXT ·Ystrcoll_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ loc+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrcoll_l(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ystrcpy(tls *TLS, dest uintptr, src uintptr) (r uintptr) +TEXT ·Ystrcpy(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrcpy(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrcspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) +TEXT ·Ystrcspn(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ c+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrcspn(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrdup(tls *TLS, s uintptr) (r uintptr) +TEXT ·Ystrdup(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xstrdup(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ystrerror(tls *TLS, e int32) (r uintptr) +TEXT ·Ystrerror(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL e+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xstrerror(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ystrerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) +TEXT ·Ystrerror_l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL e+8(FP), AX + MOVL AX, 8(SP) + MOVQ loc+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrerror_l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrerror_r(tls *TLS, err int32, buf uintptr, buflen Tsize_t) (r int32) +TEXT ·Ystrerror_r(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL err+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ buflen+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrerror_r(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ystrfmon(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r Tssize_t) +TEXT ·Ystrfmon(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ fmt+24(FP), AX + MOVQ AX, 24(SP) + MOVQ va+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xstrfmon(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ystrfmon_l(tls *TLS, s uintptr, n Tsize_t, loc Tlocale_t, fmt uintptr, va uintptr) (r Tssize_t) +TEXT ·Ystrfmon_l(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ loc+24(FP), AX + MOVQ AX, 24(SP) + MOVQ fmt+32(FP), AX + MOVQ AX, 32(SP) + MOVQ va+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xstrfmon_l(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ystrftime(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) +TEXT ·Ystrftime(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + MOVQ tm+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xstrftime(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ystrftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) +TEXT ·Ystrftime_l(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + MOVQ tm+32(FP), AX + MOVQ AX, 32(SP) + MOVQ loc+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xstrftime_l(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ystrlcat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) +TEXT ·Ystrlcat(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrlcat(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrlcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) +TEXT ·Ystrlcpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrlcpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrlen(tls *TLS, s uintptr) (r Tsize_t) +TEXT ·Ystrlen(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xstrlen(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ystrncasecmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) +TEXT ·Ystrncasecmp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrncasecmp(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ystrncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, loc Tlocale_t) (r1 int32) +TEXT ·Ystrncasecmp_l(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ loc+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xstrncasecmp_l(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Ystrncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ystrncat(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrncat(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrncmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) +TEXT ·Ystrncmp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrncmp(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ystrncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ystrncpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrncpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrndup(tls *TLS, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ystrndup(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrndup(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) +TEXT ·Ystrnlen(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrnlen(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrpbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) +TEXT ·Ystrpbrk(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrpbrk(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) +TEXT ·Ystrptime(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + MOVQ tm+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrptime(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrrchr(tls *TLS, s uintptr, c int32) (r uintptr) +TEXT ·Ystrrchr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xstrrchr(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrsep(tls *TLS, str uintptr, sep uintptr) (r uintptr) +TEXT ·Ystrsep(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ str+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sep+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrsep(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrsignal(tls *TLS, signum int32) (r uintptr) +TEXT ·Ystrsignal(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL signum+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xstrsignal(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ystrspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) +TEXT ·Ystrspn(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ c+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrspn(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrstr(tls *TLS, h uintptr, n uintptr) (r uintptr) +TEXT ·Ystrstr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ h+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrstr(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrtod(tls *TLS, s uintptr, p uintptr) (r float64) +TEXT ·Ystrtod(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrtod(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrtod_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) +TEXT ·Ystrtod_l(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrtod_l(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrtof(tls *TLS, s uintptr, p uintptr) (r float32) +TEXT ·Ystrtof(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrtof(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ystrtof_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float32) +TEXT ·Ystrtof_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrtof_l(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ystrtoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) +TEXT ·Ystrtoimax(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xstrtoimax(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrtok(tls *TLS, s uintptr, sep uintptr) (r uintptr) +TEXT ·Ystrtok(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sep+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrtok(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrtok_r(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) +TEXT ·Ystrtok_r(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sep+16(FP), AX + MOVQ AX, 16(SP) + MOVQ p+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrtok_r(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrtol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) +TEXT ·Ystrtol(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xstrtol(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrtold(tls *TLS, s uintptr, p uintptr) (r float64) +TEXT ·Ystrtold(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrtold(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ystrtold_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) +TEXT ·Ystrtold_l(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrtold_l(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrtoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) +TEXT ·Ystrtoll(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xstrtoll(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrtoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) +TEXT ·Ystrtoul(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xstrtoul(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrtoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) +TEXT ·Ystrtoull(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xstrtoull(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrtoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) +TEXT ·Ystrtoumax(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xstrtoumax(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrverscmp(tls *TLS, l0 uintptr, r0 uintptr) (r1 int32) +TEXT ·Ystrverscmp(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l0+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r0+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xstrverscmp(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ystrxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) +TEXT ·Ystrxfrm(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xstrxfrm(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ystrxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) +TEXT ·Ystrxfrm_l(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ loc+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xstrxfrm_l(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yswab(tls *TLS, _src uintptr, _dest uintptr, n Tssize_t) +TEXT ·Yswab(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _src+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _dest+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xswab(SB) + RET + +// func Yswapoff(tls *TLS, path uintptr) (r int32) +TEXT ·Yswapoff(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xswapoff(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yswapon(tls *TLS, path uintptr, flags int32) (r int32) +TEXT ·Yswapon(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xswapon(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) +TEXT ·Yswprintf(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ fmt+24(FP), AX + MOVQ AX, 24(SP) + MOVQ va+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xswprintf(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yswscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) +TEXT ·Yswscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xswscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ysymlink(tls *TLS, existing uintptr, new1 uintptr) (r int32) +TEXT ·Ysymlink(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ existing+8(FP), AX + MOVQ AX, 8(SP) + MOVQ new1+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsymlink(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ysymlinkat(tls *TLS, existing uintptr, fd int32, new1 uintptr) (r int32) +TEXT ·Ysymlinkat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ existing+8(FP), AX + MOVQ AX, 8(SP) + MOVL fd+16(FP), AX + MOVL AX, 16(SP) + MOVQ new1+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsymlinkat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ysync(tls *TLS) +TEXT ·Ysync(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xsync(SB) + RET + +// func Ysync_file_range(tls *TLS, fd int32, pos Toff_t, len1 Toff_t, flags uint32) (r int32) +TEXT ·Ysync_file_range(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ pos+16(FP), AX + MOVQ AX, 16(SP) + MOVQ len1+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xsync_file_range(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ysyncfs(tls *TLS, fd int32) (r int32) +TEXT ·Ysyncfs(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsyncfs(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysyscall(tls *TLS, n int64, va uintptr) (r int64) +TEXT ·Ysyscall(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ n+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xsyscall(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ysysconf(tls *TLS, name int32) (r int64) +TEXT ·Ysysconf(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL name+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xsysconf(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ysysctlbyname(t *TLS, name, oldp, oldlenp, newp uintptr, newlen Tsize_t) (_3 int32) +TEXT ·Ysysctlbyname(SB),$56-52 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + MOVQ oldp+16(FP), AX + MOVQ AX, 16(SP) + MOVQ oldlenp+24(FP), AX + MOVQ AX, 24(SP) + MOVQ newp+32(FP), AX + MOVQ AX, 32(SP) + MOVQ newlen+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xsysctlbyname(SB) + MOVL 48(SP), AX + MOVL AX, _3+48(FP) + RET + +// func Ysysinfo(tls *TLS, info uintptr) (r int32) +TEXT ·Ysysinfo(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ info+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsysinfo(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ysyslog(tls *TLS, priority int32, message uintptr, va uintptr) +TEXT ·Ysyslog(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL priority+8(FP), AX + MOVL AX, 8(SP) + MOVQ message+16(FP), AX + MOVQ AX, 16(SP) + MOVQ va+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xsyslog(SB) + RET + +// func Ysystem(t *TLS, command uintptr) (_2 int32) +TEXT ·Ysystem(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ command+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xsystem(SB) + MOVL 16(SP), AX + MOVL AX, _2+16(FP) + RET + +// func Ytan(tls *TLS, x3 float64) (r float64) +TEXT ·Ytan(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtan(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytanf(tls *TLS, x3 float32) (r float32) +TEXT ·Ytanf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtanf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytanh(tls *TLS, x3 float64) (r float64) +TEXT ·Ytanh(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtanh(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytanhf(tls *TLS, x3 float32) (r float32) +TEXT ·Ytanhf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtanhf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytanhl(tls *TLS, x float64) (r float64) +TEXT ·Ytanhl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtanhl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytanl(tls *TLS, x float64) (r float64) +TEXT ·Ytanl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtanl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytcdrain(tls *TLS, fd int32) (r int32) +TEXT ·Ytcdrain(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtcdrain(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytcflow(tls *TLS, fd int32, action int32) (r int32) +TEXT ·Ytcflow(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL action+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xtcflow(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytcflush(tls *TLS, fd int32, queue int32) (r int32) +TEXT ·Ytcflush(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL queue+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xtcflush(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytcgetattr(tls *TLS, fd int32, tio uintptr) (r int32) +TEXT ·Ytcgetattr(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ tio+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtcgetattr(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytcgetpgrp(tls *TLS, fd int32) (r Tpid_t) +TEXT ·Ytcgetpgrp(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtcgetpgrp(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytcgetsid(tls *TLS, fd int32) (r Tpid_t) +TEXT ·Ytcgetsid(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtcgetsid(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytcgetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) +TEXT ·Ytcgetwinsize(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ wsz+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtcgetwinsize(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytcsendbreak(tls *TLS, fd int32, dur int32) (r int32) +TEXT ·Ytcsendbreak(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL dur+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xtcsendbreak(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytcsetattr(tls *TLS, fd int32, act int32, tio uintptr) (r int32) +TEXT ·Ytcsetattr(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL act+12(FP), AX + MOVL AX, 12(SP) + MOVQ tio+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtcsetattr(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytcsetpgrp(tls *TLS, fd int32, pgrp Tpid_t) (r int32) +TEXT ·Ytcsetpgrp(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL pgrp+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xtcsetpgrp(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytcsetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) +TEXT ·Ytcsetwinsize(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ wsz+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtcsetwinsize(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) +TEXT ·Ytdelete(SB),$48-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cmp+24(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_tdelete_2(SB) // Create the closure for calling __ccgo_fp_cmp + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ rootp+16(FP), AX + MOVQ AX, 16(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 24(SP) + CALL ·Xtdelete(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_tdelete_2(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Ytdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) +TEXT ·Ytdestroy(SB),$32-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_freekey+16(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_tdestroy_1(SB) // Create the closure for calling __ccgo_fp_freekey + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ root+8(FP), AX + MOVQ AX, 8(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 16(SP) + CALL ·Xtdestroy(SB) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_tdestroy_1(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ __ccgo_fp+16(FP), AX + CALL *AX // Call the ABI0 code ptr + RET + +// func Ytee(tls *TLS, src int32, dest int32, len1 Tsize_t, flags uint32) (r Tssize_t) +TEXT ·Ytee(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL src+8(FP), AX + MOVL AX, 8(SP) + MOVL dest+12(FP), AX + MOVL AX, 12(SP) + MOVQ len1+16(FP), AX + MOVQ AX, 16(SP) + MOVL flags+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xtee(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ytelldir(tls *TLS, dir uintptr) (r int64) +TEXT ·Ytelldir(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dir+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtelldir(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytempnam(tls *TLS, dir uintptr, pfx uintptr) (r1 uintptr) +TEXT ·Ytempnam(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dir+8(FP), AX + MOVQ AX, 8(SP) + MOVQ pfx+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtempnam(SB) + MOVQ 24(SP), AX + MOVQ AX, r1+24(FP) + RET + +// func Ytextdomain(tls *TLS, domainname uintptr) (r uintptr) +TEXT ·Ytextdomain(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ domainname+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtextdomain(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) +TEXT ·Ytfind(SB),$48-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cmp+24(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_tfind_2(SB) // Create the closure for calling __ccgo_fp_cmp + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ rootp+16(FP), AX + MOVQ AX, 16(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 24(SP) + CALL ·Xtfind(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_tfind_2(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Ytgamma(tls *TLS, x3 float64) (r1 float64) +TEXT ·Ytgamma(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtgamma(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Ytgammaf(tls *TLS, x float32) (r float32) +TEXT ·Ytgammaf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtgammaf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytgammal(tls *TLS, x float64) (r float64) +TEXT ·Ytgammal(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtgammal(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytime(tls *TLS, t uintptr) (r Ttime_t) +TEXT ·Ytime(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtime(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytimegm(tls *TLS, tm uintptr) (r Ttime_t) +TEXT ·Ytimegm(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tm+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtimegm(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytimer_delete(tls *TLS, t Ttimer_t) (r int32) +TEXT ·Ytimer_delete(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtimer_delete(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytimer_getoverrun(tls *TLS, t Ttimer_t) (r int32) +TEXT ·Ytimer_getoverrun(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtimer_getoverrun(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytimer_gettime(tls *TLS, t Ttimer_t, val uintptr) (r int32) +TEXT ·Ytimer_gettime(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVQ val+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtimer_gettime(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytimer_settime(tls *TLS, t Ttimer_t, flags int32, val uintptr, old uintptr) (r int32) +TEXT ·Ytimer_settime(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ t+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + MOVQ val+24(FP), AX + MOVQ AX, 24(SP) + MOVQ old+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xtimer_settime(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Ytimerfd_create(tls *TLS, clockid int32, flags int32) (r int32) +TEXT ·Ytimerfd_create(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL clockid+8(FP), AX + MOVL AX, 8(SP) + MOVL flags+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xtimerfd_create(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytimerfd_gettime(tls *TLS, fd int32, cur uintptr) (r int32) +TEXT ·Ytimerfd_gettime(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ cur+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtimerfd_gettime(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytimerfd_settime(tls *TLS, fd int32, flags int32, new1 uintptr, old uintptr) (r int32) +TEXT ·Ytimerfd_settime(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVL flags+12(FP), AX + MOVL AX, 12(SP) + MOVQ new1+16(FP), AX + MOVQ AX, 16(SP) + MOVQ old+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xtimerfd_settime(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ytimes(tls *TLS, tms uintptr) (r Tclock_t) +TEXT ·Ytimes(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ tms+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtimes(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytimespec_get(tls *TLS, ts uintptr, base int32) (r int32) +TEXT ·Ytimespec_get(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ ts+8(FP), AX + MOVQ AX, 8(SP) + MOVL base+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xtimespec_get(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytmpfile(tls *TLS) (r uintptr) +TEXT ·Ytmpfile(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xtmpfile(SB) + MOVQ 8(SP), AX + MOVQ AX, r+8(FP) + RET + +// func Ytmpnam(tls *TLS, buf uintptr) (r1 uintptr) +TEXT ·Ytmpnam(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ buf+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtmpnam(SB) + MOVQ 16(SP), AX + MOVQ AX, r1+16(FP) + RET + +// func Ytoascii(tls *TLS, c int32) (r int32) +TEXT ·Ytoascii(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtoascii(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytolower(tls *TLS, c int32) (r int32) +TEXT ·Ytolower(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtolower(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytolower_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Ytolower_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtolower_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytoupper(tls *TLS, c int32) (r int32) +TEXT ·Ytoupper(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtoupper(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytoupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) +TEXT ·Ytoupper_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtoupper_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytowctrans(tls *TLS, wc Twint_t, trans Twctrans_t) (r Twint_t) +TEXT ·Ytowctrans(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + MOVQ trans+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtowctrans(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytowctrans_l(tls *TLS, c Twint_t, t Twctrans_t, l Tlocale_t) (r Twint_t) +TEXT ·Ytowctrans_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ t+16(FP), AX + MOVQ AX, 16(SP) + MOVQ l+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xtowctrans_l(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ytowlower(tls *TLS, wc Twint_t) (r Twint_t) +TEXT ·Ytowlower(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtowlower(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytowlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) +TEXT ·Ytowlower_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtowlower_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytowupper(tls *TLS, wc Twint_t) (r Twint_t) +TEXT ·Ytowupper(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtowupper(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytowupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) +TEXT ·Ytowupper_l(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtowupper_l(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytrunc(tls *TLS, x3 float64) (r float64) +TEXT ·Ytrunc(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x3+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtrunc(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytruncate(tls *TLS, path uintptr, length Toff_t) (r int32) +TEXT ·Ytruncate(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ length+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xtruncate(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ytruncf(tls *TLS, x3 float32) (r float32) +TEXT ·Ytruncf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x3+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xtruncf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ytruncl(tls *TLS, x float64) (r float64) +TEXT ·Ytruncl(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xtruncl(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ytsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) +TEXT ·Ytsearch(SB),$48-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_cmp+24(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_tsearch_2(SB) // Create the closure for calling __ccgo_fp_cmp + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ key+8(FP), AX + MOVQ AX, 8(SP) + MOVQ rootp+16(FP), AX + MOVQ AX, 16(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 24(SP) + CALL ·Xtsearch(SB) + MOVQ 32(SP), AX + MOVQ AX, r1+32(FP) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_tsearch_2(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVQ _2+16(FP), AX + MOVQ AX, 16(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + MOVL 24(SP), AX + MOVL AX, _3+32(FP) + RET + +// func Yttyname(tls *TLS, fd int32) (r uintptr) +TEXT ·Yttyname(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xttyname(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yttyname_r(tls *TLS, fd int32, name uintptr, size Tsize_t) (r int32) +TEXT ·Yttyname_r(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ name+16(FP), AX + MOVQ AX, 16(SP) + MOVQ size+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xttyname_r(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ytwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) +TEXT ·Ytwalk(SB),$32-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX // alloc all ABI trampolines + MOVQ AX, 0(SP) + MOVQ $16, 8(SP) // 16*(number of func ptrs in signature) + CALL modernc·org∕libc·TLSAlloc(SB) + MOVQ 16(SP), AX + MOVQ AX, -8(BP) // Trampolines[0] + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ -8(BP), AX + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 8(SP) + MOVQ __ccgo_fp_action+16(FP), AX // ABI0 code ptr + MOVQ AX, 16(SP) + CALL ·__ccgo_abiInternal_twalk_1(SB) // Create the closure for calling __ccgo_fp_action + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ root+8(FP), AX + MOVQ AX, 8(SP) + MOVQ -8(BP), AX // Trampolines[0] + ADDQ $0, AX // 16*(0-based ordinal number of the func ptr in signature) + MOVQ AX, 16(SP) + CALL ·Xtwalk(SB) + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ $0, 8(SP) + CALL modernc·org∕libc·TLSFree(SB) + RET + +TEXT ·__ccgo_abi0_twalk_1(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ _0+0(FP), AX + MOVQ AX, 0(SP) + MOVQ _1+8(FP), AX + MOVQ AX, 8(SP) + MOVL _2+16(FP), AX + MOVL AX, 16(SP) + MOVL _3+20(FP), AX + MOVL AX, 20(SP) + MOVQ __ccgo_fp+24(FP), AX + CALL *AX // Call the ABI0 code ptr + RET + +// func Ytzset(tls *TLS) +TEXT ·Ytzset(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xtzset(SB) + RET + +// func Yualarm(tls *TLS, value uint32, interval uint32) (r uint32) +TEXT ·Yualarm(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL value+8(FP), AX + MOVL AX, 8(SP) + MOVL interval+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xualarm(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yulckpwdf(tls *TLS) (r int32) +TEXT ·Yulckpwdf(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xulckpwdf(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yulimit(tls *TLS, cmd int32, va uintptr) (r int64) +TEXT ·Yulimit(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL cmd+8(FP), AX + MOVL AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xulimit(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yumask(tls *TLS, mode Tmode_t) (r Tmode_t) +TEXT ·Yumask(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL mode+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xumask(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yumount(tls *TLS, special uintptr) (r int32) +TEXT ·Yumount(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ special+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xumount(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yumount2(tls *TLS, special uintptr, flags int32) (r int32) +TEXT ·Yumount2(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ special+8(FP), AX + MOVQ AX, 8(SP) + MOVL flags+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xumount2(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yuname(tls *TLS, uts uintptr) (r int32) +TEXT ·Yuname(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ uts+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xuname(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yungetc(tls *TLS, c int32, f uintptr) (r int32) +TEXT ·Yungetc(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xungetc(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) +TEXT ·Yungetwc(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + MOVQ f+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xungetwc(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yunlink(tls *TLS, path uintptr) (r int32) +TEXT ·Yunlink(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xunlink(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yunlinkat(tls *TLS, fd int32, path uintptr, flag int32) (r int32) +TEXT ·Yunlinkat(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVL flag+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xunlinkat(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yunlockpt(tls *TLS, fd int32) (r int32) +TEXT ·Yunlockpt(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xunlockpt(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yunsetenv(tls *TLS, name uintptr) (r int32) +TEXT ·Yunsetenv(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ name+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xunsetenv(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yunshare(tls *TLS, flags int32) (r int32) +TEXT ·Yunshare(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL flags+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xunshare(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yupdwtmp(tls *TLS, f uintptr, u uintptr) +TEXT ·Yupdwtmp(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ u+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xupdwtmp(SB) + RET + +// func Yupdwtmpx(tls *TLS, f uintptr, u uintptr) +TEXT ·Yupdwtmpx(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ u+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xupdwtmpx(SB) + RET + +// func Yuselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) +TEXT ·Yuselocale(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ new1+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xuselocale(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yusleep(tls *TLS, useconds uint32) (r int32) +TEXT ·Yusleep(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL useconds+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xusleep(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yutime(tls *TLS, path uintptr, times uintptr) (r int32) +TEXT ·Yutime(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ times+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xutime(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yutimensat(tls *TLS, fd int32, path uintptr, times uintptr, flags int32) (r1 int32) +TEXT ·Yutimensat(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ path+16(FP), AX + MOVQ AX, 16(SP) + MOVQ times+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xutimensat(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Yutimes(tls *TLS, path uintptr, times uintptr) (r int32) +TEXT ·Yutimes(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ path+8(FP), AX + MOVQ AX, 8(SP) + MOVQ times+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xutimes(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yuuid_copy(t *TLS, dst, src uintptr) +TEXT ·Yuuid_copy(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dst+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xuuid_copy(SB) + RET + +// func Yuuid_generate_random(t *TLS, out uintptr) +TEXT ·Yuuid_generate_random(SB),$16-16 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ out+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xuuid_generate_random(SB) + RET + +// func Yuuid_parse(t *TLS, in uintptr, uu uintptr) (_3 int32) +TEXT ·Yuuid_parse(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ in+8(FP), AX + MOVQ AX, 8(SP) + MOVQ uu+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xuuid_parse(SB) + MOVL 24(SP), AX + MOVL AX, _3+24(FP) + RET + +// func Yuuid_unparse(t *TLS, uu, out uintptr) +TEXT ·Yuuid_unparse(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ t+0(FP), AX + MOVQ AX, 0(SP) + MOVQ uu+8(FP), AX + MOVQ AX, 8(SP) + MOVQ out+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xuuid_unparse(SB) + RET + +// func Yvasprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvasprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvasprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yvdprintf(tls *TLS, fd int32, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvdprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvdprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yverr(tls *TLS, status int32, fmt uintptr, ap Tva_list) +TEXT ·Yverr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL status+8(FP), AX + MOVL AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xverr(SB) + RET + +// func Yverrx(tls *TLS, status int32, fmt uintptr, ap Tva_list) +TEXT ·Yverrx(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL status+8(FP), AX + MOVL AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xverrx(SB) + RET + +// func Yversionsort(tls *TLS, a uintptr, b uintptr) (r int32) +TEXT ·Yversionsort(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ a+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xversionsort(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yvfork(tls *TLS) (r Tpid_t) +TEXT ·Yvfork(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xvfork(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yvfprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvfprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvfprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvfscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvfscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yvfwprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvfwprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvfwprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvfwscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ f+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvfwscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yvhangup(tls *TLS) (r int32) +TEXT ·Yvhangup(SB),$16-12 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + CALL ·Xvhangup(SB) + MOVL 8(SP), AX + MOVL AX, r+8(FP) + RET + +// func Yvmsplice(tls *TLS, fd int32, iov uintptr, cnt Tsize_t, flags uint32) (r Tssize_t) +TEXT ·Yvmsplice(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ iov+16(FP), AX + MOVQ AX, 16(SP) + MOVQ cnt+24(FP), AX + MOVQ AX, 24(SP) + MOVL flags+32(FP), AX + MOVL AX, 32(SP) + CALL ·Xvmsplice(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Yvprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvprintf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xvprintf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yvscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvscanf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xvscanf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yvsnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvsnprintf(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ fmt+24(FP), AX + MOVQ AX, 24(SP) + MOVQ ap+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xvsnprintf(SB) + MOVL 40(SP), AX + MOVL AX, r+40(FP) + RET + +// func Yvsprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvsprintf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvsprintf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yvsscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvsscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvsscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yvswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r1 int32) +TEXT ·Yvswprintf(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ fmt+24(FP), AX + MOVQ AX, 24(SP) + MOVQ ap+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xvswprintf(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Yvswscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvswscanf(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ fmt+16(FP), AX + MOVQ AX, 16(SP) + MOVQ ap+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xvswscanf(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Yvwarn(tls *TLS, fmt uintptr, ap Tva_list) +TEXT ·Yvwarn(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xvwarn(SB) + RET + +// func Yvwarnx(tls *TLS, fmt uintptr, ap Tva_list) +TEXT ·Yvwarnx(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xvwarnx(SB) + RET + +// func Yvwprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvwprintf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xvwprintf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yvwscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) +TEXT ·Yvwscanf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ap+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xvwscanf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ywait(tls *TLS, status uintptr) (r Tpid_t) +TEXT ·Ywait(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ status+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xwait(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ywait3(tls *TLS, status uintptr, options int32, usage uintptr) (r Tpid_t) +TEXT ·Ywait3(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ status+8(FP), AX + MOVQ AX, 8(SP) + MOVL options+16(FP), AX + MOVL AX, 16(SP) + MOVQ usage+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwait3(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ywait4(tls *TLS, pid Tpid_t, status uintptr, options int32, ru uintptr) (r1 Tpid_t) +TEXT ·Ywait4(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVQ status+16(FP), AX + MOVQ AX, 16(SP) + MOVL options+24(FP), AX + MOVL AX, 24(SP) + MOVQ ru+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xwait4(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Ywaitid(tls *TLS, type1 Tidtype_t, id Tid_t, info uintptr, options int32) (r int32) +TEXT ·Ywaitid(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL type1+8(FP), AX + MOVL AX, 8(SP) + MOVL id+12(FP), AX + MOVL AX, 12(SP) + MOVQ info+16(FP), AX + MOVQ AX, 16(SP) + MOVL options+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwaitid(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ywaitpid(tls *TLS, pid Tpid_t, status uintptr, options int32) (r Tpid_t) +TEXT ·Ywaitpid(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL pid+8(FP), AX + MOVL AX, 8(SP) + MOVQ status+16(FP), AX + MOVQ AX, 16(SP) + MOVL options+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwaitpid(SB) + MOVL 32(SP), AX + MOVL AX, r+32(FP) + RET + +// func Ywarn(tls *TLS, fmt uintptr, va uintptr) +TEXT ·Ywarn(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwarn(SB) + RET + +// func Ywarnx(tls *TLS, fmt uintptr, va uintptr) +TEXT ·Ywarnx(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwarnx(SB) + RET + +// func Ywcpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) +TEXT ·Ywcpcpy(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcpcpy(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ywcpncpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcpncpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcrtomb(tls *TLS, s uintptr, wc Twchar_t, st uintptr) (r Tsize_t) +TEXT ·Ywcrtomb(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL wc+16(FP), AX + MOVL AX, 16(SP) + MOVQ st+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcrtomb(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcscasecmp(tls *TLS, l uintptr, r uintptr) (r1 int32) +TEXT ·Ywcscasecmp(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcscasecmp(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ywcscasecmp_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) +TEXT ·Ywcscasecmp_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ locale+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcscasecmp_l(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ywcscat(tls *TLS, dest uintptr, src uintptr) (r uintptr) +TEXT ·Ywcscat(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcscat(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcschr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) +TEXT ·Ywcschr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xwcschr(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcscmp(tls *TLS, l uintptr, r uintptr) (r1 int32) +TEXT ·Ywcscmp(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcscmp(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ywcscoll(tls *TLS, l uintptr, r uintptr) (r1 int32) +TEXT ·Ywcscoll(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcscoll(SB) + MOVL 24(SP), AX + MOVL AX, r1+24(FP) + RET + +// func Ywcscoll_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) +TEXT ·Ywcscoll_l(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ locale+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcscoll_l(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ywcscpy(tls *TLS, d uintptr, s uintptr) (r uintptr) +TEXT ·Ywcscpy(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcscpy(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcscspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) +TEXT ·Ywcscspn(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ c+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcscspn(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcsdup(tls *TLS, s uintptr) (r uintptr) +TEXT ·Ywcsdup(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xwcsdup(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ywcsftime(tls *TLS, wcs uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) +TEXT ·Ywcsftime(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ wcs+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + MOVQ tm+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xwcsftime(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ywcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) +TEXT ·Ywcsftime_l(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + MOVQ f+24(FP), AX + MOVQ AX, 24(SP) + MOVQ tm+32(FP), AX + MOVQ AX, 32(SP) + MOVQ loc+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xwcsftime_l(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ywcslen(tls *TLS, s uintptr) (r Tsize_t) +TEXT ·Ywcslen(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xwcslen(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ywcsncasecmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) +TEXT ·Ywcsncasecmp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcsncasecmp(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ywcsncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, locale Tlocale_t) (r1 int32) +TEXT ·Ywcsncasecmp_l(SB),$48-44 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ locale+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xwcsncasecmp_l(SB) + MOVL 40(SP), AX + MOVL AX, r1+40(FP) + RET + +// func Ywcsncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ywcsncat(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcsncat(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcsncmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) +TEXT ·Ywcsncmp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcsncmp(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ywcsncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ywcsncpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcsncpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcsnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) +TEXT ·Ywcsnlen(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcsnlen(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcsnrtombs(tls *TLS, dst uintptr, wcs uintptr, wn Tsize_t, n Tsize_t, st uintptr) (r Tsize_t) +TEXT ·Ywcsnrtombs(SB),$56-56 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dst+8(FP), AX + MOVQ AX, 8(SP) + MOVQ wcs+16(FP), AX + MOVQ AX, 16(SP) + MOVQ wn+24(FP), AX + MOVQ AX, 24(SP) + MOVQ n+32(FP), AX + MOVQ AX, 32(SP) + MOVQ st+40(FP), AX + MOVQ AX, 40(SP) + CALL ·Xwcsnrtombs(SB) + MOVQ 48(SP), AX + MOVQ AX, r+48(FP) + RET + +// func Ywcspbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) +TEXT ·Ywcspbrk(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ b+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcspbrk(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcsrchr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) +TEXT ·Ywcsrchr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xwcsrchr(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcsrtombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t, st uintptr) (r Tsize_t) +TEXT ·Ywcsrtombs(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ws+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ st+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xwcsrtombs(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ywcsspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) +TEXT ·Ywcsspn(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ c+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcsspn(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcsstr(tls *TLS, h uintptr, n uintptr) (r uintptr) +TEXT ·Ywcsstr(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ h+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcsstr(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcstod(tls *TLS, s uintptr, p uintptr) (r float64) +TEXT ·Ywcstod(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcstod(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcstof(tls *TLS, s uintptr, p uintptr) (r float32) +TEXT ·Ywcstof(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcstof(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ywcstoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) +TEXT ·Ywcstoimax(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwcstoimax(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcstok(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) +TEXT ·Ywcstok(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ sep+16(FP), AX + MOVQ AX, 16(SP) + MOVQ p+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcstok(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcstol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) +TEXT ·Ywcstol(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwcstol(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcstold(tls *TLS, s uintptr, p uintptr) (r float64) +TEXT ·Ywcstold(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcstold(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcstoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) +TEXT ·Ywcstoll(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwcstoll(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcstombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t) (r Tsize_t) +TEXT ·Ywcstombs(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ ws+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcstombs(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcstoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) +TEXT ·Ywcstoul(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwcstoul(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcstoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) +TEXT ·Ywcstoull(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwcstoull(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcstoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) +TEXT ·Ywcstoumax(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ p+16(FP), AX + MOVQ AX, 16(SP) + MOVL base+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwcstoumax(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcswcs(tls *TLS, haystack uintptr, needle uintptr) (r uintptr) +TEXT ·Ywcswcs(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ haystack+8(FP), AX + MOVQ AX, 8(SP) + MOVQ needle+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcswcs(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcswidth(tls *TLS, wcs uintptr, n Tsize_t) (r int32) +TEXT ·Ywcswidth(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ wcs+8(FP), AX + MOVQ AX, 8(SP) + MOVQ n+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwcswidth(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ywcsxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) +TEXT ·Ywcsxfrm(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwcsxfrm(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywcsxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) +TEXT ·Ywcsxfrm_l(SB),$48-48 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ dest+8(FP), AX + MOVQ AX, 8(SP) + MOVQ src+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + MOVQ loc+32(FP), AX + MOVQ AX, 32(SP) + CALL ·Xwcsxfrm_l(SB) + MOVQ 40(SP), AX + MOVQ AX, r+40(FP) + RET + +// func Ywctob(tls *TLS, c Twint_t) (r int32) +TEXT ·Ywctob(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL c+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xwctob(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ywctomb(tls *TLS, s uintptr, wc Twchar_t) (r int32) +TEXT ·Ywctomb(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL wc+16(FP), AX + MOVL AX, 16(SP) + CALL ·Xwctomb(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ywctrans(tls *TLS, class uintptr) (r Twctrans_t) +TEXT ·Ywctrans(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ class+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xwctrans(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ywctrans_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctrans_t) +TEXT ·Ywctrans_l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwctrans_l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywctype(tls *TLS, s uintptr) (r Twctype_t) +TEXT ·Ywctype(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xwctype(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Ywctype_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctype_t) +TEXT ·Ywctype_l(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVQ l+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwctype_l(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Ywcwidth(tls *TLS, wc Twchar_t) (r int32) +TEXT ·Ywcwidth(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL wc+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xwcwidth(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Ywmemchr(tls *TLS, s uintptr, c Twchar_t, n Tsize_t) (r uintptr) +TEXT ·Ywmemchr(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ s+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwmemchr(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywmemcmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) +TEXT ·Ywmemcmp(SB),$40-36 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ l+8(FP), AX + MOVQ AX, 8(SP) + MOVQ r+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwmemcmp(SB) + MOVL 32(SP), AX + MOVL AX, r1+32(FP) + RET + +// func Ywmemcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ywmemcpy(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwmemcpy(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywmemmove(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) +TEXT ·Ywmemmove(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVQ s+16(FP), AX + MOVQ AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwmemmove(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywmemset(tls *TLS, d uintptr, c Twchar_t, n Tsize_t) (r uintptr) +TEXT ·Ywmemset(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ d+8(FP), AX + MOVQ AX, 8(SP) + MOVL c+16(FP), AX + MOVL AX, 16(SP) + MOVQ n+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwmemset(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) +TEXT ·Ywprintf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwprintf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Ywrite(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) +TEXT ·Ywrite(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ buf+16(FP), AX + MOVQ AX, 16(SP) + MOVQ count+24(FP), AX + MOVQ AX, 24(SP) + CALL ·Xwrite(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywritev(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) +TEXT ·Ywritev(SB),$40-40 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL fd+8(FP), AX + MOVL AX, 8(SP) + MOVQ iov+16(FP), AX + MOVQ AX, 16(SP) + MOVL count+24(FP), AX + MOVL AX, 24(SP) + CALL ·Xwritev(SB) + MOVQ 32(SP), AX + MOVQ AX, r+32(FP) + RET + +// func Ywscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) +TEXT ·Ywscanf(SB),$32-28 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ fmt+8(FP), AX + MOVQ AX, 8(SP) + MOVQ va+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xwscanf(SB) + MOVL 24(SP), AX + MOVL AX, r+24(FP) + RET + +// func Yy0(tls *TLS, x float64) (r float64) +TEXT ·Yy0(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xy0(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yy0f(tls *TLS, x float32) (r float32) +TEXT ·Yy0f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xy0f(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yy1(tls *TLS, x float64) (r float64) +TEXT ·Yy1(SB),$24-24 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVQ x+8(FP), AX + MOVQ AX, 8(SP) + CALL ·Xy1(SB) + MOVQ 16(SP), AX + MOVQ AX, r+16(FP) + RET + +// func Yy1f(tls *TLS, x float32) (r float32) +TEXT ·Yy1f(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL x+8(FP), AX + MOVL AX, 8(SP) + CALL ·Xy1f(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET + +// func Yyn(tls *TLS, n int32, x float64) (r float64) +TEXT ·Yyn(SB),$32-32 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + MOVQ x+16(FP), AX + MOVQ AX, 16(SP) + CALL ·Xyn(SB) + MOVQ 24(SP), AX + MOVQ AX, r+24(FP) + RET + +// func Yynf(tls *TLS, n int32, x float32) (r float32) +TEXT ·Yynf(SB),$24-20 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ tls+0(FP), AX + MOVQ AX, 0(SP) + MOVL n+8(FP), AX + MOVL AX, 8(SP) + MOVL x+12(FP), AX + MOVL AX, 12(SP) + CALL ·Xynf(SB) + MOVL 16(SP), AX + MOVL AX, r+16(FP) + RET diff --git a/vendor/modernc.org/libc/asm_linux_amd64.go b/vendor/modernc.org/libc/asm_linux_amd64.go deleted file mode 100644 index 8ed09ec2f..000000000 --- a/vendor/modernc.org/libc/asm_linux_amd64.go +++ /dev/null @@ -1,4209 +0,0 @@ -// Code generated for linux/amd64 by 'genasm', DO NOT EDIT. - -package libc - -//go:noescape -func Y__assert_fail(tls *TLS, expr uintptr, file uintptr, line int32, func1 uintptr) - -//go:noescape -func Y__builtin___memcpy_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (r uintptr) - -//go:noescape -func Y__builtin___memmove_chk(t *TLS, dest, src uintptr, n, os Tsize_t) uintptr - -//go:noescape -func Y__builtin___memset_chk(t *TLS, s uintptr, c int32, n, os Tsize_t) uintptr - -//go:noescape -func Y__builtin___snprintf_chk(t *TLS, str uintptr, maxlen Tsize_t, flag int32, os Tsize_t, format, args uintptr) (r int32) - -//go:noescape -func Y__builtin___sprintf_chk(t *TLS, s uintptr, flag int32, os Tsize_t, format, args uintptr) (r int32) - -//go:noescape -func Y__builtin___strcat_chk(t *TLS, dest, src uintptr, os Tsize_t) (r uintptr) - -//go:noescape -func Y__builtin___strcpy_chk(t *TLS, dest, src uintptr, os Tsize_t) uintptr - -//go:noescape -func Y__builtin___strncpy_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (r uintptr) - -//go:noescape -func Y__builtin___vsnprintf_chk(t *TLS, str uintptr, maxlen Tsize_t, flag int32, os Tsize_t, format, args uintptr) (r int32) - -//go:noescape -func Y__builtin_abort(t *TLS) - -//go:noescape -func Y__builtin_abs(t *TLS, j int32) int32 - -//go:noescape -func Y__builtin_add_overflowInt64(t *TLS, a, b int64, res uintptr) int32 - -//go:noescape -func Y__builtin_add_overflowUint32(t *TLS, a, b uint32, res uintptr) int32 - -//go:noescape -func Y__builtin_add_overflowUint64(t *TLS, a, b uint64, res uintptr) int32 - -//go:noescape -func Y__builtin_alloca(tls *TLS, size Tsize_t) uintptr - -//go:noescape -func Y__builtin_bswap16(t *TLS, x uint16) uint16 - -//go:noescape -func Y__builtin_bswap32(t *TLS, x uint32) uint32 - -//go:noescape -func Y__builtin_bswap64(t *TLS, x uint64) uint64 - -//go:noescape -func Y__builtin_bzero(t *TLS, s uintptr, n Tsize_t) - -//go:noescape -func Y__builtin_clz(t *TLS, n uint32) int32 - -//go:noescape -func Y__builtin_clzl(t *TLS, n ulong) int32 - -//go:noescape -func Y__builtin_clzll(t *TLS, n uint64) int32 - -//go:noescape -func Y__builtin_copysign(t *TLS, x, y float64) float64 - -//go:noescape -func Y__builtin_copysignf(t *TLS, x, y float32) float32 - -//go:noescape -func Y__builtin_copysignl(t *TLS, x, y float64) float64 - -//go:noescape -func Y__builtin_ctz(t *TLS, n uint32) int32 - -//go:noescape -func Y__builtin_ctzl(tls *TLS, x ulong) int32 - -//go:noescape -func Y__builtin_exit(t *TLS, status int32) - -//go:noescape -func Y__builtin_expect(t *TLS, exp, c long) long - -//go:noescape -func Y__builtin_fabs(t *TLS, x float64) float64 - -//go:noescape -func Y__builtin_fabsf(t *TLS, x float32) float32 - -//go:noescape -func Y__builtin_fabsl(t *TLS, x float64) float64 - -//go:noescape -func Y__builtin_ffs(tls *TLS, i int32) (r int32) - -//go:noescape -func Y__builtin_fma(tls *TLS, x, y, z float64) (r float64) - -//go:noescape -func Y__builtin_fmax(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Y__builtin_fmin(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Y__builtin_free(t *TLS, ptr uintptr) - -//go:noescape -func Y__builtin_getentropy(t *TLS, buf uintptr, n Tsize_t) int32 - -//go:noescape -func Y__builtin_huge_val(t *TLS) float64 - -//go:noescape -func Y__builtin_huge_valf(t *TLS) float32 - -//go:noescape -func Y__builtin_hypot(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Y__builtin_inf(t *TLS) float64 - -//go:noescape -func Y__builtin_inff(tls *TLS) float32 - -//go:noescape -func Y__builtin_infl(t *TLS) float64 - -//go:noescape -func Y__builtin_isblank(tls *TLS, c int32) (r int32) - -//go:noescape -func Y__builtin_isnan(t *TLS, x float64) int32 - -//go:noescape -func Y__builtin_isnanf(t *TLS, x float32) int32 - -//go:noescape -func Y__builtin_isnanl(t *TLS, x float64) int32 - -//go:noescape -func Y__builtin_isprint(tls *TLS, c int32) (r int32) - -//go:noescape -func Y__builtin_isunordered(t *TLS, a, b float64) int32 - -//go:noescape -func Y__builtin_llabs(tls *TLS, a int64) int64 - -//go:noescape -func Y__builtin_log2(t *TLS, x float64) float64 - -//go:noescape -func Y__builtin_lrint(tls *TLS, x float64) (r long) - -//go:noescape -func Y__builtin_lrintf(tls *TLS, x float32) (r long) - -//go:noescape -func Y__builtin_lround(tls *TLS, x float64) (r long) - -//go:noescape -func Y__builtin_malloc(t *TLS, size Tsize_t) uintptr - -//go:noescape -func Y__builtin_memcmp(t *TLS, s1, s2 uintptr, n Tsize_t) int32 - -//go:noescape -func Y__builtin_memcpy(t *TLS, dest, src uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Y__builtin_memset(t *TLS, s uintptr, c int32, n Tsize_t) uintptr - -//go:noescape -func Y__builtin_mmap(t *TLS, addr uintptr, length Tsize_t, prot, flags, fd int32, offset Toff_t) uintptr - -//go:noescape -func Y__builtin_mul_overflowInt64(t *TLS, a, b int64, res uintptr) int32 - -//go:noescape -func Y__builtin_mul_overflowUint128(t *TLS, a, b Uint128, res uintptr) int32 - -//go:noescape -func Y__builtin_mul_overflowUint64(t *TLS, a, b uint64, res uintptr) int32 - -//go:noescape -func Y__builtin_nan(t *TLS, s uintptr) float64 - -//go:noescape -func Y__builtin_nanf(tls *TLS, s uintptr) float32 - -//go:noescape -func Y__builtin_nanl(t *TLS, s uintptr) float64 - -//go:noescape -func Y__builtin_object_size(t *TLS, p uintptr, typ int32) Tsize_t - -//go:noescape -func Y__builtin_popcount(t *TLS, x uint32) int32 - -//go:noescape -func Y__builtin_popcountl(t *TLS, x ulong) int32 - -//go:noescape -func Y__builtin_prefetch(t *TLS, addr, args uintptr) - -//go:noescape -func Y__builtin_printf(tls *TLS, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Y__builtin_rintf(tls *TLS, x float32) (r float32) - -//go:noescape -func Y__builtin_round(tls *TLS, x float64) (r float64) - -//go:noescape -func Y__builtin_roundf(tls *TLS, x float32) (r float32) - -//go:noescape -func Y__builtin_snprintf(t *TLS, str uintptr, size Tsize_t, format, args uintptr) int32 - -//go:noescape -func Y__builtin_sprintf(t *TLS, str, format, args uintptr) (r int32) - -//go:noescape -func Y__builtin_strchr(t *TLS, s uintptr, c int32) uintptr - -//go:noescape -func Y__builtin_strcmp(t *TLS, s1, s2 uintptr) int32 - -//go:noescape -func Y__builtin_strcpy(t *TLS, dest, src uintptr) uintptr - -//go:noescape -func Y__builtin_strlen(t *TLS, s uintptr) Tsize_t - -//go:noescape -func Y__builtin_sub_overflowInt64(t *TLS, a, b int64, res uintptr) int32 - -//go:noescape -func Y__builtin_trap(t *TLS) - -//go:noescape -func Y__builtin_trunc(tls *TLS, x float64) (r float64) - -//go:noescape -func Y__builtin_unreachable(t *TLS) - -//go:noescape -func Y__builtin_vsnprintf(t *TLS, str uintptr, size Tsize_t, format, va uintptr) int32 - -//go:noescape -func Ya64l(tls *TLS, s uintptr) (r int64) - -//go:noescape -func Yabort(tls *TLS) - -//go:noescape -func Yabs(tls *TLS, a int32) (r int32) - -//go:noescape -func Yaccept(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) - -//go:noescape -func Yaccept4(tls *TLS, fd int32, addr uintptr, len1 uintptr, flg int32) (r1 int32) - -//go:noescape -func Yaccess(tls *TLS, filename uintptr, amode int32) (r int32) - -//go:noescape -func Yacct(tls *TLS, filename uintptr) (r int32) - -//go:noescape -func Yacos(tls *TLS, x float64) (r float64) - -//go:noescape -func Yacosf(tls *TLS, x float32) (r float32) - -//go:noescape -func Yacosh(tls *TLS, x float64) (r float64) - -//go:noescape -func Yacoshf(tls *TLS, x float32) (r float32) - -//go:noescape -func Yacoshl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yacosl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yaddmntent(tls *TLS, f uintptr, mnt uintptr) (r int32) - -//go:noescape -func Yadjtime(tls *TLS, in uintptr, out uintptr) (r int32) - -//go:noescape -func Yadjtimex(tls *TLS, tx uintptr) (r int32) - -//go:noescape -func Yalarm(tls *TLS, seconds uint32) (r uint32) - -//go:noescape -func Yalloca(tls *TLS, size Tsize_t) uintptr - -//go:noescape -func Yalphasort(tls *TLS, a uintptr, b uintptr) (r int32) - -//go:noescape -func Yarch_prctl(tls *TLS, code int32, addr uint64) (r int32) - -//go:noescape -func Yasctime(tls *TLS, tm uintptr) (r uintptr) - -//go:noescape -func Yasctime_r(tls *TLS, tm uintptr, buf uintptr) (r uintptr) - -//go:noescape -func Yasin(tls *TLS, x float64) (r1 float64) - -//go:noescape -func Yasinf(tls *TLS, x float32) (r float32) - -//go:noescape -func Yasinh(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Yasinhf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Yasinhl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yasinl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yasprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Yat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) - -//go:noescape -func Yatan(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Yatan2(tls *TLS, y float64, x float64) (r float64) - -//go:noescape -func Yatan2f(tls *TLS, y float32, x float32) (r float32) - -//go:noescape -func Yatan2l(tls *TLS, y float64, x float64) (r float64) - -//go:noescape -func Yatanf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Yatanh(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Yatanhf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Yatanhl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yatanl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yatexit(tls *TLS, func_ uintptr) (r int32) - -//go:noescape -func Yatof(tls *TLS, s uintptr) (r float64) - -//go:noescape -func Yatoi(tls *TLS, s uintptr) (r int32) - -//go:noescape -func Yatol(tls *TLS, s uintptr) (r int64) - -//go:noescape -func Yatoll(tls *TLS, s uintptr) (r int64) - -//go:noescape -func Ybacktrace(t *TLS, buf uintptr, size int32) int32 - -//go:noescape -func Ybacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) - -//go:noescape -func Ybasename(tls *TLS, s uintptr) (r uintptr) - -//go:noescape -func Ybcmp(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) (r int32) - -//go:noescape -func Ybcopy(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) - -//go:noescape -func Ybind(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) - -//go:noescape -func Ybind_textdomain_codeset(tls *TLS, domainname uintptr, codeset uintptr) (r uintptr) - -//go:noescape -func Ybindtextdomain(tls *TLS, domainname uintptr, dirname uintptr) (r uintptr) - -//go:noescape -func Ybrk(tls *TLS, end uintptr) (r int32) - -//go:noescape -func Ybsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) - -//go:noescape -func Ybtowc(tls *TLS, c int32) (r Twint_t) - -//go:noescape -func Ybzero(tls *TLS, s uintptr, n Tsize_t) - -//go:noescape -func Yc16rtomb(tls *TLS, s uintptr, c16 Tchar16_t, ps uintptr) (r Tsize_t) - -//go:noescape -func Yc32rtomb(tls *TLS, s uintptr, c32 Tchar32_t, ps uintptr) (r Tsize_t) - -//go:noescape -func Ycabs(tls *TLS, z complex128) (r float64) - -//go:noescape -func Ycabsf(tls *TLS, z complex64) (r float32) - -//go:noescape -func Ycabsl(tls *TLS, z complex128) (r float64) - -//go:noescape -func Ycacos(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycacosf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycacosh(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycacoshf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycacoshl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycacosl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycalloc(tls *TLS, m Tsize_t, n Tsize_t) (r uintptr) - -//go:noescape -func Ycapget(tls *TLS, a uintptr, b uintptr) (r int32) - -//go:noescape -func Ycapset(tls *TLS, a uintptr, b uintptr) (r int32) - -//go:noescape -func Ycarg(tls *TLS, z complex128) (r float64) - -//go:noescape -func Ycargf(tls *TLS, z complex64) (r float32) - -//go:noescape -func Ycargl(tls *TLS, z complex128) (r float64) - -//go:noescape -func Ycasin(tls *TLS, z complex128) (r1 complex128) - -//go:noescape -func Ycasinf(tls *TLS, z complex64) (r1 complex64) - -//go:noescape -func Ycasinh(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycasinhf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycasinhl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycasinl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycatan(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycatanf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycatanh(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycatanhf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycatanhl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycatanl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycatclose(tls *TLS, catd Tnl_catd) (r int32) - -//go:noescape -func Ycatgets(tls *TLS, catd Tnl_catd, set_id int32, msg_id int32, s uintptr) (r uintptr) - -//go:noescape -func Ycatopen(tls *TLS, name uintptr, oflag int32) (r Tnl_catd) - -//go:noescape -func Ycbrt(tls *TLS, x float64) (r1 float64) - -//go:noescape -func Ycbrtf(tls *TLS, x float32) (r1 float32) - -//go:noescape -func Ycbrtl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yccos(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yccosf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Yccosh(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yccoshf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Yccoshl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yccosl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yceil(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Yceilf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Yceill(tls *TLS, x float64) (r float64) - -//go:noescape -func Ycexp(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycexpf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycexpl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycfgetispeed(tls *TLS, tio uintptr) (r Tspeed_t) - -//go:noescape -func Ycfgetospeed(tls *TLS, tio uintptr) (r Tspeed_t) - -//go:noescape -func Ycfmakeraw(tls *TLS, t uintptr) - -//go:noescape -func Ycfsetispeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) - -//go:noescape -func Ycfsetospeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) - -//go:noescape -func Ycfsetspeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) - -//go:noescape -func Ychdir(tls *TLS, path uintptr) (r int32) - -//go:noescape -func Ychmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) - -//go:noescape -func Ychown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) - -//go:noescape -func Ychroot(tls *TLS, path uintptr) (r int32) - -//go:noescape -func Ycimag(tls *TLS, z complex128) (r float64) - -//go:noescape -func Ycimagf(tls *TLS, z complex64) (r float32) - -//go:noescape -func Ycimagl(tls *TLS, z complex128) (r float64) - -//go:noescape -func Yclearenv(tls *TLS) (r int32) - -//go:noescape -func Yclearerr(tls *TLS, f uintptr) - -//go:noescape -func Yclearerr_unlocked(tls *TLS, f uintptr) - -//go:noescape -func Yclock(tls *TLS) (r Tclock_t) - -//go:noescape -func Yclock_adjtime(tls *TLS, clock_id Tclockid_t, utx uintptr) (r1 int32) - -//go:noescape -func Yclock_getcpuclockid(tls *TLS, pid Tpid_t, clk uintptr) (r int32) - -//go:noescape -func Yclock_getres(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) - -//go:noescape -func Yclock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) - -//go:noescape -func Yclock_nanosleep(tls *TLS, clk Tclockid_t, flags int32, req uintptr, rem uintptr) (r int32) - -//go:noescape -func Yclock_settime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) - -//go:noescape -func Yclog(tls *TLS, z complex128) (r1 complex128) - -//go:noescape -func Yclogf(tls *TLS, z complex64) (r1 complex64) - -//go:noescape -func Yclogl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yclose(tls *TLS, fd int32) (r1 int32) - -//go:noescape -func Yclosedir(tls *TLS, dir uintptr) (r int32) - -//go:noescape -func Ycloselog(tls *TLS) - -//go:noescape -func Yconfstr(tls *TLS, name int32, buf uintptr, len1 Tsize_t) (r Tsize_t) - -//go:noescape -func Yconj(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yconjf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Yconjl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yconnect(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) - -//go:noescape -func Ycopy_file_range(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) - -//go:noescape -func Ycopysign(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Ycopysignf(tls *TLS, x float32, y float32) (r float32) - -//go:noescape -func Ycopysignl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Ycos(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Ycosf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Ycosh(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Ycoshf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Ycoshl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ycosl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ycpow(tls *TLS, z complex128, c complex128) (r complex128) - -//go:noescape -func Ycpowf(tls *TLS, z complex64, c complex64) (r complex64) - -//go:noescape -func Ycpowl(tls *TLS, z complex128, c complex128) (r complex128) - -//go:noescape -func Ycproj(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycprojf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycprojl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycreal(tls *TLS, z complex128) (r float64) - -//go:noescape -func Ycrealf(tls *TLS, z complex64) (r float32) - -//go:noescape -func Ycreall(tls *TLS, z complex128) (r float64) - -//go:noescape -func Ycreat(tls *TLS, filename uintptr, mode Tmode_t) (r int32) - -//go:noescape -func Ycrypt(tls *TLS, key uintptr, salt uintptr) (r uintptr) - -//go:noescape -func Ycrypt_r(tls *TLS, key uintptr, salt uintptr, data uintptr) (r uintptr) - -//go:noescape -func Ycsin(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycsinf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycsinh(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycsinhf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycsinhl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycsinl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycsqrt(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Ycsqrtf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Ycsqrtl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yctan(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yctanf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Yctanh(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yctanhf(tls *TLS, z complex64) (r complex64) - -//go:noescape -func Yctanhl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yctanl(tls *TLS, z complex128) (r complex128) - -//go:noescape -func Yctermid(tls *TLS, s uintptr) (r uintptr) - -//go:noescape -func Yctime(tls *TLS, t uintptr) (r uintptr) - -//go:noescape -func Yctime_r(tls *TLS, t uintptr, buf uintptr) (r uintptr) - -//go:noescape -func Ycuserid(tls *TLS, buf uintptr) (r uintptr) - -//go:noescape -func Ydcgettext(tls *TLS, domainname uintptr, msgid uintptr, category int32) (r uintptr) - -//go:noescape -func Ydcngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64, category int32) (r1 uintptr) - -//go:noescape -func Ydelete_module(tls *TLS, a uintptr, b uint32) (r int32) - -//go:noescape -func Ydgettext(tls *TLS, domainname uintptr, msgid uintptr) (r uintptr) - -//go:noescape -func Ydifftime(tls *TLS, t1 Ttime_t, t0 Ttime_t) (r float64) - -//go:noescape -func Ydirfd(tls *TLS, d uintptr) (r int32) - -//go:noescape -func Ydirname(tls *TLS, s uintptr) (r uintptr) - -//go:noescape -func Ydiv(tls *TLS, num int32, den int32) (r Tdiv_t) - -//go:noescape -func Ydlclose(t *TLS, handle uintptr) int32 - -//go:noescape -func Ydlerror(t *TLS) uintptr - -//go:noescape -func Ydlopen(t *TLS, filename uintptr, flags int32) uintptr - -//go:noescape -func Ydlsym(t *TLS, handle, symbol uintptr) uintptr - -//go:noescape -func Ydn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, lastdnptr uintptr) (r int32) - -//go:noescape -func Ydn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr, space int32) (r int32) - -//go:noescape -func Ydn_skipname(tls *TLS, s uintptr, end uintptr) (r int32) - -//go:noescape -func Ydngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) - -//go:noescape -func Ydprintf(tls *TLS, fd int32, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Ydrand48(tls *TLS) (r float64) - -//go:noescape -func Ydrem(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Ydremf(tls *TLS, x float32, y float32) (r float32) - -//go:noescape -func Ydup(tls *TLS, fd int32) (r int32) - -//go:noescape -func Ydup2(tls *TLS, old int32, new1 int32) (r1 int32) - -//go:noescape -func Ydup3(tls *TLS, old int32, new1 int32, flags int32) (r int32) - -//go:noescape -func Yduplocale(tls *TLS, old Tlocale_t) (r Tlocale_t) - -//go:noescape -func Yeaccess(tls *TLS, filename uintptr, amode int32) (r int32) - -//go:noescape -func Yecvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) - -//go:noescape -func Yencrypt(tls *TLS, block uintptr, edflag int32) - -//go:noescape -func Yendgrent(tls *TLS) - -//go:noescape -func Yendhostent(tls *TLS) - -//go:noescape -func Yendmntent(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yendnetent(tls *TLS) - -//go:noescape -func Yendprotoent(tls *TLS) - -//go:noescape -func Yendpwent(tls *TLS) - -//go:noescape -func Yendservent(tls *TLS) - -//go:noescape -func Yendspent(tls *TLS) - -//go:noescape -func Yendusershell(tls *TLS) - -//go:noescape -func Yendutent(tls *TLS) - -//go:noescape -func Yendutxent(tls *TLS) - -//go:noescape -func Yepoll_create(tls *TLS, size int32) (r int32) - -//go:noescape -func Yepoll_create1(tls *TLS, flags int32) (r1 int32) - -//go:noescape -func Yepoll_ctl(tls *TLS, fd int32, op int32, fd2 int32, ev uintptr) (r int32) - -//go:noescape -func Yepoll_pwait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32, sigs uintptr) (r1 int32) - -//go:noescape -func Yepoll_wait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32) (r int32) - -//go:noescape -func Yerand48(tls *TLS, s uintptr) (r float64) - -//go:noescape -func Yerf(tls *TLS, x float64) (r1 float64) - -//go:noescape -func Yerfc(tls *TLS, x float64) (r1 float64) - -//go:noescape -func Yerfcf(tls *TLS, x float32) (r1 float32) - -//go:noescape -func Yerfcl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yerff(tls *TLS, x float32) (r1 float32) - -//go:noescape -func Yerfl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yerr(tls *TLS, status int32, fmt uintptr, va uintptr) - -//go:noescape -func Yerrx(tls *TLS, status int32, fmt uintptr, va uintptr) - -//go:noescape -func Yether_aton(tls *TLS, x uintptr) (r uintptr) - -//go:noescape -func Yether_aton_r(tls *TLS, x uintptr, p_a uintptr) (r uintptr) - -//go:noescape -func Yether_hostton(tls *TLS, hostname uintptr, e uintptr) (r int32) - -//go:noescape -func Yether_line(tls *TLS, l uintptr, e uintptr, hostname uintptr) (r int32) - -//go:noescape -func Yether_ntoa(tls *TLS, p_a uintptr) (r uintptr) - -//go:noescape -func Yether_ntoa_r(tls *TLS, p_a uintptr, x uintptr) (r uintptr) - -//go:noescape -func Yether_ntohost(tls *TLS, hostname uintptr, e uintptr) (r int32) - -//go:noescape -func Yeuidaccess(tls *TLS, filename uintptr, amode int32) (r int32) - -//go:noescape -func Yeventfd(tls *TLS, count uint32, flags int32) (r1 int32) - -//go:noescape -func Yeventfd_read(tls *TLS, fd int32, value uintptr) (r int32) - -//go:noescape -func Yeventfd_write(tls *TLS, fd int32, _value Teventfd_t) (r int32) - -//go:noescape -func Yexecl(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) - -//go:noescape -func Yexecle(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) - -//go:noescape -func Yexeclp(tls *TLS, file uintptr, argv0 uintptr, va uintptr) (r int32) - -//go:noescape -func Yexecv(tls *TLS, path uintptr, argv uintptr) (r int32) - -//go:noescape -func Yexecve(tls *TLS, path uintptr, argv uintptr, envp uintptr) (r int32) - -//go:noescape -func Yexecvp(tls *TLS, file uintptr, argv uintptr) (r int32) - -//go:noescape -func Yexecvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) - -//go:noescape -func Yexit(tls *TLS, code int32) - -//go:noescape -func Yexp(tls *TLS, x1 float64) (r1 float64) - -//go:noescape -func Yexp10(tls *TLS, x float64) (r float64) - -//go:noescape -func Yexp10f(tls *TLS, x float32) (r float32) - -//go:noescape -func Yexp10l(tls *TLS, x float64) (r float64) - -//go:noescape -func Yexp2(tls *TLS, x1 float64) (r1 float64) - -//go:noescape -func Yexp2f(tls *TLS, x2 float32) (r1 float32) - -//go:noescape -func Yexp2l(tls *TLS, x float64) (r float64) - -//go:noescape -func Yexpf(tls *TLS, x2 float32) (r1 float32) - -//go:noescape -func Yexpl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yexplicit_bzero(tls *TLS, d uintptr, n Tsize_t) - -//go:noescape -func Yexpm1(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Yexpm1f(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Yexpm1l(tls *TLS, x float64) (r float64) - -//go:noescape -func Yfabs(tls *TLS, x float64) (r float64) - -//go:noescape -func Yfabsf(tls *TLS, x float32) (r float32) - -//go:noescape -func Yfabsl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yfaccessat(tls *TLS, fd int32, filename uintptr, amode int32, flag int32) (r int32) - -//go:noescape -func Yfallocate(tls *TLS, fd int32, mode int32, base Toff_t, len1 Toff_t) (r int32) - -//go:noescape -func Yfanotify_init(tls *TLS, flags uint32, event_f_flags uint32) (r int32) - -//go:noescape -func Yfanotify_mark(tls *TLS, fanotify_fd int32, flags uint32, mask uint64, dfd int32, pathname uintptr) (r int32) - -//go:noescape -func Yfchdir(tls *TLS, fd int32) (r int32) - -//go:noescape -func Yfchmod(tls *TLS, fd int32, mode Tmode_t) (r int32) - -//go:noescape -func Yfchmodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, flag int32) (r int32) - -//go:noescape -func Yfchown(tls *TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) - -//go:noescape -func Yfchownat(tls *TLS, fd int32, path uintptr, uid Tuid_t, gid Tgid_t, flag int32) (r int32) - -//go:noescape -func Yfclose(tls *TLS, f uintptr) (r1 int32) - -//go:noescape -func Yfcntl(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) - -//go:noescape -func Yfcntl64(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) - -//go:noescape -func Yfcvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) - -//go:noescape -func Yfdatasync(tls *TLS, fd int32) (r int32) - -//go:noescape -func Yfdim(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yfdimf(tls *TLS, x float32, y float32) (r float32) - -//go:noescape -func Yfdiml(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yfdopen(tls *TLS, fd int32, mode uintptr) (r uintptr) - -//go:noescape -func Yfdopendir(tls *TLS, fd int32) (r uintptr) - -//go:noescape -func Yfeclearexcept(tls *TLS, mask int32) (r int32) - -//go:noescape -func Yfegetenv(tls *TLS, envp uintptr) (r int32) - -//go:noescape -func Yfegetround(tls *TLS) (r int32) - -//go:noescape -func Yfeof(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yfeof_unlocked(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yferaiseexcept(tls *TLS, mask int32) (r int32) - -//go:noescape -func Yferror(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yferror_unlocked(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yfesetenv(tls *TLS, envp uintptr) (r int32) - -//go:noescape -func Yfetestexcept(tls *TLS, mask int32) (r int32) - -//go:noescape -func Yfexecve(tls *TLS, fd int32, argv uintptr, envp uintptr) (r1 int32) - -//go:noescape -func Yfflush(tls *TLS, f uintptr) (r1 int32) - -//go:noescape -func Yfflush_unlocked(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yffs(tls *TLS, i int32) (r int32) - -//go:noescape -func Yffsl(tls *TLS, i int64) (r int32) - -//go:noescape -func Yffsll(tls *TLS, i int64) (r int32) - -//go:noescape -func Yfgetc(tls *TLS, f1 uintptr) (r int32) - -//go:noescape -func Yfgetc_unlocked(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yfgetgrent(tls *TLS, f uintptr) (r uintptr) - -//go:noescape -func Yfgetln(tls *TLS, f uintptr, plen uintptr) (r uintptr) - -//go:noescape -func Yfgetpos(tls *TLS, f uintptr, pos uintptr) (r int32) - -//go:noescape -func Yfgetpwent(tls *TLS, f uintptr) (r uintptr) - -//go:noescape -func Yfgets(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) - -//go:noescape -func Yfgets_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) - -//go:noescape -func Yfgetwc(tls *TLS, f uintptr) (r Twint_t) - -//go:noescape -func Yfgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) - -//go:noescape -func Yfgetws(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) - -//go:noescape -func Yfgetws_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) - -//go:noescape -func Yfgetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) - -//go:noescape -func Yfileno(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yfileno_unlocked(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yfinite(tls *TLS, x float64) (r int32) - -//go:noescape -func Yfinitef(tls *TLS, x float32) (r int32) - -//go:noescape -func Yflistxattr(tls *TLS, filedes int32, list uintptr, size Tsize_t) (r Tssize_t) - -//go:noescape -func Yflock(tls *TLS, fd int32, op int32) (r int32) - -//go:noescape -func Yflockfile(tls *TLS, f uintptr) - -//go:noescape -func Yfloor(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Yfloorf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Yfloorl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yfma(tls *TLS, x1 float64, y float64, z float64) (r1 float64) - -//go:noescape -func Yfmal(tls *TLS, x float64, y float64, z float64) (r float64) - -//go:noescape -func Yfmax(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yfmaxf(tls *TLS, x float32, y float32) (r float32) - -//go:noescape -func Yfmaxl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yfmemopen(tls *TLS, buf uintptr, size Tsize_t, mode uintptr) (r uintptr) - -//go:noescape -func Yfmin(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yfminf(tls *TLS, x float32, y float32) (r float32) - -//go:noescape -func Yfminl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yfmod(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yfmodf(tls *TLS, x float32, y float32) (r float32) - -//go:noescape -func Yfmodl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yfmtmsg(tls *TLS, classification int64, label uintptr, severity int32, text uintptr, action uintptr, tag uintptr) (r int32) - -//go:noescape -func Yfnmatch(tls *TLS, pat uintptr, str uintptr, flags int32) (r int32) - -//go:noescape -func Yfopen(tls *TLS, filename uintptr, mode uintptr) (r uintptr) - -//go:noescape -func Yfopen64(tls *TLS, filename uintptr, mode uintptr) (r uintptr) - -//go:noescape -func Yfopencookie(tls *TLS, cookie uintptr, mode uintptr, iofuncs Tcookie_io_functions_t) (r uintptr) - -//go:noescape -func Yfork(t *TLS) int32 - -//go:noescape -func Yfpathconf(tls *TLS, fd int32, name int32) (r int64) - -//go:noescape -func Yfprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Yfpurge(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yfputc(tls *TLS, c1 int32, f1 uintptr) (r int32) - -//go:noescape -func Yfputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) - -//go:noescape -func Yfputs(tls *TLS, s uintptr, f uintptr) (r int32) - -//go:noescape -func Yfputs_unlocked(tls *TLS, s uintptr, f uintptr) (r int32) - -//go:noescape -func Yfputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) - -//go:noescape -func Yfputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) - -//go:noescape -func Yfputws(tls *TLS, _ws uintptr, f uintptr) (r int32) - -//go:noescape -func Yfputws_unlocked(tls *TLS, _ws uintptr, f uintptr) (r int32) - -//go:noescape -func Yfread(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) - -//go:noescape -func Yfread_unlocked(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) - -//go:noescape -func Yfree(tls *TLS, p uintptr) - -//go:noescape -func Yfreeaddrinfo(tls *TLS, p uintptr) - -//go:noescape -func Yfreeifaddrs(tls *TLS, ifp uintptr) - -//go:noescape -func Yfreelocale(tls *TLS, l Tlocale_t) - -//go:noescape -func Yfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) - -//go:noescape -func Yfreopen(tls *TLS, filename uintptr, mode uintptr, f uintptr) (r uintptr) - -//go:noescape -func Yfrexp(tls *TLS, x float64, e uintptr) (r float64) - -//go:noescape -func Yfrexpf(tls *TLS, x float32, e uintptr) (r float32) - -//go:noescape -func Yfrexpl(tls *TLS, x float64, e uintptr) (r float64) - -//go:noescape -func Yfscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Yfseek(tls *TLS, f uintptr, off int64, whence int32) (r int32) - -//go:noescape -func Yfseeko(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) - -//go:noescape -func Yfsetpos(tls *TLS, f uintptr, pos uintptr) (r int32) - -//go:noescape -func Yfsetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) - -//go:noescape -func Yfstat(tls *TLS, fd int32, st uintptr) (r int32) - -//go:noescape -func Yfstat64(tls *TLS, fd int32, st uintptr) (r int32) - -//go:noescape -func Yfstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) - -//go:noescape -func Yfstatfs(tls *TLS, fd int32, buf uintptr) (r int32) - -//go:noescape -func Yfstatvfs(tls *TLS, fd int32, buf uintptr) (r int32) - -//go:noescape -func Yfsync(tls *TLS, fd int32) (r int32) - -//go:noescape -func Yftell(tls *TLS, f uintptr) (r int64) - -//go:noescape -func Yftello(tls *TLS, f uintptr) (r Toff_t) - -//go:noescape -func Yftime(tls *TLS, tp uintptr) (r int32) - -//go:noescape -func Yftok(tls *TLS, path uintptr, id int32) (r Tkey_t) - -//go:noescape -func Yftruncate(tls *TLS, fd int32, length Toff_t) (r int32) - -//go:noescape -func Yftruncate64(tls *TLS, fd int32, length Toff_t) (r int32) - -//go:noescape -func Yftrylockfile(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Yfts64_close(t *TLS, ftsp uintptr) int32 - -//go:noescape -func Yfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr - -//go:noescape -func Yfts64_read(t *TLS, ftsp uintptr) uintptr - -//go:noescape -func Yfts_close(t *TLS, ftsp uintptr) int32 - -//go:noescape -func Yfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr - -//go:noescape -func Yfts_read(t *TLS, ftsp uintptr) uintptr - -//go:noescape -func Yftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) - -//go:noescape -func Yfunlockfile(tls *TLS, f uintptr) - -//go:noescape -func Yfutimens(tls *TLS, fd int32, times uintptr) (r int32) - -//go:noescape -func Yfutimes(tls *TLS, fd int32, tv uintptr) (r int32) - -//go:noescape -func Yfutimesat(tls *TLS, dirfd int32, pathname uintptr, times uintptr) (r int32) - -//go:noescape -func Yfwide(tls *TLS, f uintptr, mode int32) (r int32) - -//go:noescape -func Yfwprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Yfwrite(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) - -//go:noescape -func Yfwrite_unlocked(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) - -//go:noescape -func Yfwscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Ygai_strerror(tls *TLS, ecode int32) (r uintptr) - -//go:noescape -func Ygcvt(tls *TLS, x float64, n int32, b uintptr) (r uintptr) - -//go:noescape -func Yget_avphys_pages(tls *TLS) (r int64) - -//go:noescape -func Yget_current_dir_name(tls *TLS) (r uintptr) - -//go:noescape -func Yget_nprocs(tls *TLS) (r int32) - -//go:noescape -func Yget_nprocs_conf(tls *TLS) (r int32) - -//go:noescape -func Yget_phys_pages(tls *TLS) (r int64) - -//go:noescape -func Ygetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) (r1 int32) - -//go:noescape -func Ygetauxval(tls *TLS, item uint64) (r uint64) - -//go:noescape -func Ygetc(tls *TLS, f1 uintptr) (r int32) - -//go:noescape -func Ygetc_unlocked(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Ygetchar(tls *TLS) (r int32) - -//go:noescape -func Ygetchar_unlocked(tls *TLS) (r int32) - -//go:noescape -func Ygetcwd(tls *TLS, buf uintptr, size Tsize_t) (r uintptr) - -//go:noescape -func Ygetdate(tls *TLS, s uintptr) (r uintptr) - -//go:noescape -func Ygetdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) - -//go:noescape -func Ygetdents(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Ygetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Ygetdtablesize(tls *TLS) (r int32) - -//go:noescape -func Ygetegid(tls *TLS) (r Tgid_t) - -//go:noescape -func Ygetentropy(tls *TLS, buffer uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Ygetenv(tls *TLS, name uintptr) (r uintptr) - -//go:noescape -func Ygeteuid(tls *TLS) (r Tuid_t) - -//go:noescape -func Ygetgid(tls *TLS) (r Tgid_t) - -//go:noescape -func Ygetgrent(tls *TLS) (r uintptr) - -//go:noescape -func Ygetgrgid(tls *TLS, gid Tgid_t) (r uintptr) - -//go:noescape -func Ygetgrgid_r(tls *TLS, gid Tgid_t, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) - -//go:noescape -func Ygetgrnam(tls *TLS, name uintptr) (r uintptr) - -//go:noescape -func Ygetgrnam_r(tls *TLS, name uintptr, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) - -//go:noescape -func Ygetgrouplist(tls *TLS, user uintptr, gid Tgid_t, groups uintptr, ngroups uintptr) (r int32) - -//go:noescape -func Ygetgroups(tls *TLS, count int32, list uintptr) (r int32) - -//go:noescape -func Ygethostbyaddr(tls *TLS, a uintptr, l Tsocklen_t, af int32) (r uintptr) - -//go:noescape -func Ygethostbyaddr_r(tls *TLS, a uintptr, l Tsocklen_t, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) - -//go:noescape -func Ygethostbyname(tls *TLS, name uintptr) (r uintptr) - -//go:noescape -func Ygethostbyname2(tls *TLS, name uintptr, af int32) (r uintptr) - -//go:noescape -func Ygethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) - -//go:noescape -func Ygethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) - -//go:noescape -func Ygethostent(tls *TLS) (r uintptr) - -//go:noescape -func Ygethostid(tls *TLS) (r int64) - -//go:noescape -func Ygethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Ygetifaddrs(tls *TLS, ifap uintptr) (r1 int32) - -//go:noescape -func Ygetitimer(tls *TLS, which int32, old uintptr) (r1 int32) - -//go:noescape -func Ygetline(tls *TLS, s uintptr, n uintptr, f uintptr) (r Tssize_t) - -//go:noescape -func Ygetloadavg(tls *TLS, a uintptr, n int32) (r int32) - -//go:noescape -func Ygetlogin(tls *TLS) (r uintptr) - -//go:noescape -func Ygetlogin_r(tls *TLS, name uintptr, size Tsize_t) (r int32) - -//go:noescape -func Ygetmntent(tls *TLS, f uintptr) (r uintptr) - -//go:noescape -func Ygetmntent_r(tls *TLS, f uintptr, mnt uintptr, linebuf uintptr, buflen int32) (r uintptr) - -//go:noescape -func Ygetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tsocklen_t, serv uintptr, servlen Tsocklen_t, flags int32) (r int32) - -//go:noescape -func Ygetnetbyaddr(tls *TLS, net Tuint32_t, type1 int32) (r uintptr) - -//go:noescape -func Ygetnetbyname(tls *TLS, name uintptr) (r uintptr) - -//go:noescape -func Ygetnetent(tls *TLS) (r uintptr) - -//go:noescape -func Ygetopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) - -//go:noescape -func Ygetopt_long(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) - -//go:noescape -func Ygetopt_long_only(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) - -//go:noescape -func Ygetpagesize(tls *TLS) (r int32) - -//go:noescape -func Ygetpass(tls *TLS, prompt uintptr) (r uintptr) - -//go:noescape -func Ygetpeername(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) - -//go:noescape -func Ygetpgid(tls *TLS, pid Tpid_t) (r Tpid_t) - -//go:noescape -func Ygetpgrp(tls *TLS) (r Tpid_t) - -//go:noescape -func Ygetpid(tls *TLS) (r Tpid_t) - -//go:noescape -func Ygetppid(tls *TLS) (r Tpid_t) - -//go:noescape -func Ygetpriority(tls *TLS, which int32, who Tid_t) (r int32) - -//go:noescape -func Ygetprotobyname(tls *TLS, name uintptr) (r uintptr) - -//go:noescape -func Ygetprotobynumber(tls *TLS, num int32) (r uintptr) - -//go:noescape -func Ygetprotoent(tls *TLS) (r uintptr) - -//go:noescape -func Ygetpwent(tls *TLS) (r uintptr) - -//go:noescape -func Ygetpwnam(tls *TLS, name uintptr) (r uintptr) - -//go:noescape -func Ygetpwnam_r(tls *TLS, name uintptr, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) - -//go:noescape -func Ygetpwuid(tls *TLS, uid Tuid_t) (r uintptr) - -//go:noescape -func Ygetpwuid_r(tls *TLS, uid Tuid_t, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) - -//go:noescape -func Ygetrandom(tls *TLS, buf uintptr, buflen Tsize_t, flags uint32) (r Tssize_t) - -//go:noescape -func Ygetresgid(tls *TLS, rgid uintptr, egid uintptr, sgid uintptr) (r int32) - -//go:noescape -func Ygetresuid(tls *TLS, ruid uintptr, euid uintptr, suid uintptr) (r int32) - -//go:noescape -func Ygetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) - -//go:noescape -func Ygetrlimit64(tls *TLS, resource int32, rlim uintptr) (r int32) - -//go:noescape -func Ygetrusage(tls *TLS, who int32, ru uintptr) (r1 int32) - -//go:noescape -func Ygets(tls *TLS, s uintptr) (r uintptr) - -//go:noescape -func Ygetservbyname(tls *TLS, name uintptr, prots uintptr) (r uintptr) - -//go:noescape -func Ygetservbyname_r(tls *TLS, name uintptr, prots uintptr, se uintptr, buf uintptr, buflen Tsize_t, res uintptr) (r int32) - -//go:noescape -func Ygetservent(tls *TLS) (r uintptr) - -//go:noescape -func Ygetsid(tls *TLS, pid Tpid_t) (r Tpid_t) - -//go:noescape -func Ygetsockname(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) - -//go:noescape -func Ygetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen uintptr) (r2 int32) - -//go:noescape -func Ygetspent(tls *TLS) (r uintptr) - -//go:noescape -func Ygetsubopt(tls *TLS, opt uintptr, keys uintptr, val uintptr) (r int32) - -//go:noescape -func Ygettext(tls *TLS, msgid uintptr) (r uintptr) - -//go:noescape -func Ygettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) - -//go:noescape -func Ygetuid(tls *TLS) (r Tuid_t) - -//go:noescape -func Ygetusershell(tls *TLS) (r uintptr) - -//go:noescape -func Ygetutent(tls *TLS) (r uintptr) - -//go:noescape -func Ygetutid(tls *TLS, ut uintptr) (r uintptr) - -//go:noescape -func Ygetutline(tls *TLS, ut uintptr) (r uintptr) - -//go:noescape -func Ygetutxent(tls *TLS) (r uintptr) - -//go:noescape -func Ygetutxid(tls *TLS, ut uintptr) (r uintptr) - -//go:noescape -func Ygetutxline(tls *TLS, ut uintptr) (r uintptr) - -//go:noescape -func Ygetw(tls *TLS, f uintptr) (r int32) - -//go:noescape -func Ygetwc(tls *TLS, f uintptr) (r Twint_t) - -//go:noescape -func Ygetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) - -//go:noescape -func Ygetwchar(tls *TLS) (r Twint_t) - -//go:noescape -func Ygetwchar_unlocked(tls *TLS) (r Twint_t) - -//go:noescape -func Ygetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) - -//go:noescape -func Yglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g_ uintptr) (r int32) - -//go:noescape -func Yglobfree(tls *TLS, g_ uintptr) - -//go:noescape -func Ygmtime(tls *TLS, t uintptr) (r uintptr) - -//go:noescape -func Ygmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) - -//go:noescape -func Ygrantpt(tls *TLS, fd int32) (r int32) - -//go:noescape -func Yhasmntopt(tls *TLS, mnt uintptr, opt uintptr) (r uintptr) - -//go:noescape -func Yhcreate(tls *TLS, nel Tsize_t) (r int32) - -//go:noescape -func Yhdestroy(tls *TLS) - -//go:noescape -func Yherror(tls *TLS, msg uintptr) - -//go:noescape -func Yhsearch(tls *TLS, item TENTRY, action TACTION) (r uintptr) - -//go:noescape -func Yhstrerror(tls *TLS, ecode int32) (r uintptr) - -//go:noescape -func Yhtonl(tls *TLS, n Tuint32_t) (r Tuint32_t) - -//go:noescape -func Yhtons(tls *TLS, n Tuint16_t) (r Tuint16_t) - -//go:noescape -func Yhypot(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yhypotf(tls *TLS, x float32, y float32) (r float32) - -//go:noescape -func Yhypotl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb uintptr) (r Tsize_t) - -//go:noescape -func Yiconv_close(tls *TLS, cd Ticonv_t) (r int32) - -//go:noescape -func Yiconv_open(tls *TLS, to uintptr, from uintptr) (r Ticonv_t) - -//go:noescape -func Yif_freenameindex(tls *TLS, idx uintptr) - -//go:noescape -func Yif_indextoname(tls *TLS, index uint32, name uintptr) (r1 uintptr) - -//go:noescape -func Yif_nameindex(tls *TLS) (r uintptr) - -//go:noescape -func Yif_nametoindex(tls *TLS, name uintptr) (r1 uint32) - -//go:noescape -func Yilogb(tls *TLS, x3 float64) (r int32) - -//go:noescape -func Yilogbf(tls *TLS, x3 float32) (r int32) - -//go:noescape -func Yilogbl(tls *TLS, x float64) (r int32) - -//go:noescape -func Yimaxabs(tls *TLS, a Tintmax_t) (r Tintmax_t) - -//go:noescape -func Yimaxdiv(tls *TLS, num Tintmax_t, den Tintmax_t) (r Timaxdiv_t) - -//go:noescape -func Yindex(tls *TLS, s uintptr, c int32) (r uintptr) - -//go:noescape -func Yinet_addr(tls *TLS, p uintptr) (r Tin_addr_t) - -//go:noescape -func Yinet_aton(tls *TLS, s0 uintptr, dest uintptr) (r int32) - -//go:noescape -func Yinet_lnaof(tls *TLS, in Tin_addr) (r Tin_addr_t) - -//go:noescape -func Yinet_makeaddr(tls *TLS, n Tin_addr_t, h Tin_addr_t) (r Tin_addr) - -//go:noescape -func Yinet_netof(tls *TLS, in Tin_addr) (r Tin_addr_t) - -//go:noescape -func Yinet_network(tls *TLS, p uintptr) (r Tin_addr_t) - -//go:noescape -func Yinet_ntoa(tls *TLS, _in Tin_addr) (r uintptr) - -//go:noescape -func Yinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l Tsocklen_t) (r uintptr) - -//go:noescape -func Yinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) (r int32) - -//go:noescape -func Yinit_module(tls *TLS, a uintptr, b uint64, c uintptr) (r int32) - -//go:noescape -func Yinitstate(tls *TLS, seed uint32, state uintptr, size Tsize_t) (r uintptr) - -//go:noescape -func Yinitstate_r(t *TLS, seed uint32, statebuf uintptr, statelen Tsize_t, buf uintptr) int32 - -//go:noescape -func Yinotify_add_watch(tls *TLS, fd int32, pathname uintptr, mask Tuint32_t) (r int32) - -//go:noescape -func Yinotify_init(tls *TLS) (r int32) - -//go:noescape -func Yinotify_init1(tls *TLS, flags int32) (r1 int32) - -//go:noescape -func Yinotify_rm_watch(tls *TLS, fd int32, wd int32) (r int32) - -//go:noescape -func Yinsque(tls *TLS, element uintptr, pred uintptr) - -//go:noescape -func Yioctl(tls *TLS, fd int32, req int32, va uintptr) (r1 int32) - -//go:noescape -func Yioperm(tls *TLS, from uint64, num uint64, turn_on int32) (r int32) - -//go:noescape -func Yiopl(tls *TLS, level int32) (r int32) - -//go:noescape -func Yisalnum(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisalnum_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yisalpha(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yisascii(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisastream(tls *TLS, fd int32) (r int32) - -//go:noescape -func Yisatty(tls *TLS, fd int32) (r1 int32) - -//go:noescape -func Yisblank(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisblank_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yiscntrl(tls *TLS, c int32) (r int32) - -//go:noescape -func Yiscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yisdigit(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yisgraph(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yislower(tls *TLS, c int32) (r int32) - -//go:noescape -func Yislower_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yisnan(t *TLS, x float64) int32 - -//go:noescape -func Yisnanf(t *TLS, arg float32) int32 - -//go:noescape -func Yisnanl(t *TLS, arg float64) int32 - -//go:noescape -func Yisprint(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yispunct(tls *TLS, c int32) (r int32) - -//go:noescape -func Yispunct_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yissetugid(tls *TLS) (r int32) - -//go:noescape -func Yisspace(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yisupper(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yiswalnum(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswalnum_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswalpha(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswalpha_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswblank(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswcntrl(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswcntrl_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswctype(tls *TLS, wc Twint_t, type1 Twctype_t) (r int32) - -//go:noescape -func Yiswctype_l(tls *TLS, c Twint_t, t Twctype_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswdigit(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswgraph(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswgraph_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswlower(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswprint(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswprint_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswpunct(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswpunct_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswspace(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswspace_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswupper(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yiswxdigit(tls *TLS, wc Twint_t) (r int32) - -//go:noescape -func Yiswxdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) - -//go:noescape -func Yisxdigit(tls *TLS, c int32) (r int32) - -//go:noescape -func Yisxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Yj0(tls *TLS, x float64) (r1 float64) - -//go:noescape -func Yj0f(tls *TLS, x float32) (r1 float32) - -//go:noescape -func Yj1(tls *TLS, x float64) (r1 float64) - -//go:noescape -func Yj1f(tls *TLS, x float32) (r1 float32) - -//go:noescape -func Yjn(tls *TLS, n int32, x float64) (r float64) - -//go:noescape -func Yjnf(tls *TLS, n int32, x float32) (r float32) - -//go:noescape -func Yjrand48(tls *TLS, s uintptr) (r int64) - -//go:noescape -func Ykill(tls *TLS, pid Tpid_t, sig int32) (r int32) - -//go:noescape -func Ykillpg(tls *TLS, pgid Tpid_t, sig int32) (r int32) - -//go:noescape -func Yklogctl(tls *TLS, type1 int32, buf uintptr, len1 int32) (r int32) - -//go:noescape -func Yl64a(tls *TLS, x0 int64) (r uintptr) - -//go:noescape -func Ylabs(tls *TLS, a int64) (r int64) - -//go:noescape -func Ylchmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) - -//go:noescape -func Ylchown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) - -//go:noescape -func Ylckpwdf(tls *TLS) (r int32) - -//go:noescape -func Ylcong48(tls *TLS, p uintptr) - -//go:noescape -func Yldexp(tls *TLS, x float64, n int32) (r float64) - -//go:noescape -func Yldexpf(tls *TLS, x float32, n int32) (r float32) - -//go:noescape -func Yldexpl(tls *TLS, x float64, n int32) (r float64) - -//go:noescape -func Yldiv(tls *TLS, num int64, den int64) (r Tldiv_t) - -//go:noescape -func Ylfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) - -//go:noescape -func Ylgamma(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylgamma_r(tls *TLS, x float64, signgamp uintptr) (r float64) - -//go:noescape -func Ylgammaf(tls *TLS, x float32) (r float32) - -//go:noescape -func Ylgammaf_r(tls *TLS, x float32, signgamp uintptr) (r float32) - -//go:noescape -func Ylgammal(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylgammal_r(tls *TLS, x float64, sg uintptr) (r float64) - -//go:noescape -func Ylgetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) - -//go:noescape -func Ylink(tls *TLS, existing uintptr, new1 uintptr) (r int32) - -//go:noescape -func Ylinkat(tls *TLS, fd1 int32, existing uintptr, fd2 int32, new1 uintptr, flag int32) (r int32) - -//go:noescape -func Ylisten(tls *TLS, fd int32, backlog int32) (r1 int32) - -//go:noescape -func Ylistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) - -//go:noescape -func Yllabs(tls *TLS, a int64) (r int64) - -//go:noescape -func Ylldiv(tls *TLS, num int64, den int64) (r Tlldiv_t) - -//go:noescape -func Yllistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) - -//go:noescape -func Yllrint(tls *TLS, x float64) (r int64) - -//go:noescape -func Yllrintf(tls *TLS, x float32) (r int64) - -//go:noescape -func Yllrintl(tls *TLS, x float64) (r int64) - -//go:noescape -func Yllround(tls *TLS, x float64) (r int64) - -//go:noescape -func Yllroundf(tls *TLS, x float32) (r int64) - -//go:noescape -func Yllroundl(tls *TLS, x float64) (r int64) - -//go:noescape -func Ylocaleconv(tls *TLS) (r uintptr) - -//go:noescape -func Ylocaltime(tls *TLS, t uintptr) (r uintptr) - -//go:noescape -func Ylocaltime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) - -//go:noescape -func Ylockf(tls *TLS, fd int32, op int32, size Toff_t) (r int32) - -//go:noescape -func Ylog(tls *TLS, x1 float64) (r1 float64) - -//go:noescape -func Ylog10(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylog10f(tls *TLS, x float32) (r float32) - -//go:noescape -func Ylog10l(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylog1p(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Ylog1pf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Ylog1pl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylog2(tls *TLS, x1 float64) (r1 float64) - -//go:noescape -func Ylog2f(tls *TLS, x1 float32) (r1 float32) - -//go:noescape -func Ylog2l(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylogb(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylogbf(tls *TLS, x float32) (r float32) - -//go:noescape -func Ylogbl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylogf(tls *TLS, x1 float32) (r1 float32) - -//go:noescape -func Ylogin_tty(tls *TLS, fd int32) (r int32) - -//go:noescape -func Ylogl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ylongjmp(t *TLS, env uintptr, val int32) - -//go:noescape -func Ylrand48(tls *TLS) (r int64) - -//go:noescape -func Ylremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) - -//go:noescape -func Ylrint(tls *TLS, x float64) (r int64) - -//go:noescape -func Ylrintf(tls *TLS, x float32) (r int64) - -//go:noescape -func Ylrintl(tls *TLS, x float64) (r int64) - -//go:noescape -func Ylround(tls *TLS, x float64) (r int64) - -//go:noescape -func Ylroundf(tls *TLS, x float32) (r int64) - -//go:noescape -func Ylroundl(tls *TLS, x float64) (r int64) - -//go:noescape -func Ylsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) - -//go:noescape -func Ylseek(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) - -//go:noescape -func Ylseek64(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) - -//go:noescape -func Ylsetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) - -//go:noescape -func Ylstat(tls *TLS, path uintptr, buf uintptr) (r int32) - -//go:noescape -func Ylstat64(tls *TLS, path uintptr, buf uintptr) (r int32) - -//go:noescape -func Ylutimes(tls *TLS, filename uintptr, tv uintptr) (r int32) - -//go:noescape -func Ymadvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) - -//go:noescape -func Ymalloc(tls *TLS, n Tsize_t) (r uintptr) - -//go:noescape -func Ymalloc_usable_size(tls *TLS, p uintptr) (r Tsize_t) - -//go:noescape -func Ymblen(tls *TLS, s uintptr, n Tsize_t) (r int32) - -//go:noescape -func Ymbrlen(tls *TLS, s uintptr, n Tsize_t, st uintptr) (r Tsize_t) - -//go:noescape -func Ymbrtoc16(tls *TLS, pc16 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) - -//go:noescape -func Ymbrtoc32(tls *TLS, pc32 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) - -//go:noescape -func Ymbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize_t) - -//go:noescape -func Ymbsinit(tls *TLS, st uintptr) (r int32) - -//go:noescape -func Ymbsnrtowcs(tls *TLS, wcs uintptr, src uintptr, n Tsize_t, wn Tsize_t, st uintptr) (r Tsize_t) - -//go:noescape -func Ymbsrtowcs(tls *TLS, ws uintptr, src uintptr, wn Tsize_t, st uintptr) (r Tsize_t) - -//go:noescape -func Ymbstowcs(tls *TLS, ws uintptr, _s uintptr, wn Tsize_t) (r Tsize_t) - -//go:noescape -func Ymbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) - -//go:noescape -func Ymemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintptr) - -//go:noescape -func Ymemchr(tls *TLS, src uintptr, c int32, n Tsize_t) (r uintptr) - -//go:noescape -func Ymemcmp(tls *TLS, vl uintptr, vr uintptr, n Tsize_t) (r1 int32) - -//go:noescape -func Ymemcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ymemfd_create(tls *TLS, name uintptr, flags uint32) (r int32) - -//go:noescape -func Ymemmem(tls *TLS, h0 uintptr, k Tsize_t, n0 uintptr, l Tsize_t) (r uintptr) - -//go:noescape -func Ymemmove(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ymempcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ymemrchr(tls *TLS, m uintptr, c int32, n Tsize_t) (r uintptr) - -//go:noescape -func Ymemset(tls *TLS, dest uintptr, c int32, n Tsize_t) (r uintptr) - -//go:noescape -func Ymincore(tls *TLS, addr uintptr, len1 Tsize_t, vec uintptr) (r int32) - -//go:noescape -func Ymkdir(tls *TLS, path uintptr, mode Tmode_t) (r int32) - -//go:noescape -func Ymkdirat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) - -//go:noescape -func Ymkdtemp(tls *TLS, template uintptr) (r uintptr) - -//go:noescape -func Ymkfifo(tls *TLS, path uintptr, mode Tmode_t) (r int32) - -//go:noescape -func Ymkfifoat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) - -//go:noescape -func Ymknod(tls *TLS, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) - -//go:noescape -func Ymknodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) - -//go:noescape -func Ymkostemp(tls *TLS, template uintptr, flags int32) (r int32) - -//go:noescape -func Ymkostemps(tls *TLS, template uintptr, len1 int32, flags int32) (r int32) - -//go:noescape -func Ymkstemp(tls *TLS, template uintptr) (r int32) - -//go:noescape -func Ymkstemp64(tls *TLS, template uintptr) (r int32) - -//go:noescape -func Ymkstemps(tls *TLS, template uintptr, len1 int32) (r int32) - -//go:noescape -func Ymkstemps64(tls *TLS, template uintptr, len1 int32) (r int32) - -//go:noescape -func Ymktemp(tls *TLS, template uintptr) (r uintptr) - -//go:noescape -func Ymktime(tls *TLS, tm uintptr) (r Ttime_t) - -//go:noescape -func Ymlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Ymlock2(tls *TLS, addr uintptr, len1 Tsize_t, flags uint32) (r int32) - -//go:noescape -func Ymlockall(tls *TLS, flags int32) (r int32) - -//go:noescape -func Ymmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) - -//go:noescape -func Ymmap64(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) - -//go:noescape -func Ymodf(tls *TLS, x float64, iptr uintptr) (r float64) - -//go:noescape -func Ymodff(tls *TLS, x float32, iptr uintptr) (r float32) - -//go:noescape -func Ymodfl(tls *TLS, x float64, iptr uintptr) (r1 float64) - -//go:noescape -func Ymount(tls *TLS, special uintptr, dir uintptr, fstype uintptr, flags uint64, data uintptr) (r int32) - -//go:noescape -func Ymprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) - -//go:noescape -func Ymrand48(tls *TLS) (r int64) - -//go:noescape -func Ymremap(tls *TLS, old_addr uintptr, old_len Tsize_t, new_len Tsize_t, flags int32, va uintptr) (r uintptr) - -//go:noescape -func Ymsgctl(tls *TLS, q int32, cmd int32, buf uintptr) (r1 int32) - -//go:noescape -func Ymsgget(tls *TLS, k Tkey_t, flag int32) (r int32) - -//go:noescape -func Ymsgrcv(tls *TLS, q int32, m uintptr, len1 Tsize_t, type1 int64, flag int32) (r Tssize_t) - -//go:noescape -func Ymsgsnd(tls *TLS, q int32, m uintptr, len1 Tsize_t, flag int32) (r int32) - -//go:noescape -func Ymsync(tls *TLS, start uintptr, len1 Tsize_t, flags int32) (r int32) - -//go:noescape -func Ymunlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Ymunlockall(tls *TLS) (r int32) - -//go:noescape -func Ymunmap(tls *TLS, start uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Yname_to_handle_at(tls *TLS, dirfd int32, pathname uintptr, handle uintptr, mount_id uintptr, flags int32) (r int32) - -//go:noescape -func Ynan(tls *TLS, s uintptr) (r float64) - -//go:noescape -func Ynanf(tls *TLS, s uintptr) (r float32) - -//go:noescape -func Ynanl(tls *TLS, s uintptr) (r float64) - -//go:noescape -func Ynanosleep(tls *TLS, req uintptr, rem uintptr) (r int32) - -//go:noescape -func Ynewlocale(tls *TLS, mask int32, name uintptr, loc Tlocale_t) (r Tlocale_t) - -//go:noescape -func Ynextafter(tls *TLS, x3 float64, y3 float64) (r float64) - -//go:noescape -func Ynextafterf(tls *TLS, x3 float32, y3 float32) (r float32) - -//go:noescape -func Ynextafterl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Ynexttoward(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Ynexttowardf(tls *TLS, x3 float32, y3 float64) (r float32) - -//go:noescape -func Ynexttowardl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Ynftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) - -//go:noescape -func Yngettext(tls *TLS, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) - -//go:noescape -func Ynice(tls *TLS, inc int32) (r int32) - -//go:noescape -func Ynl_langinfo(tls *TLS, item Tnl_item) (r uintptr) - -//go:noescape -func Ynl_langinfo_l(tls *TLS, item Tnl_item, loc Tlocale_t) (r uintptr) - -//go:noescape -func Ynrand48(tls *TLS, s uintptr) (r int64) - -//go:noescape -func Yns_get16(tls *TLS, cp uintptr) (r uint32) - -//go:noescape -func Yns_get32(tls *TLS, cp uintptr) (r uint64) - -//go:noescape -func Yns_initparse(tls *TLS, msg uintptr, msglen int32, handle uintptr) (r1 int32) - -//go:noescape -func Yns_name_uncompress(tls *TLS, msg uintptr, eom uintptr, src uintptr, dst uintptr, dstsiz Tsize_t) (r1 int32) - -//go:noescape -func Yns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uintptr) (r1 int32) - -//go:noescape -func Yns_put16(tls *TLS, s uint32, cp uintptr) - -//go:noescape -func Yns_put32(tls *TLS, l uint64, cp uintptr) - -//go:noescape -func Yns_skiprr(tls *TLS, ptr uintptr, eom uintptr, section Tns_sect, count int32) (r1 int32) - -//go:noescape -func Yntohl(tls *TLS, n Tuint32_t) (r Tuint32_t) - -//go:noescape -func Yntohs(tls *TLS, n Tuint16_t) (r Tuint16_t) - -//go:noescape -func Yobstack_free(t *TLS, obstack, obj uintptr) - -//go:noescape -func Yobstack_vprintf(t *TLS, obstack, template, va uintptr) int32 - -//go:noescape -func Yopen(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) - -//go:noescape -func Yopen64(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) - -//go:noescape -func Yopen_by_handle_at(tls *TLS, mount_fd int32, handle uintptr, flags int32) (r int32) - -//go:noescape -func Yopen_memstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) - -//go:noescape -func Yopen_wmemstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) - -//go:noescape -func Yopenat(tls *TLS, fd int32, filename uintptr, flags int32, va uintptr) (r int32) - -//go:noescape -func Yopendir(tls *TLS, name uintptr) (r uintptr) - -//go:noescape -func Yopenlog(tls *TLS, ident uintptr, opt int32, facility int32) - -//go:noescape -func Yopenpty(tls *TLS, pm uintptr, ps uintptr, name uintptr, tio uintptr, ws uintptr) (r int32) - -//go:noescape -func Ypathconf(tls *TLS, path uintptr, name int32) (r int64) - -//go:noescape -func Ypause(tls *TLS) (r int32) - -//go:noescape -func Ypclose(tls *TLS, f uintptr) (r1 int32) - -//go:noescape -func Yperror(tls *TLS, msg uintptr) - -//go:noescape -func Ypersonality(tls *TLS, persona uint64) (r int32) - -//go:noescape -func Ypipe(tls *TLS, fd uintptr) (r int32) - -//go:noescape -func Ypipe2(tls *TLS, fd uintptr, flag int32) (r int32) - -//go:noescape -func Ypivot_root(tls *TLS, new1 uintptr, old uintptr) (r int32) - -//go:noescape -func Ypoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) - -//go:noescape -func Ypopen(t *TLS, command, type1 uintptr) uintptr - -//go:noescape -func Yposix_close(tls *TLS, fd int32, flags int32) (r int32) - -//go:noescape -func Yposix_fadvise(tls *TLS, fd int32, base Toff_t, len1 Toff_t, advice int32) (r int32) - -//go:noescape -func Yposix_fallocate(tls *TLS, fd int32, base Toff_t, len1 Toff_t) (r int32) - -//go:noescape -func Yposix_madvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) - -//go:noescape -func Yposix_openpt(tls *TLS, flags int32) (r1 int32) - -//go:noescape -func Yposix_spawn_file_actions_addchdir_np(tls *TLS, fa uintptr, path uintptr) (r int32) - -//go:noescape -func Yposix_spawn_file_actions_addclose(tls *TLS, fa uintptr, fd int32) (r int32) - -//go:noescape -func Yposix_spawn_file_actions_adddup2(tls *TLS, fa uintptr, srcfd int32, fd int32) (r int32) - -//go:noescape -func Yposix_spawn_file_actions_addfchdir_np(tls *TLS, fa uintptr, fd int32) (r int32) - -//go:noescape -func Yposix_spawn_file_actions_addopen(tls *TLS, fa uintptr, fd int32, path uintptr, flags int32, mode Tmode_t) (r int32) - -//go:noescape -func Yposix_spawn_file_actions_destroy(tls *TLS, fa uintptr) (r int32) - -//go:noescape -func Yposix_spawn_file_actions_init(tls *TLS, fa uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_destroy(tls *TLS, attr uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_getflags(tls *TLS, attr uintptr, flags uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_getpgroup(tls *TLS, attr uintptr, pgrp uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_getschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_getschedpolicy(tls *TLS, attr uintptr, policy uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_getsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_getsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_init(tls *TLS, attr uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_setflags(tls *TLS, attr uintptr, flags int16) (r int32) - -//go:noescape -func Yposix_spawnattr_setpgroup(tls *TLS, attr uintptr, pgrp Tpid_t) (r int32) - -//go:noescape -func Yposix_spawnattr_setschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_setschedpolicy(tls *TLS, attr uintptr, policy int32) (r int32) - -//go:noescape -func Yposix_spawnattr_setsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) - -//go:noescape -func Yposix_spawnattr_setsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) - -//go:noescape -func Ypow(tls *TLS, x1 float64, y1 float64) (r float64) - -//go:noescape -func Ypow10(tls *TLS, x float64) (r float64) - -//go:noescape -func Ypow10f(tls *TLS, x float32) (r float32) - -//go:noescape -func Ypow10l(tls *TLS, x float64) (r float64) - -//go:noescape -func Ypowf(tls *TLS, x1 float32, y1 float32) (r float32) - -//go:noescape -func Ypowl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32) - -//go:noescape -func Yprctl(tls *TLS, op int32, va uintptr) (r int32) - -//go:noescape -func Ypread(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) - -//go:noescape -func Ypreadv(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) - -//go:noescape -func Ypreadv2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) - -//go:noescape -func Yprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Yprlimit(tls *TLS, pid Tpid_t, resource int32, new_limit uintptr, old_limit uintptr) (r1 int32) - -//go:noescape -func Yprocess_vm_readv(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) - -//go:noescape -func Yprocess_vm_writev(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) - -//go:noescape -func Ypselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts uintptr, mask uintptr) (r int32) - -//go:noescape -func Ypsiginfo(tls *TLS, si uintptr, msg uintptr) - -//go:noescape -func Ypsignal(tls *TLS, sig int32, msg uintptr) - -//go:noescape -func Ypthread_atfork(tls *TLS, prepare, parent, child uintptr) int32 - -//go:noescape -func Ypthread_attr_destroy(tls *TLS, a uintptr) int32 - -//go:noescape -func Ypthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 - -//go:noescape -func Ypthread_attr_init(tls *TLS, a uintptr) int32 - -//go:noescape -func Ypthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) (r int32) - -//go:noescape -func Ypthread_attr_setscope(tls *TLS, a uintptr, scope int32) int32 - -//go:noescape -func Ypthread_attr_setstacksize(tls *TLS, a uintptr, stacksite Tsize_t) int32 - -//go:noescape -func Ypthread_cleanup_pop(tls *TLS, run int32) - -//go:noescape -func Ypthread_cleanup_push(tls *TLS, f, x uintptr) - -//go:noescape -func Ypthread_cond_broadcast(tls *TLS, c uintptr) int32 - -//go:noescape -func Ypthread_cond_destroy(tls *TLS, c uintptr) int32 - -//go:noescape -func Ypthread_cond_init(tls *TLS, c, a uintptr) int32 - -//go:noescape -func Ypthread_cond_signal(tls *TLS, c uintptr) int32 - -//go:noescape -func Ypthread_cond_timedwait(tls *TLS, c, m, ts uintptr) (r int32) - -//go:noescape -func Ypthread_cond_wait(tls *TLS, c, m uintptr) int32 - -//go:noescape -func Ypthread_create(tls *TLS, res, attrp, entry, arg uintptr) int32 - -//go:noescape -func Ypthread_detach(tls *TLS, t uintptr) int32 - -//go:noescape -func Ypthread_equal(tls *TLS, t, u uintptr) int32 - -//go:noescape -func Ypthread_exit(tls *TLS, result uintptr) - -//go:noescape -func Ypthread_getspecific(tls *TLS, k Tpthread_key_t) uintptr - -//go:noescape -func Ypthread_join(tls *TLS, t Tpthread_t, res uintptr) (r int32) - -//go:noescape -func Ypthread_key_create(tls *TLS, k uintptr, dtor uintptr) int32 - -//go:noescape -func Ypthread_key_delete(tls *TLS, k Tpthread_key_t) int32 - -//go:noescape -func Ypthread_mutex_destroy(tls *TLS, m uintptr) int32 - -//go:noescape -func Ypthread_mutex_init(tls *TLS, m, a uintptr) int32 - -//go:noescape -func Ypthread_mutex_lock(tls *TLS, m uintptr) int32 - -//go:noescape -func Ypthread_mutex_trylock(tls *TLS, m uintptr) int32 - -//go:noescape -func Ypthread_mutex_unlock(tls *TLS, m uintptr) int32 - -//go:noescape -func Ypthread_mutexattr_destroy(tls *TLS, a uintptr) int32 - -//go:noescape -func Ypthread_mutexattr_init(tls *TLS, a uintptr) int32 - -//go:noescape -func Ypthread_mutexattr_settype(tls *TLS, a uintptr, typ int32) int32 - -//go:noescape -func Ypthread_self(tls *TLS) uintptr - -//go:noescape -func Ypthread_setcancelstate(tls *TLS, new int32, old uintptr) int32 - -//go:noescape -func Ypthread_setspecific(tls *TLS, k Tpthread_key_t, x uintptr) int32 - -//go:noescape -func Ypthread_sigmask(tls *TLS, now int32, set, old uintptr) int32 - -//go:noescape -func Yptrace(tls *TLS, req int32, va uintptr) (r int64) - -//go:noescape -func Yptsname(tls *TLS, fd int32) (r uintptr) - -//go:noescape -func Yptsname_r(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Yputc(tls *TLS, c1 int32, f1 uintptr) (r int32) - -//go:noescape -func Yputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) - -//go:noescape -func Yputchar(tls *TLS, c1 int32) (r int32) - -//go:noescape -func Yputchar_unlocked(tls *TLS, c int32) (r int32) - -//go:noescape -func Yputenv(tls *TLS, s uintptr) (r int32) - -//go:noescape -func Yputgrent(tls *TLS, gr uintptr, f uintptr) (r1 int32) - -//go:noescape -func Yputpwent(tls *TLS, pw uintptr, f uintptr) (r int32) - -//go:noescape -func Yputs(tls *TLS, s uintptr) (r1 int32) - -//go:noescape -func Yputspent(tls *TLS, sp uintptr, f uintptr) (r int32) - -//go:noescape -func Ypututline(tls *TLS, ut uintptr) (r uintptr) - -//go:noescape -func Ypututxline(tls *TLS, ut uintptr) (r uintptr) - -//go:noescape -func Yputw(tls *TLS, _x int32, f uintptr) (r int32) - -//go:noescape -func Yputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) - -//go:noescape -func Yputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) - -//go:noescape -func Yputwchar(tls *TLS, c Twchar_t) (r Twint_t) - -//go:noescape -func Yputwchar_unlocked(tls *TLS, c Twchar_t) (r Twint_t) - -//go:noescape -func Ypwrite(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) - -//go:noescape -func Ypwritev(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) - -//go:noescape -func Ypwritev2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) - -//go:noescape -func Yqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun) - -//go:noescape -func Yqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) - -//go:noescape -func Yquick_exit(tls *TLS, code int32) - -//go:noescape -func Yquotactl(tls *TLS, cmd int32, special uintptr, id int32, addr uintptr) (r int32) - -//go:noescape -func Yraise(tls *TLS, sig int32) (r int32) - -//go:noescape -func Yrand(tls *TLS) (r int32) - -//go:noescape -func Yrand_r(tls *TLS, seed uintptr) (r int32) - -//go:noescape -func Yrandom(tls *TLS) (r int64) - -//go:noescape -func Yrandom_r(t *TLS, buf, result uintptr) int32 - -//go:noescape -func Yread(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) - -//go:noescape -func Yreadahead(tls *TLS, fd int32, pos Toff_t, len1 Tsize_t) (r Tssize_t) - -//go:noescape -func Yreaddir(tls *TLS, dir uintptr) (r uintptr) - -//go:noescape -func Yreaddir64(tls *TLS, dir uintptr) (r uintptr) - -//go:noescape -func Yreaddir_r(tls *TLS, dir uintptr, buf uintptr, result uintptr) (r int32) - -//go:noescape -func Yreadlink(tls *TLS, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) - -//go:noescape -func Yreadlinkat(tls *TLS, fd int32, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) - -//go:noescape -func Yreadv(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) - -//go:noescape -func Yrealloc(tls *TLS, p uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Yreallocarray(tls *TLS, ptr uintptr, m Tsize_t, n Tsize_t) (r uintptr) - -//go:noescape -func Yrealpath(tls *TLS, filename uintptr, resolved uintptr) (r uintptr) - -//go:noescape -func Yreboot(tls *TLS, type1 int32) (r int32) - -//go:noescape -func Yrecv(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) - -//go:noescape -func Yrecvfrom(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen uintptr) (r1 Tssize_t) - -//go:noescape -func Yrecvmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32, timeout uintptr) (r int32) - -//go:noescape -func Yrecvmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r2 Tssize_t) - -//go:noescape -func Yregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) - -//go:noescape -func Yregerror(tls *TLS, e int32, preg uintptr, buf uintptr, size Tsize_t) (r Tsize_t) - -//go:noescape -func Yregexec(tls *TLS, preg uintptr, string1 uintptr, nmatch Tsize_t, pmatch uintptr, eflags int32) (r int32) - -//go:noescape -func Yregfree(tls *TLS, preg uintptr) - -//go:noescape -func Yremainder(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yremainderf(tls *TLS, x float32, y float32) (r float32) - -//go:noescape -func Yremainderl(tls *TLS, x float64, y float64) (r float64) - -//go:noescape -func Yremap_file_pages(tls *TLS, addr uintptr, size Tsize_t, prot int32, pgoff Tsize_t, flags int32) (r int32) - -//go:noescape -func Yremove(tls *TLS, path uintptr) (r1 int32) - -//go:noescape -func Yremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) - -//go:noescape -func Yremque(tls *TLS, element uintptr) - -//go:noescape -func Yremquo(tls *TLS, x float64, y float64, quo uintptr) (r float64) - -//go:noescape -func Yremquof(tls *TLS, x float32, y float32, quo uintptr) (r float32) - -//go:noescape -func Yremquol(tls *TLS, x float64, y float64, quo uintptr) (r float64) - -//go:noescape -func Yrename(tls *TLS, old uintptr, new1 uintptr) (r int32) - -//go:noescape -func Yrenameat(tls *TLS, oldfd int32, old uintptr, newfd int32, new1 uintptr) (r int32) - -//go:noescape -func Yrenameat2(t *TLS, olddirfd int32, oldpath uintptr, newdirfd int32, newpath uintptr, flags int32) int32 - -//go:noescape -func Yres_init(tls *TLS) (r int32) - -//go:noescape -func Yres_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, data uintptr, datalen int32, newrr uintptr, buf uintptr, buflen int32) (r int32) - -//go:noescape -func Yres_send(tls *TLS, _msg uintptr, _msglen int32, _answer uintptr, _anslen int32) (r int32) - -//go:noescape -func Yrewind(tls *TLS, f uintptr) - -//go:noescape -func Yrewinddir(tls *TLS, dir uintptr) - -//go:noescape -func Yrindex(tls *TLS, s uintptr, c int32) (r uintptr) - -//go:noescape -func Yrint(tls *TLS, x float64) (r float64) - -//go:noescape -func Yrintf(tls *TLS, x float32) (r float32) - -//go:noescape -func Yrintl(tls *TLS, x float64) (r float64) - -//go:noescape -func Yrmdir(tls *TLS, path uintptr) (r int32) - -//go:noescape -func Yround(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Yroundf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Yroundl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ysbrk(tls *TLS, inc Tintptr_t) (r uintptr) - -//go:noescape -func Yscalb(tls *TLS, x float64, fn float64) (r float64) - -//go:noescape -func Yscalbf(tls *TLS, x float32, fn float32) (r float32) - -//go:noescape -func Yscalbln(tls *TLS, x float64, n int64) (r float64) - -//go:noescape -func Yscalblnf(tls *TLS, x float32, n int64) (r float32) - -//go:noescape -func Yscalblnl(tls *TLS, x float64, n int64) (r float64) - -//go:noescape -func Yscalbn(tls *TLS, x float64, n int32) (r float64) - -//go:noescape -func Yscalbnf(tls *TLS, x float32, n int32) (r float32) - -//go:noescape -func Yscalbnl(tls *TLS, x float64, n int32) (r float64) - -//go:noescape -func Yscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) - -//go:noescape -func Yscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Ysched_yield(tls *TLS) int32 - -//go:noescape -func Ysecure_getenv(tls *TLS, name uintptr) (r uintptr) - -//go:noescape -func Yseed48(tls *TLS, s uintptr) (r uintptr) - -//go:noescape -func Yseekdir(tls *TLS, dir uintptr, off int64) - -//go:noescape -func Yselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, tv uintptr) (r int32) - -//go:noescape -func Ysemctl(tls *TLS, id int32, num int32, cmd int32, va uintptr) (r1 int32) - -//go:noescape -func Ysemget(tls *TLS, key Tkey_t, n int32, fl int32) (r int32) - -//go:noescape -func Ysemop(tls *TLS, id int32, buf uintptr, n Tsize_t) (r int32) - -//go:noescape -func Ysemtimedop(tls *TLS, id int32, buf uintptr, n Tsize_t, ts uintptr) (r int32) - -//go:noescape -func Ysend(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) - -//go:noescape -func Ysendfile(tls *TLS, out_fd int32, in_fd int32, ofs uintptr, count Tsize_t) (r Tssize_t) - -//go:noescape -func Ysendmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32) (r1 int32) - -//go:noescape -func Ysendmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r1 Tssize_t) - -//go:noescape -func Ysendto(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen Tsocklen_t) (r1 Tssize_t) - -//go:noescape -func Ysetbuf(tls *TLS, f uintptr, buf uintptr) - -//go:noescape -func Ysetbuffer(tls *TLS, f uintptr, buf uintptr, size Tsize_t) - -//go:noescape -func Ysetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Ysetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) (r int32) - -//go:noescape -func Ysetfsgid(tls *TLS, gid Tgid_t) (r int32) - -//go:noescape -func Ysetfsuid(tls *TLS, uid Tuid_t) (r int32) - -//go:noescape -func Ysetgid(tls *TLS, gid Tgid_t) (r int32) - -//go:noescape -func Ysetgrent(tls *TLS) - -//go:noescape -func Ysethostent(tls *TLS, x int32) - -//go:noescape -func Ysethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) - -//go:noescape -func Ysetitimer(tls *TLS, which int32, new1 uintptr, old uintptr) (r1 int32) - -//go:noescape -func Ysetjmp(t *TLS, env uintptr) int32 - -//go:noescape -func Ysetkey(tls *TLS, key uintptr) - -//go:noescape -func Ysetlinebuf(tls *TLS, f uintptr) - -//go:noescape -func Ysetlocale(tls *TLS, cat int32, name uintptr) (r uintptr) - -//go:noescape -func Ysetlogmask(tls *TLS, maskpri int32) (r int32) - -//go:noescape -func Ysetmntent(tls *TLS, name uintptr, mode uintptr) (r uintptr) - -//go:noescape -func Ysetnetent(tls *TLS, x int32) - -//go:noescape -func Ysetns(tls *TLS, fd int32, nstype int32) (r int32) - -//go:noescape -func Ysetpgid(tls *TLS, pid Tpid_t, pgid Tpid_t) (r int32) - -//go:noescape -func Ysetpgrp(tls *TLS) (r Tpid_t) - -//go:noescape -func Ysetpriority(tls *TLS, which int32, who Tid_t, prio int32) (r int32) - -//go:noescape -func Ysetprotoent(tls *TLS, stayopen int32) - -//go:noescape -func Ysetpwent(tls *TLS) - -//go:noescape -func Ysetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) - -//go:noescape -func Ysetrlimit64(tls *TLS, resource int32, rlim uintptr) (r int32) - -//go:noescape -func Ysetservent(tls *TLS, stayopen int32) - -//go:noescape -func Ysetsid(tls *TLS) (r Tpid_t) - -//go:noescape -func Ysetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen Tsocklen_t) (r2 int32) - -//go:noescape -func Ysetspent(tls *TLS) - -//go:noescape -func Ysetstate(tls *TLS, state uintptr) (r uintptr) - -//go:noescape -func Ysettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) - -//go:noescape -func Ysetuid(tls *TLS, uid Tuid_t) (r int32) - -//go:noescape -func Ysetusershell(tls *TLS) - -//go:noescape -func Ysetutent(tls *TLS) - -//go:noescape -func Ysetutxent(tls *TLS) - -//go:noescape -func Ysetvbuf(tls *TLS, f uintptr, buf uintptr, type1 int32, size Tsize_t) (r int32) - -//go:noescape -func Ysetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) - -//go:noescape -func Yshm_open(tls *TLS, name uintptr, flag int32, mode Tmode_t) (r int32) - -//go:noescape -func Yshm_unlink(tls *TLS, name uintptr) (r int32) - -//go:noescape -func Yshmat(tls *TLS, id int32, addr uintptr, flag int32) (r uintptr) - -//go:noescape -func Yshmctl(tls *TLS, id int32, cmd int32, buf uintptr) (r1 int32) - -//go:noescape -func Yshmdt(tls *TLS, addr uintptr) (r int32) - -//go:noescape -func Yshmget(tls *TLS, key Tkey_t, size Tsize_t, flag int32) (r int32) - -//go:noescape -func Yshutdown(tls *TLS, fd int32, how int32) (r1 int32) - -//go:noescape -func Ysigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r int32) - -//go:noescape -func Ysigaddset(tls *TLS, set uintptr, sig int32) (r int32) - -//go:noescape -func Ysigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) - -//go:noescape -func Ysigandset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) - -//go:noescape -func Ysigdelset(tls *TLS, set uintptr, sig int32) (r int32) - -//go:noescape -func Ysigemptyset(tls *TLS, set uintptr) (r int32) - -//go:noescape -func Ysigfillset(tls *TLS, set uintptr) (r int32) - -//go:noescape -func Ysigisemptyset(tls *TLS, set uintptr) (r int32) - -//go:noescape -func Ysigismember(tls *TLS, set uintptr, sig int32) (r int32) - -//go:noescape -func Ysignal(tls *TLS, signum int32, handler uintptr) (r uintptr) - -//go:noescape -func Ysignalfd(tls *TLS, fd int32, sigs uintptr, flags int32) (r int32) - -//go:noescape -func Ysignificand(tls *TLS, x float64) (r float64) - -//go:noescape -func Ysignificandf(tls *TLS, x float32) (r float32) - -//go:noescape -func Ysigorset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) - -//go:noescape -func Ysigpending(tls *TLS, set uintptr) (r int32) - -//go:noescape -func Ysigprocmask(tls *TLS, how int32, set uintptr, old uintptr) (r1 int32) - -//go:noescape -func Ysigqueue(tls *TLS, pid Tpid_t, sig int32, value Tsigval) (r1 int32) - -//go:noescape -func Ysigsuspend(tls *TLS, mask uintptr) (r int32) - -//go:noescape -func Ysigtimedwait(tls *TLS, mask uintptr, si uintptr, timeout uintptr) (r int32) - -//go:noescape -func Ysigwait(tls *TLS, mask uintptr, sig uintptr) (r int32) - -//go:noescape -func Ysigwaitinfo(tls *TLS, mask uintptr, si uintptr) (r int32) - -//go:noescape -func Ysin(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Ysincos(tls *TLS, x3 float64, sin uintptr, cos uintptr) - -//go:noescape -func Ysincosf(tls *TLS, x3 float32, sin uintptr, cos uintptr) - -//go:noescape -func Ysincosl(tls *TLS, x float64, sin uintptr, cos uintptr) - -//go:noescape -func Ysinf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Ysinh(tls *TLS, x float64) (r float64) - -//go:noescape -func Ysinhf(tls *TLS, x float32) (r float32) - -//go:noescape -func Ysinhl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ysinl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ysleep(tls *TLS, seconds uint32) (r uint32) - -//go:noescape -func Ysnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Ysockatmark(tls *TLS, s int32) (r int32) - -//go:noescape -func Ysocket(tls *TLS, domain int32, type1 int32, protocol int32) (r1 int32) - -//go:noescape -func Ysocketpair(tls *TLS, domain int32, type1 int32, protocol int32, fd uintptr) (r2 int32) - -//go:noescape -func Ysplice(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) - -//go:noescape -func Ysprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Ysqrt(tls *TLS, x1 float64) (r1 float64) - -//go:noescape -func Ysqrtf(tls *TLS, x1 float32) (r1 float32) - -//go:noescape -func Ysqrtl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ysrand(tls *TLS, s uint32) - -//go:noescape -func Ysrand48(tls *TLS, seed int64) - -//go:noescape -func Ysrandom(tls *TLS, seed uint32) - -//go:noescape -func Ysscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Ystat(tls *TLS, path uintptr, buf uintptr) (r int32) - -//go:noescape -func Ystat64(tls *TLS, path uintptr, buf uintptr) (r int32) - -//go:noescape -func Ystatvfs(tls *TLS, path uintptr, buf uintptr) (r int32) - -//go:noescape -func Ystatx(tls *TLS, dirfd int32, path uintptr, flags int32, mask uint32, stx uintptr) (r int32) - -//go:noescape -func Ystime(tls *TLS, t uintptr) (r int32) - -//go:noescape -func Ystpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) - -//go:noescape -func Ystpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ystrcasecmp(tls *TLS, _l uintptr, _r uintptr) (r1 int32) - -//go:noescape -func Ystrcasecmp_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) - -//go:noescape -func Ystrcasestr(tls *TLS, h uintptr, n uintptr) (r uintptr) - -//go:noescape -func Ystrcat(tls *TLS, dest uintptr, src uintptr) (r uintptr) - -//go:noescape -func Ystrchr(tls *TLS, s uintptr, c int32) (r1 uintptr) - -//go:noescape -func Ystrchrnul(tls *TLS, s uintptr, c int32) (r uintptr) - -//go:noescape -func Ystrcmp(tls *TLS, l uintptr, r uintptr) (r1 int32) - -//go:noescape -func Ystrcoll(tls *TLS, l uintptr, r uintptr) (r1 int32) - -//go:noescape -func Ystrcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) - -//go:noescape -func Ystrcpy(tls *TLS, dest uintptr, src uintptr) (r uintptr) - -//go:noescape -func Ystrcspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) - -//go:noescape -func Ystrdup(tls *TLS, s uintptr) (r uintptr) - -//go:noescape -func Ystrerror(tls *TLS, e int32) (r uintptr) - -//go:noescape -func Ystrerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) - -//go:noescape -func Ystrerror_r(tls *TLS, err int32, buf uintptr, buflen Tsize_t) (r int32) - -//go:noescape -func Ystrfmon(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r Tssize_t) - -//go:noescape -func Ystrfmon_l(tls *TLS, s uintptr, n Tsize_t, loc Tlocale_t, fmt uintptr, va uintptr) (r Tssize_t) - -//go:noescape -func Ystrftime(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) - -//go:noescape -func Ystrftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) - -//go:noescape -func Ystrlcat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) - -//go:noescape -func Ystrlcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) - -//go:noescape -func Ystrlen(tls *TLS, s uintptr) (r Tsize_t) - -//go:noescape -func Ystrncasecmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) - -//go:noescape -func Ystrncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, loc Tlocale_t) (r1 int32) - -//go:noescape -func Ystrncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ystrncmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) - -//go:noescape -func Ystrncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ystrndup(tls *TLS, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ystrnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) - -//go:noescape -func Ystrpbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) - -//go:noescape -func Ystrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) - -//go:noescape -func Ystrrchr(tls *TLS, s uintptr, c int32) (r uintptr) - -//go:noescape -func Ystrsep(tls *TLS, str uintptr, sep uintptr) (r uintptr) - -//go:noescape -func Ystrsignal(tls *TLS, signum int32) (r uintptr) - -//go:noescape -func Ystrspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) - -//go:noescape -func Ystrstr(tls *TLS, h uintptr, n uintptr) (r uintptr) - -//go:noescape -func Ystrtod(tls *TLS, s uintptr, p uintptr) (r float64) - -//go:noescape -func Ystrtod_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) - -//go:noescape -func Ystrtof(tls *TLS, s uintptr, p uintptr) (r float32) - -//go:noescape -func Ystrtof_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float32) - -//go:noescape -func Ystrtoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) - -//go:noescape -func Ystrtok(tls *TLS, s uintptr, sep uintptr) (r uintptr) - -//go:noescape -func Ystrtok_r(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) - -//go:noescape -func Ystrtol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) - -//go:noescape -func Ystrtold(tls *TLS, s uintptr, p uintptr) (r float64) - -//go:noescape -func Ystrtold_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) - -//go:noescape -func Ystrtoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) - -//go:noescape -func Ystrtoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) - -//go:noescape -func Ystrtoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) - -//go:noescape -func Ystrtoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) - -//go:noescape -func Ystrverscmp(tls *TLS, l0 uintptr, r0 uintptr) (r1 int32) - -//go:noescape -func Ystrxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) - -//go:noescape -func Ystrxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) - -//go:noescape -func Yswab(tls *TLS, _src uintptr, _dest uintptr, n Tssize_t) - -//go:noescape -func Yswapoff(tls *TLS, path uintptr) (r int32) - -//go:noescape -func Yswapon(tls *TLS, path uintptr, flags int32) (r int32) - -//go:noescape -func Yswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Yswscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Ysymlink(tls *TLS, existing uintptr, new1 uintptr) (r int32) - -//go:noescape -func Ysymlinkat(tls *TLS, existing uintptr, fd int32, new1 uintptr) (r int32) - -//go:noescape -func Ysync(tls *TLS) - -//go:noescape -func Ysync_file_range(tls *TLS, fd int32, pos Toff_t, len1 Toff_t, flags uint32) (r int32) - -//go:noescape -func Ysyncfs(tls *TLS, fd int32) (r int32) - -//go:noescape -func Ysyscall(tls *TLS, n int64, va uintptr) (r int64) - -//go:noescape -func Ysysconf(tls *TLS, name int32) (r int64) - -//go:noescape -func Ysysctlbyname(t *TLS, name, oldp, oldlenp, newp uintptr, newlen Tsize_t) int32 - -//go:noescape -func Ysysinfo(tls *TLS, info uintptr) (r int32) - -//go:noescape -func Ysyslog(tls *TLS, priority int32, message uintptr, va uintptr) - -//go:noescape -func Ysystem(t *TLS, command uintptr) int32 - -//go:noescape -func Ytan(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Ytanf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Ytanh(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Ytanhf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Ytanhl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ytanl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ytcdrain(tls *TLS, fd int32) (r int32) - -//go:noescape -func Ytcflow(tls *TLS, fd int32, action int32) (r int32) - -//go:noescape -func Ytcflush(tls *TLS, fd int32, queue int32) (r int32) - -//go:noescape -func Ytcgetattr(tls *TLS, fd int32, tio uintptr) (r int32) - -//go:noescape -func Ytcgetpgrp(tls *TLS, fd int32) (r Tpid_t) - -//go:noescape -func Ytcgetsid(tls *TLS, fd int32) (r Tpid_t) - -//go:noescape -func Ytcgetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) - -//go:noescape -func Ytcsendbreak(tls *TLS, fd int32, dur int32) (r int32) - -//go:noescape -func Ytcsetattr(tls *TLS, fd int32, act int32, tio uintptr) (r int32) - -//go:noescape -func Ytcsetpgrp(tls *TLS, fd int32, pgrp Tpid_t) (r int32) - -//go:noescape -func Ytcsetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) - -//go:noescape -func Ytdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) - -//go:noescape -func Ytdestroy(tls *TLS, root uintptr, freekey uintptr) - -//go:noescape -func Ytee(tls *TLS, src int32, dest int32, len1 Tsize_t, flags uint32) (r Tssize_t) - -//go:noescape -func Ytelldir(tls *TLS, dir uintptr) (r int64) - -//go:noescape -func Ytempnam(tls *TLS, dir uintptr, pfx uintptr) (r1 uintptr) - -//go:noescape -func Ytextdomain(tls *TLS, domainname uintptr) (r uintptr) - -//go:noescape -func Ytfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) - -//go:noescape -func Ytgamma(tls *TLS, x3 float64) (r1 float64) - -//go:noescape -func Ytgammaf(tls *TLS, x float32) (r float32) - -//go:noescape -func Ytgammal(tls *TLS, x float64) (r float64) - -//go:noescape -func Ytime(tls *TLS, t uintptr) (r Ttime_t) - -//go:noescape -func Ytimegm(tls *TLS, tm uintptr) (r Ttime_t) - -//go:noescape -func Ytimer_delete(tls *TLS, t Ttimer_t) (r int32) - -//go:noescape -func Ytimer_getoverrun(tls *TLS, t Ttimer_t) (r int32) - -//go:noescape -func Ytimer_gettime(tls *TLS, t Ttimer_t, val uintptr) (r int32) - -//go:noescape -func Ytimer_settime(tls *TLS, t Ttimer_t, flags int32, val uintptr, old uintptr) (r int32) - -//go:noescape -func Ytimerfd_create(tls *TLS, clockid int32, flags int32) (r int32) - -//go:noescape -func Ytimerfd_gettime(tls *TLS, fd int32, cur uintptr) (r int32) - -//go:noescape -func Ytimerfd_settime(tls *TLS, fd int32, flags int32, new1 uintptr, old uintptr) (r int32) - -//go:noescape -func Ytimes(tls *TLS, tms uintptr) (r Tclock_t) - -//go:noescape -func Ytimespec_get(tls *TLS, ts uintptr, base int32) (r int32) - -//go:noescape -func Ytmpfile(tls *TLS) (r uintptr) - -//go:noescape -func Ytmpnam(tls *TLS, buf uintptr) (r1 uintptr) - -//go:noescape -func Ytoascii(tls *TLS, c int32) (r int32) - -//go:noescape -func Ytolower(tls *TLS, c int32) (r int32) - -//go:noescape -func Ytolower_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Ytoupper(tls *TLS, c int32) (r int32) - -//go:noescape -func Ytoupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) - -//go:noescape -func Ytowctrans(tls *TLS, wc Twint_t, trans Twctrans_t) (r Twint_t) - -//go:noescape -func Ytowctrans_l(tls *TLS, c Twint_t, t Twctrans_t, l Tlocale_t) (r Twint_t) - -//go:noescape -func Ytowlower(tls *TLS, wc Twint_t) (r Twint_t) - -//go:noescape -func Ytowlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) - -//go:noescape -func Ytowupper(tls *TLS, wc Twint_t) (r Twint_t) - -//go:noescape -func Ytowupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) - -//go:noescape -func Ytrunc(tls *TLS, x3 float64) (r float64) - -//go:noescape -func Ytruncate(tls *TLS, path uintptr, length Toff_t) (r int32) - -//go:noescape -func Ytruncf(tls *TLS, x3 float32) (r float32) - -//go:noescape -func Ytruncl(tls *TLS, x float64) (r float64) - -//go:noescape -func Ytsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) - -//go:noescape -func Yttyname(tls *TLS, fd int32) (r uintptr) - -//go:noescape -func Yttyname_r(tls *TLS, fd int32, name uintptr, size Tsize_t) (r int32) - -//go:noescape -func Ytwalk(tls *TLS, root uintptr, action uintptr) - -//go:noescape -func Ytzset(tls *TLS) - -//go:noescape -func Yualarm(tls *TLS, value uint32, interval uint32) (r uint32) - -//go:noescape -func Yulckpwdf(tls *TLS) (r int32) - -//go:noescape -func Yulimit(tls *TLS, cmd int32, va uintptr) (r int64) - -//go:noescape -func Yumask(tls *TLS, mode Tmode_t) (r Tmode_t) - -//go:noescape -func Yumount(tls *TLS, special uintptr) (r int32) - -//go:noescape -func Yumount2(tls *TLS, special uintptr, flags int32) (r int32) - -//go:noescape -func Yuname(tls *TLS, uts uintptr) (r int32) - -//go:noescape -func Yungetc(tls *TLS, c int32, f uintptr) (r int32) - -//go:noescape -func Yungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) - -//go:noescape -func Yunlink(tls *TLS, path uintptr) (r int32) - -//go:noescape -func Yunlinkat(tls *TLS, fd int32, path uintptr, flag int32) (r int32) - -//go:noescape -func Yunlockpt(tls *TLS, fd int32) (r int32) - -//go:noescape -func Yunsetenv(tls *TLS, name uintptr) (r int32) - -//go:noescape -func Yunshare(tls *TLS, flags int32) (r int32) - -//go:noescape -func Yupdwtmp(tls *TLS, f uintptr, u uintptr) - -//go:noescape -func Yupdwtmpx(tls *TLS, f uintptr, u uintptr) - -//go:noescape -func Yuselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) - -//go:noescape -func Yusleep(tls *TLS, useconds uint32) (r int32) - -//go:noescape -func Yutime(tls *TLS, path uintptr, times uintptr) (r int32) - -//go:noescape -func Yutimensat(tls *TLS, fd int32, path uintptr, times uintptr, flags int32) (r1 int32) - -//go:noescape -func Yutimes(tls *TLS, path uintptr, times uintptr) (r int32) - -//go:noescape -func Yuuid_copy(t *TLS, dst, src uintptr) - -//go:noescape -func Yuuid_generate_random(t *TLS, out uintptr) - -//go:noescape -func Yuuid_parse(t *TLS, in uintptr, uu uintptr) int32 - -//go:noescape -func Yuuid_unparse(t *TLS, uu, out uintptr) - -//go:noescape -func Yvasprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvdprintf(tls *TLS, fd int32, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yverr(tls *TLS, status int32, fmt uintptr, ap Tva_list) - -//go:noescape -func Yverrx(tls *TLS, status int32, fmt uintptr, ap Tva_list) - -//go:noescape -func Yversionsort(tls *TLS, a uintptr, b uintptr) (r int32) - -//go:noescape -func Yvfork(tls *TLS) (r Tpid_t) - -//go:noescape -func Yvfprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvfwprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvhangup(tls *TLS) (r int32) - -//go:noescape -func Yvmsplice(tls *TLS, fd int32, iov uintptr, cnt Tsize_t, flags uint32) (r Tssize_t) - -//go:noescape -func Yvprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvsnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvsprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvsscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r1 int32) - -//go:noescape -func Yvswscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvwarn(tls *TLS, fmt uintptr, ap Tva_list) - -//go:noescape -func Yvwarnx(tls *TLS, fmt uintptr, ap Tva_list) - -//go:noescape -func Yvwprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Yvwscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) - -//go:noescape -func Ywait(tls *TLS, status uintptr) (r Tpid_t) - -//go:noescape -func Ywait3(tls *TLS, status uintptr, options int32, usage uintptr) (r Tpid_t) - -//go:noescape -func Ywait4(tls *TLS, pid Tpid_t, status uintptr, options int32, ru uintptr) (r1 Tpid_t) - -//go:noescape -func Ywaitid(tls *TLS, type1 Tidtype_t, id Tid_t, info uintptr, options int32) (r int32) - -//go:noescape -func Ywaitpid(tls *TLS, pid Tpid_t, status uintptr, options int32) (r Tpid_t) - -//go:noescape -func Ywarn(tls *TLS, fmt uintptr, va uintptr) - -//go:noescape -func Ywarnx(tls *TLS, fmt uintptr, va uintptr) - -//go:noescape -func Ywcpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) - -//go:noescape -func Ywcpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ywcrtomb(tls *TLS, s uintptr, wc Twchar_t, st uintptr) (r Tsize_t) - -//go:noescape -func Ywcscasecmp(tls *TLS, l uintptr, r uintptr) (r1 int32) - -//go:noescape -func Ywcscasecmp_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) - -//go:noescape -func Ywcscat(tls *TLS, dest uintptr, src uintptr) (r uintptr) - -//go:noescape -func Ywcschr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) - -//go:noescape -func Ywcscmp(tls *TLS, l uintptr, r uintptr) (r1 int32) - -//go:noescape -func Ywcscoll(tls *TLS, l uintptr, r uintptr) (r1 int32) - -//go:noescape -func Ywcscoll_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) - -//go:noescape -func Ywcscpy(tls *TLS, d uintptr, s uintptr) (r uintptr) - -//go:noescape -func Ywcscspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) - -//go:noescape -func Ywcsdup(tls *TLS, s uintptr) (r uintptr) - -//go:noescape -func Ywcsftime(tls *TLS, wcs uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) - -//go:noescape -func Ywcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) - -//go:noescape -func Ywcslen(tls *TLS, s uintptr) (r Tsize_t) - -//go:noescape -func Ywcsncasecmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) - -//go:noescape -func Ywcsncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, locale Tlocale_t) (r1 int32) - -//go:noescape -func Ywcsncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ywcsncmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) - -//go:noescape -func Ywcsncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ywcsnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) - -//go:noescape -func Ywcsnrtombs(tls *TLS, dst uintptr, wcs uintptr, wn Tsize_t, n Tsize_t, st uintptr) (r Tsize_t) - -//go:noescape -func Ywcspbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) - -//go:noescape -func Ywcsrchr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) - -//go:noescape -func Ywcsrtombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t, st uintptr) (r Tsize_t) - -//go:noescape -func Ywcsspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) - -//go:noescape -func Ywcsstr(tls *TLS, h uintptr, n uintptr) (r uintptr) - -//go:noescape -func Ywcstod(tls *TLS, s uintptr, p uintptr) (r float64) - -//go:noescape -func Ywcstof(tls *TLS, s uintptr, p uintptr) (r float32) - -//go:noescape -func Ywcstoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) - -//go:noescape -func Ywcstok(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) - -//go:noescape -func Ywcstol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) - -//go:noescape -func Ywcstold(tls *TLS, s uintptr, p uintptr) (r float64) - -//go:noescape -func Ywcstoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) - -//go:noescape -func Ywcstombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t) (r Tsize_t) - -//go:noescape -func Ywcstoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) - -//go:noescape -func Ywcstoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) - -//go:noescape -func Ywcstoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) - -//go:noescape -func Ywcswcs(tls *TLS, haystack uintptr, needle uintptr) (r uintptr) - -//go:noescape -func Ywcswidth(tls *TLS, wcs uintptr, n Tsize_t) (r int32) - -//go:noescape -func Ywcsxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) - -//go:noescape -func Ywcsxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) - -//go:noescape -func Ywctob(tls *TLS, c Twint_t) (r int32) - -//go:noescape -func Ywctomb(tls *TLS, s uintptr, wc Twchar_t) (r int32) - -//go:noescape -func Ywctrans(tls *TLS, class uintptr) (r Twctrans_t) - -//go:noescape -func Ywctrans_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctrans_t) - -//go:noescape -func Ywctype(tls *TLS, s uintptr) (r Twctype_t) - -//go:noescape -func Ywctype_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctype_t) - -//go:noescape -func Ywcwidth(tls *TLS, wc Twchar_t) (r int32) - -//go:noescape -func Ywmemchr(tls *TLS, s uintptr, c Twchar_t, n Tsize_t) (r uintptr) - -//go:noescape -func Ywmemcmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) - -//go:noescape -func Ywmemcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ywmemmove(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) - -//go:noescape -func Ywmemset(tls *TLS, d uintptr, c Twchar_t, n Tsize_t) (r uintptr) - -//go:noescape -func Ywprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Ywrite(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) - -//go:noescape -func Ywritev(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) - -//go:noescape -func Ywscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) - -//go:noescape -func Yy0(tls *TLS, x float64) (r float64) - -//go:noescape -func Yy0f(tls *TLS, x float32) (r float32) - -//go:noescape -func Yy1(tls *TLS, x float64) (r float64) - -//go:noescape -func Yy1f(tls *TLS, x float32) (r float32) - -//go:noescape -func Yyn(tls *TLS, n int32, x float64) (r float64) - -//go:noescape -func Yynf(tls *TLS, n int32, x float32) (r float32) diff --git a/vendor/modernc.org/libc/asm_linux_amd64.s b/vendor/modernc.org/libc/asm_linux_amd64.s deleted file mode 100644 index 0264b405b..000000000 --- a/vendor/modernc.org/libc/asm_linux_amd64.s +++ /dev/null @@ -1,20946 +0,0 @@ -// Code generated for linux/amd64 by 'genasm', DO NOT EDIT. - -#include "funcdata.h" -#include "textflag.h" - -// func Y__assert_fail(tls *TLS, expr uintptr, file uintptr, line int32, func1 uintptr) -TEXT ·Y__assert_fail(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ expr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ file+16(FP), AX - MOVQ AX, 16(SP) - MOVL line+24(FP), AX - MOVL AX, 24(SP) - MOVQ func1+32(FP), AX - MOVQ AX, 32(SP) - CALL ·X__assert_fail(SB) - RET - -// func Y__builtin___memcpy_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (r uintptr) -TEXT ·Y__builtin___memcpy_chk(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ os+32(FP), AX - MOVQ AX, 32(SP) - CALL ·X__builtin___memcpy_chk(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Y__builtin___memmove_chk(t *TLS, dest, src uintptr, n, os Tsize_t) uintptr -TEXT ·Y__builtin___memmove_chk(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ os+32(FP), AX - MOVQ AX, 32(SP) - CALL ·X__builtin___memmove_chk(SB) - MOVQ 40(SP), AX - MOVQ AX, ret+40(FP) - RET - -// func Y__builtin___memset_chk(t *TLS, s uintptr, c int32, n, os Tsize_t) uintptr -TEXT ·Y__builtin___memset_chk(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ os+32(FP), AX - MOVQ AX, 32(SP) - CALL ·X__builtin___memset_chk(SB) - MOVQ 40(SP), AX - MOVQ AX, ret+40(FP) - RET - -// func Y__builtin___snprintf_chk(t *TLS, str uintptr, maxlen Tsize_t, flag int32, os Tsize_t, format, args uintptr) (r int32) -TEXT ·Y__builtin___snprintf_chk(SB),$64-60 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ str+8(FP), AX - MOVQ AX, 8(SP) - MOVQ maxlen+16(FP), AX - MOVQ AX, 16(SP) - MOVL flag+24(FP), AX - MOVL AX, 24(SP) - MOVQ os+32(FP), AX - MOVQ AX, 32(SP) - MOVQ format+40(FP), AX - MOVQ AX, 40(SP) - MOVQ args+48(FP), AX - MOVQ AX, 48(SP) - CALL ·X__builtin___snprintf_chk(SB) - MOVL 56(SP), AX - MOVL AX, r+56(FP) - RET - -// func Y__builtin___sprintf_chk(t *TLS, s uintptr, flag int32, os Tsize_t, format, args uintptr) (r int32) -TEXT ·Y__builtin___sprintf_chk(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL flag+16(FP), AX - MOVL AX, 16(SP) - MOVQ os+24(FP), AX - MOVQ AX, 24(SP) - MOVQ format+32(FP), AX - MOVQ AX, 32(SP) - MOVQ args+40(FP), AX - MOVQ AX, 40(SP) - CALL ·X__builtin___sprintf_chk(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Y__builtin___strcat_chk(t *TLS, dest, src uintptr, os Tsize_t) (r uintptr) -TEXT ·Y__builtin___strcat_chk(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ os+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin___strcat_chk(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Y__builtin___strcpy_chk(t *TLS, dest, src uintptr, os Tsize_t) uintptr -TEXT ·Y__builtin___strcpy_chk(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ os+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin___strcpy_chk(SB) - MOVQ 32(SP), AX - MOVQ AX, ret+32(FP) - RET - -// func Y__builtin___strncpy_chk(t *TLS, dest, src uintptr, n, os Tsize_t) (r uintptr) -TEXT ·Y__builtin___strncpy_chk(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ os+32(FP), AX - MOVQ AX, 32(SP) - CALL ·X__builtin___strncpy_chk(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Y__builtin___vsnprintf_chk(t *TLS, str uintptr, maxlen Tsize_t, flag int32, os Tsize_t, format, args uintptr) (r int32) -TEXT ·Y__builtin___vsnprintf_chk(SB),$64-60 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ str+8(FP), AX - MOVQ AX, 8(SP) - MOVQ maxlen+16(FP), AX - MOVQ AX, 16(SP) - MOVL flag+24(FP), AX - MOVL AX, 24(SP) - MOVQ os+32(FP), AX - MOVQ AX, 32(SP) - MOVQ format+40(FP), AX - MOVQ AX, 40(SP) - MOVQ args+48(FP), AX - MOVQ AX, 48(SP) - CALL ·X__builtin___vsnprintf_chk(SB) - MOVL 56(SP), AX - MOVL AX, r+56(FP) - RET - -// func Y__builtin_abort(t *TLS) -TEXT ·Y__builtin_abort(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·X__builtin_abort(SB) - RET - -// func Y__builtin_abs(t *TLS, j int32) int32 -TEXT ·Y__builtin_abs(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL j+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_abs(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_add_overflowInt64(t *TLS, a, b int64, res uintptr) int32 -TEXT ·Y__builtin_add_overflowInt64(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - MOVQ res+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_add_overflowInt64(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Y__builtin_add_overflowUint32(t *TLS, a, b uint32, res uintptr) int32 -TEXT ·Y__builtin_add_overflowUint32(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL a+8(FP), AX - MOVL AX, 8(SP) - MOVL b+12(FP), AX - MOVL AX, 12(SP) - MOVQ res+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_add_overflowUint32(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Y__builtin_add_overflowUint64(t *TLS, a, b uint64, res uintptr) int32 -TEXT ·Y__builtin_add_overflowUint64(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - MOVQ res+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_add_overflowUint64(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Y__builtin_alloca(tls *TLS, size Tsize_t) uintptr -TEXT ·Y__builtin_alloca(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ size+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_alloca(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_bswap16(t *TLS, x uint16) uint16 -TEXT ·Y__builtin_bswap16(SB),$24-18 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVW x+8(FP), AX - MOVW AX, 8(SP) - CALL ·X__builtin_bswap16(SB) - MOVW 16(SP), AX - MOVW AX, ret+16(FP) - RET - -// func Y__builtin_bswap32(t *TLS, x uint32) uint32 -TEXT ·Y__builtin_bswap32(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_bswap32(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_bswap64(t *TLS, x uint64) uint64 -TEXT ·Y__builtin_bswap64(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_bswap64(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_bzero(t *TLS, s uintptr, n Tsize_t) -TEXT ·Y__builtin_bzero(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_bzero(SB) - RET - -// func Y__builtin_clz(t *TLS, n uint32) int32 -TEXT ·Y__builtin_clz(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_clz(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_clzl(t *TLS, n ulong) int32 -TEXT ·Y__builtin_clzl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ n+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_clzl(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_clzll(t *TLS, n uint64) int32 -TEXT ·Y__builtin_clzll(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ n+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_clzll(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_copysign(t *TLS, x, y float64) float64 -TEXT ·Y__builtin_copysign(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_copysign(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Y__builtin_copysignf(t *TLS, x, y float32) float32 -TEXT ·Y__builtin_copysignf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·X__builtin_copysignf(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_copysignl(t *TLS, x, y float64) float64 -TEXT ·Y__builtin_copysignl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_copysignl(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Y__builtin_ctz(t *TLS, n uint32) int32 -TEXT ·Y__builtin_ctz(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_ctz(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_ctzl(tls *TLS, x ulong) int32 -TEXT ·Y__builtin_ctzl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_ctzl(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_exit(t *TLS, status int32) -TEXT ·Y__builtin_exit(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL status+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_exit(SB) - RET - -// func Y__builtin_expect(t *TLS, exp, c long) long -TEXT ·Y__builtin_expect(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ exp+8(FP), AX - MOVQ AX, 8(SP) - MOVQ c+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_expect(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Y__builtin_fabs(t *TLS, x float64) float64 -TEXT ·Y__builtin_fabs(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_fabs(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_fabsf(t *TLS, x float32) float32 -TEXT ·Y__builtin_fabsf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_fabsf(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_fabsl(t *TLS, x float64) float64 -TEXT ·Y__builtin_fabsl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_fabsl(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_ffs(tls *TLS, i int32) (r int32) -TEXT ·Y__builtin_ffs(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL i+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_ffs(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Y__builtin_fma(tls *TLS, x, y, z float64) (r float64) -TEXT ·Y__builtin_fma(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - MOVQ z+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_fma(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Y__builtin_fmax(tls *TLS, x float64, y float64) (r float64) -TEXT ·Y__builtin_fmax(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_fmax(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Y__builtin_fmin(tls *TLS, x float64, y float64) (r float64) -TEXT ·Y__builtin_fmin(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_fmin(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Y__builtin_free(t *TLS, ptr uintptr) -TEXT ·Y__builtin_free(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ptr+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_free(SB) - RET - -// func Y__builtin_getentropy(t *TLS, buf uintptr, n Tsize_t) int32 -TEXT ·Y__builtin_getentropy(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buf+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_getentropy(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Y__builtin_huge_val(t *TLS) float64 -TEXT ·Y__builtin_huge_val(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·X__builtin_huge_val(SB) - MOVQ 8(SP), AX - MOVQ AX, ret+8(FP) - RET - -// func Y__builtin_huge_valf(t *TLS) float32 -TEXT ·Y__builtin_huge_valf(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·X__builtin_huge_valf(SB) - MOVL 8(SP), AX - MOVL AX, ret+8(FP) - RET - -// func Y__builtin_hypot(tls *TLS, x float64, y float64) (r float64) -TEXT ·Y__builtin_hypot(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_hypot(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Y__builtin_inf(t *TLS) float64 -TEXT ·Y__builtin_inf(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·X__builtin_inf(SB) - MOVQ 8(SP), AX - MOVQ AX, ret+8(FP) - RET - -// func Y__builtin_inff(tls *TLS) float32 -TEXT ·Y__builtin_inff(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·X__builtin_inff(SB) - MOVL 8(SP), AX - MOVL AX, ret+8(FP) - RET - -// func Y__builtin_infl(t *TLS) float64 -TEXT ·Y__builtin_infl(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·X__builtin_infl(SB) - MOVQ 8(SP), AX - MOVQ AX, ret+8(FP) - RET - -// func Y__builtin_isblank(tls *TLS, c int32) (r int32) -TEXT ·Y__builtin_isblank(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_isblank(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Y__builtin_isnan(t *TLS, x float64) int32 -TEXT ·Y__builtin_isnan(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_isnan(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_isnanf(t *TLS, x float32) int32 -TEXT ·Y__builtin_isnanf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_isnanf(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_isnanl(t *TLS, x float64) int32 -TEXT ·Y__builtin_isnanl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_isnanl(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_isprint(tls *TLS, c int32) (r int32) -TEXT ·Y__builtin_isprint(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_isprint(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Y__builtin_isunordered(t *TLS, a, b float64) int32 -TEXT ·Y__builtin_isunordered(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_isunordered(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Y__builtin_llabs(tls *TLS, a int64) int64 -TEXT ·Y__builtin_llabs(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_llabs(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_log2(t *TLS, x float64) float64 -TEXT ·Y__builtin_log2(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_log2(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_lrint(tls *TLS, x float64) (r long) -TEXT ·Y__builtin_lrint(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_lrint(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Y__builtin_lrintf(tls *TLS, x float32) (r long) -TEXT ·Y__builtin_lrintf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_lrintf(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Y__builtin_lround(tls *TLS, x float64) (r long) -TEXT ·Y__builtin_lround(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_lround(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Y__builtin_malloc(t *TLS, size Tsize_t) uintptr -TEXT ·Y__builtin_malloc(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ size+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_malloc(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_memcmp(t *TLS, s1, s2 uintptr, n Tsize_t) int32 -TEXT ·Y__builtin_memcmp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s2+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_memcmp(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Y__builtin_memcpy(t *TLS, dest, src uintptr, n Tsize_t) (r uintptr) -TEXT ·Y__builtin_memcpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_memcpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Y__builtin_memset(t *TLS, s uintptr, c int32, n Tsize_t) uintptr -TEXT ·Y__builtin_memset(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_memset(SB) - MOVQ 32(SP), AX - MOVQ AX, ret+32(FP) - RET - -// func Y__builtin_mmap(t *TLS, addr uintptr, length Tsize_t, prot, flags, fd int32, offset Toff_t) uintptr -TEXT ·Y__builtin_mmap(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ length+16(FP), AX - MOVQ AX, 16(SP) - MOVL prot+24(FP), AX - MOVL AX, 24(SP) - MOVL flags+28(FP), AX - MOVL AX, 28(SP) - MOVL fd+32(FP), AX - MOVL AX, 32(SP) - MOVQ offset+40(FP), AX - MOVQ AX, 40(SP) - CALL ·X__builtin_mmap(SB) - MOVQ 48(SP), AX - MOVQ AX, ret+48(FP) - RET - -// func Y__builtin_mul_overflowInt64(t *TLS, a, b int64, res uintptr) int32 -TEXT ·Y__builtin_mul_overflowInt64(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - MOVQ res+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_mul_overflowInt64(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Y__builtin_mul_overflowUint128(t *TLS, a, b Uint128, res uintptr) int32 -TEXT ·Y__builtin_mul_overflowUint128(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a_Lo+8(FP), AX - MOVQ AX, 8(SP) - MOVQ a_Hi+16(FP), AX - MOVQ AX, 16(SP) - MOVQ b_Lo+24(FP), AX - MOVQ AX, 24(SP) - MOVQ b_Hi+32(FP), AX - MOVQ AX, 32(SP) - MOVQ res+40(FP), AX - MOVQ AX, 40(SP) - CALL ·X__builtin_mul_overflowUint128(SB) - MOVL 48(SP), AX - MOVL AX, ret+48(FP) - RET - -// func Y__builtin_mul_overflowUint64(t *TLS, a, b uint64, res uintptr) int32 -TEXT ·Y__builtin_mul_overflowUint64(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - MOVQ res+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_mul_overflowUint64(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Y__builtin_nan(t *TLS, s uintptr) float64 -TEXT ·Y__builtin_nan(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_nan(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_nanf(tls *TLS, s uintptr) float32 -TEXT ·Y__builtin_nanf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_nanf(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_nanl(t *TLS, s uintptr) float64 -TEXT ·Y__builtin_nanl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_nanl(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_object_size(t *TLS, p uintptr, typ int32) Tsize_t -TEXT ·Y__builtin_object_size(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p+8(FP), AX - MOVQ AX, 8(SP) - MOVL typ+16(FP), AX - MOVL AX, 16(SP) - CALL ·X__builtin_object_size(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Y__builtin_popcount(t *TLS, x uint32) int32 -TEXT ·Y__builtin_popcount(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_popcount(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_popcountl(t *TLS, x ulong) int32 -TEXT ·Y__builtin_popcountl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_popcountl(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Y__builtin_prefetch(t *TLS, addr, args uintptr) -TEXT ·Y__builtin_prefetch(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ args+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_prefetch(SB) - RET - -// func Y__builtin_printf(tls *TLS, fmt uintptr, va uintptr) (r int32) -TEXT ·Y__builtin_printf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_printf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Y__builtin_rintf(tls *TLS, x float32) (r float32) -TEXT ·Y__builtin_rintf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_rintf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Y__builtin_round(tls *TLS, x float64) (r float64) -TEXT ·Y__builtin_round(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_round(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Y__builtin_roundf(tls *TLS, x float32) (r float32) -TEXT ·Y__builtin_roundf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·X__builtin_roundf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Y__builtin_snprintf(t *TLS, str uintptr, size Tsize_t, format, args uintptr) int32 -TEXT ·Y__builtin_snprintf(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ str+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVQ format+24(FP), AX - MOVQ AX, 24(SP) - MOVQ args+32(FP), AX - MOVQ AX, 32(SP) - CALL ·X__builtin_snprintf(SB) - MOVL 40(SP), AX - MOVL AX, ret+40(FP) - RET - -// func Y__builtin_sprintf(t *TLS, str, format, args uintptr) (r int32) -TEXT ·Y__builtin_sprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ str+8(FP), AX - MOVQ AX, 8(SP) - MOVQ format+16(FP), AX - MOVQ AX, 16(SP) - MOVQ args+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_sprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Y__builtin_strchr(t *TLS, s uintptr, c int32) uintptr -TEXT ·Y__builtin_strchr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - CALL ·X__builtin_strchr(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Y__builtin_strcmp(t *TLS, s1, s2 uintptr) int32 -TEXT ·Y__builtin_strcmp(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s2+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_strcmp(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Y__builtin_strcpy(t *TLS, dest, src uintptr) uintptr -TEXT ·Y__builtin_strcpy(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - CALL ·X__builtin_strcpy(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Y__builtin_strlen(t *TLS, s uintptr) Tsize_t -TEXT ·Y__builtin_strlen(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_strlen(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Y__builtin_sub_overflowInt64(t *TLS, a, b int64, res uintptr) int32 -TEXT ·Y__builtin_sub_overflowInt64(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - MOVQ res+24(FP), AX - MOVQ AX, 24(SP) - CALL ·X__builtin_sub_overflowInt64(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Y__builtin_trap(t *TLS) -TEXT ·Y__builtin_trap(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·X__builtin_trap(SB) - RET - -// func Y__builtin_trunc(tls *TLS, x float64) (r float64) -TEXT ·Y__builtin_trunc(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·X__builtin_trunc(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Y__builtin_unreachable(t *TLS) -TEXT ·Y__builtin_unreachable(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·X__builtin_unreachable(SB) - RET - -// func Y__builtin_vsnprintf(t *TLS, str uintptr, size Tsize_t, format, va uintptr) int32 -TEXT ·Y__builtin_vsnprintf(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ str+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVQ format+24(FP), AX - MOVQ AX, 24(SP) - MOVQ va+32(FP), AX - MOVQ AX, 32(SP) - CALL ·X__builtin_vsnprintf(SB) - MOVL 40(SP), AX - MOVL AX, ret+40(FP) - RET - -// func Ya64l(tls *TLS, s uintptr) (r int64) -TEXT ·Ya64l(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xa64l(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yabort(tls *TLS) -TEXT ·Yabort(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xabort(SB) - RET - -// func Yabs(tls *TLS, a int32) (r int32) -TEXT ·Yabs(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL a+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xabs(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yaccept(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) -TEXT ·Yaccept(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ addr+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xaccept(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Yaccept4(tls *TLS, fd int32, addr uintptr, len1 uintptr, flg int32) (r1 int32) -TEXT ·Yaccept4(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ addr+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVL flg+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xaccept4(SB) - MOVL 40(SP), AX - MOVL AX, r1+40(FP) - RET - -// func Yaccess(tls *TLS, filename uintptr, amode int32) (r int32) -TEXT ·Yaccess(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVL amode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xaccess(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yacct(tls *TLS, filename uintptr) (r int32) -TEXT ·Yacct(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xacct(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yacos(tls *TLS, x float64) (r float64) -TEXT ·Yacos(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xacos(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yacosf(tls *TLS, x float32) (r float32) -TEXT ·Yacosf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xacosf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yacosh(tls *TLS, x float64) (r float64) -TEXT ·Yacosh(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xacosh(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yacoshf(tls *TLS, x float32) (r float32) -TEXT ·Yacoshf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xacoshf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yacoshl(tls *TLS, x float64) (r float64) -TEXT ·Yacoshl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xacoshl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yacosl(tls *TLS, x float64) (r float64) -TEXT ·Yacosl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xacosl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yaddmntent(tls *TLS, f uintptr, mnt uintptr) (r int32) -TEXT ·Yaddmntent(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mnt+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xaddmntent(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yadjtime(tls *TLS, in uintptr, out uintptr) (r int32) -TEXT ·Yadjtime(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ in+8(FP), AX - MOVQ AX, 8(SP) - MOVQ out+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xadjtime(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yadjtimex(tls *TLS, tx uintptr) (r int32) -TEXT ·Yadjtimex(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tx+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xadjtimex(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yalarm(tls *TLS, seconds uint32) (r uint32) -TEXT ·Yalarm(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL seconds+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xalarm(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yalloca(tls *TLS, size Tsize_t) uintptr -TEXT ·Yalloca(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ size+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xalloca(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Yalphasort(tls *TLS, a uintptr, b uintptr) (r int32) -TEXT ·Yalphasort(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xalphasort(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yarch_prctl(tls *TLS, code int32, addr uint64) (r int32) -TEXT ·Yarch_prctl(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL code+8(FP), AX - MOVL AX, 8(SP) - MOVQ addr+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xarch_prctl(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yasctime(tls *TLS, tm uintptr) (r uintptr) -TEXT ·Yasctime(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tm+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xasctime(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yasctime_r(tls *TLS, tm uintptr, buf uintptr) (r uintptr) -TEXT ·Yasctime_r(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tm+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xasctime_r(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yasin(tls *TLS, x float64) (r1 float64) -TEXT ·Yasin(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xasin(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Yasinf(tls *TLS, x float32) (r float32) -TEXT ·Yasinf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xasinf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yasinh(tls *TLS, x3 float64) (r float64) -TEXT ·Yasinh(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xasinh(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yasinhf(tls *TLS, x3 float32) (r float32) -TEXT ·Yasinhf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xasinhf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yasinhl(tls *TLS, x float64) (r float64) -TEXT ·Yasinhl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xasinhl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yasinl(tls *TLS, x float64) (r float64) -TEXT ·Yasinl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xasinl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yasprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) -TEXT ·Yasprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xasprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) -TEXT ·Yat_quick_exit(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ func1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xat_quick_exit(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yatan(tls *TLS, x3 float64) (r float64) -TEXT ·Yatan(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatan(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yatan2(tls *TLS, y float64, x float64) (r float64) -TEXT ·Yatan2(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ y+8(FP), AX - MOVQ AX, 8(SP) - MOVQ x+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xatan2(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yatan2f(tls *TLS, y float32, x float32) (r float32) -TEXT ·Yatan2f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL y+8(FP), AX - MOVL AX, 8(SP) - MOVL x+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xatan2f(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yatan2l(tls *TLS, y float64, x float64) (r float64) -TEXT ·Yatan2l(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ y+8(FP), AX - MOVQ AX, 8(SP) - MOVQ x+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xatan2l(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yatanf(tls *TLS, x3 float32) (r float32) -TEXT ·Yatanf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xatanf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yatanh(tls *TLS, x3 float64) (r float64) -TEXT ·Yatanh(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatanh(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yatanhf(tls *TLS, x3 float32) (r float32) -TEXT ·Yatanhf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xatanhf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yatanhl(tls *TLS, x float64) (r float64) -TEXT ·Yatanhl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatanhl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yatanl(tls *TLS, x float64) (r float64) -TEXT ·Yatanl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatanl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yatexit(tls *TLS, func_ uintptr) (r int32) -TEXT ·Yatexit(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ func_+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatexit(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yatof(tls *TLS, s uintptr) (r float64) -TEXT ·Yatof(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatof(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yatoi(tls *TLS, s uintptr) (r int32) -TEXT ·Yatoi(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatoi(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yatol(tls *TLS, s uintptr) (r int64) -TEXT ·Yatol(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatol(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yatoll(tls *TLS, s uintptr) (r int64) -TEXT ·Yatoll(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xatoll(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ybacktrace(t *TLS, buf uintptr, size int32) int32 -TEXT ·Ybacktrace(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buf+8(FP), AX - MOVQ AX, 8(SP) - MOVL size+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xbacktrace(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ybacktrace_symbols_fd(t *TLS, buffer uintptr, size, fd int32) -TEXT ·Ybacktrace_symbols_fd(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buffer+8(FP), AX - MOVQ AX, 8(SP) - MOVL size+16(FP), AX - MOVL AX, 16(SP) - MOVL fd+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xbacktrace_symbols_fd(SB) - RET - -// func Ybasename(tls *TLS, s uintptr) (r uintptr) -TEXT ·Ybasename(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xbasename(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ybcmp(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) (r int32) -TEXT ·Ybcmp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s2+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xbcmp(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ybcopy(tls *TLS, s1 uintptr, s2 uintptr, n Tsize_t) -TEXT ·Ybcopy(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s2+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xbcopy(SB) - RET - -// func Ybind(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) -TEXT ·Ybind(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ addr+16(FP), AX - MOVQ AX, 16(SP) - MOVL len1+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xbind(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ybind_textdomain_codeset(tls *TLS, domainname uintptr, codeset uintptr) (r uintptr) -TEXT ·Ybind_textdomain_codeset(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ domainname+8(FP), AX - MOVQ AX, 8(SP) - MOVQ codeset+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xbind_textdomain_codeset(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ybindtextdomain(tls *TLS, domainname uintptr, dirname uintptr) (r uintptr) -TEXT ·Ybindtextdomain(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ domainname+8(FP), AX - MOVQ AX, 8(SP) - MOVQ dirname+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xbindtextdomain(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ybrk(tls *TLS, end uintptr) (r int32) -TEXT ·Ybrk(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ end+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xbrk(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ybsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) -TEXT ·Ybsearch(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - MOVQ base+16(FP), AX - MOVQ AX, 16(SP) - MOVQ nel+24(FP), AX - MOVQ AX, 24(SP) - MOVQ width+32(FP), AX - MOVQ AX, 32(SP) - MOVQ cmp+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xbsearch(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ybtowc(tls *TLS, c int32) (r Twint_t) -TEXT ·Ybtowc(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xbtowc(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ybzero(tls *TLS, s uintptr, n Tsize_t) -TEXT ·Ybzero(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xbzero(SB) - RET - -// func Yc16rtomb(tls *TLS, s uintptr, c16 Tchar16_t, ps uintptr) (r Tsize_t) -TEXT ·Yc16rtomb(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVW c16+16(FP), AX - MOVW AX, 16(SP) - MOVQ ps+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xc16rtomb(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yc32rtomb(tls *TLS, s uintptr, c32 Tchar32_t, ps uintptr) (r Tsize_t) -TEXT ·Yc32rtomb(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c32+16(FP), AX - MOVL AX, 16(SP) - MOVQ ps+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xc32rtomb(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ycabs(tls *TLS, z complex128) (r float64) -TEXT ·Ycabs(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcabs(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycabsf(tls *TLS, z complex64) (r float32) -TEXT ·Ycabsf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcabsf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycabsl(tls *TLS, z complex128) (r float64) -TEXT ·Ycabsl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcabsl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycacos(tls *TLS, z complex128) (r complex128) -TEXT ·Ycacos(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcacos(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycacosf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycacosf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcacosf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycacosh(tls *TLS, z complex128) (r complex128) -TEXT ·Ycacosh(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcacosh(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycacoshf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycacoshf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcacoshf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycacoshl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycacoshl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcacoshl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycacosl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycacosl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcacosl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycalloc(tls *TLS, m Tsize_t, n Tsize_t) (r uintptr) -TEXT ·Ycalloc(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ m+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcalloc(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycapget(tls *TLS, a uintptr, b uintptr) (r int32) -TEXT ·Ycapget(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcapget(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ycapset(tls *TLS, a uintptr, b uintptr) (r int32) -TEXT ·Ycapset(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcapset(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ycarg(tls *TLS, z complex128) (r float64) -TEXT ·Ycarg(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcarg(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycargf(tls *TLS, z complex64) (r float32) -TEXT ·Ycargf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcargf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycargl(tls *TLS, z complex128) (r float64) -TEXT ·Ycargl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcargl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycasin(tls *TLS, z complex128) (r1 complex128) -TEXT ·Ycasin(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcasin(SB) - MOVQ 24(SP), AX - MOVQ AX, r1_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r1_imag+32(FP) - RET - -// func Ycasinf(tls *TLS, z complex64) (r1 complex64) -TEXT ·Ycasinf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcasinf(SB) - MOVL 16(SP), AX - MOVL AX, r1_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r1_imag+20(FP) - RET - -// func Ycasinh(tls *TLS, z complex128) (r complex128) -TEXT ·Ycasinh(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcasinh(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycasinhf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycasinhf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcasinhf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycasinhl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycasinhl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcasinhl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycasinl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycasinl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcasinl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycatan(tls *TLS, z complex128) (r complex128) -TEXT ·Ycatan(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcatan(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycatanf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycatanf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcatanf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycatanh(tls *TLS, z complex128) (r complex128) -TEXT ·Ycatanh(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcatanh(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycatanhf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycatanhf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcatanhf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycatanhl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycatanhl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcatanhl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycatanl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycatanl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcatanl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycatclose(tls *TLS, catd Tnl_catd) (r int32) -TEXT ·Ycatclose(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ catd+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcatclose(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycatgets(tls *TLS, catd Tnl_catd, set_id int32, msg_id int32, s uintptr) (r uintptr) -TEXT ·Ycatgets(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ catd+8(FP), AX - MOVQ AX, 8(SP) - MOVL set_id+16(FP), AX - MOVL AX, 16(SP) - MOVL msg_id+20(FP), AX - MOVL AX, 20(SP) - MOVQ s+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xcatgets(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ycatopen(tls *TLS, name uintptr, oflag int32) (r Tnl_catd) -TEXT ·Ycatopen(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVL oflag+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xcatopen(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycbrt(tls *TLS, x float64) (r1 float64) -TEXT ·Ycbrt(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcbrt(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Ycbrtf(tls *TLS, x float32) (r1 float32) -TEXT ·Ycbrtf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xcbrtf(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Ycbrtl(tls *TLS, x float64) (r float64) -TEXT ·Ycbrtl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcbrtl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yccos(tls *TLS, z complex128) (r complex128) -TEXT ·Yccos(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xccos(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yccosf(tls *TLS, z complex64) (r complex64) -TEXT ·Yccosf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xccosf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Yccosh(tls *TLS, z complex128) (r complex128) -TEXT ·Yccosh(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xccosh(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yccoshf(tls *TLS, z complex64) (r complex64) -TEXT ·Yccoshf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xccoshf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Yccoshl(tls *TLS, z complex128) (r complex128) -TEXT ·Yccoshl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xccoshl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yccosl(tls *TLS, z complex128) (r complex128) -TEXT ·Yccosl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xccosl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yceil(tls *TLS, x3 float64) (r float64) -TEXT ·Yceil(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xceil(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yceilf(tls *TLS, x3 float32) (r float32) -TEXT ·Yceilf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xceilf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yceill(tls *TLS, x float64) (r float64) -TEXT ·Yceill(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xceill(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ycexp(tls *TLS, z complex128) (r complex128) -TEXT ·Ycexp(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcexp(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycexpf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycexpf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcexpf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycexpl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycexpl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcexpl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycfgetispeed(tls *TLS, tio uintptr) (r Tspeed_t) -TEXT ·Ycfgetispeed(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tio+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcfgetispeed(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycfgetospeed(tls *TLS, tio uintptr) (r Tspeed_t) -TEXT ·Ycfgetospeed(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tio+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcfgetospeed(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycfmakeraw(tls *TLS, t uintptr) -TEXT ·Ycfmakeraw(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcfmakeraw(SB) - RET - -// func Ycfsetispeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) -TEXT ·Ycfsetispeed(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tio+8(FP), AX - MOVQ AX, 8(SP) - MOVL speed+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xcfsetispeed(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ycfsetospeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) -TEXT ·Ycfsetospeed(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tio+8(FP), AX - MOVQ AX, 8(SP) - MOVL speed+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xcfsetospeed(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ycfsetspeed(tls *TLS, tio uintptr, speed Tspeed_t) (r int32) -TEXT ·Ycfsetspeed(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tio+8(FP), AX - MOVQ AX, 8(SP) - MOVL speed+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xcfsetspeed(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ychdir(tls *TLS, path uintptr) (r int32) -TEXT ·Ychdir(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xchdir(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ychmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) -TEXT ·Ychmod(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL mode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xchmod(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ychown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) -TEXT ·Ychown(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL uid+16(FP), AX - MOVL AX, 16(SP) - MOVL gid+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xchown(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ychroot(tls *TLS, path uintptr) (r int32) -TEXT ·Ychroot(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xchroot(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycimag(tls *TLS, z complex128) (r float64) -TEXT ·Ycimag(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcimag(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycimagf(tls *TLS, z complex64) (r float32) -TEXT ·Ycimagf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcimagf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycimagl(tls *TLS, z complex128) (r float64) -TEXT ·Ycimagl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcimagl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yclearenv(tls *TLS) (r int32) -TEXT ·Yclearenv(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xclearenv(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yclearerr(tls *TLS, f uintptr) -TEXT ·Yclearerr(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xclearerr(SB) - RET - -// func Yclearerr_unlocked(tls *TLS, f uintptr) -TEXT ·Yclearerr_unlocked(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xclearerr_unlocked(SB) - RET - -// func Yclock(tls *TLS) (r Tclock_t) -TEXT ·Yclock(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xclock(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Yclock_adjtime(tls *TLS, clock_id Tclockid_t, utx uintptr) (r1 int32) -TEXT ·Yclock_adjtime(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL clock_id+8(FP), AX - MOVL AX, 8(SP) - MOVQ utx+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xclock_adjtime(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Yclock_getcpuclockid(tls *TLS, pid Tpid_t, clk uintptr) (r int32) -TEXT ·Yclock_getcpuclockid(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVQ clk+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xclock_getcpuclockid(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yclock_getres(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) -TEXT ·Yclock_getres(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL clk+8(FP), AX - MOVL AX, 8(SP) - MOVQ ts+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xclock_getres(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yclock_gettime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) -TEXT ·Yclock_gettime(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL clk+8(FP), AX - MOVL AX, 8(SP) - MOVQ ts+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xclock_gettime(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yclock_nanosleep(tls *TLS, clk Tclockid_t, flags int32, req uintptr, rem uintptr) (r int32) -TEXT ·Yclock_nanosleep(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL clk+8(FP), AX - MOVL AX, 8(SP) - MOVL flags+12(FP), AX - MOVL AX, 12(SP) - MOVQ req+16(FP), AX - MOVQ AX, 16(SP) - MOVQ rem+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xclock_nanosleep(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yclock_settime(tls *TLS, clk Tclockid_t, ts uintptr) (r int32) -TEXT ·Yclock_settime(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL clk+8(FP), AX - MOVL AX, 8(SP) - MOVQ ts+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xclock_settime(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yclog(tls *TLS, z complex128) (r1 complex128) -TEXT ·Yclog(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xclog(SB) - MOVQ 24(SP), AX - MOVQ AX, r1_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r1_imag+32(FP) - RET - -// func Yclogf(tls *TLS, z complex64) (r1 complex64) -TEXT ·Yclogf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xclogf(SB) - MOVL 16(SP), AX - MOVL AX, r1_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r1_imag+20(FP) - RET - -// func Yclogl(tls *TLS, z complex128) (r complex128) -TEXT ·Yclogl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xclogl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yclose(tls *TLS, fd int32) (r1 int32) -TEXT ·Yclose(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xclose(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yclosedir(tls *TLS, dir uintptr) (r int32) -TEXT ·Yclosedir(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dir+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xclosedir(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycloselog(tls *TLS) -TEXT ·Ycloselog(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xcloselog(SB) - RET - -// func Yconfstr(tls *TLS, name int32, buf uintptr, len1 Tsize_t) (r Tsize_t) -TEXT ·Yconfstr(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL name+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xconfstr(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yconj(tls *TLS, z complex128) (r complex128) -TEXT ·Yconj(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xconj(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yconjf(tls *TLS, z complex64) (r complex64) -TEXT ·Yconjf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xconjf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Yconjl(tls *TLS, z complex128) (r complex128) -TEXT ·Yconjl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xconjl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yconnect(tls *TLS, fd int32, addr uintptr, len1 Tsocklen_t) (r1 int32) -TEXT ·Yconnect(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ addr+16(FP), AX - MOVQ AX, 16(SP) - MOVL len1+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xconnect(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ycopy_file_range(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) -TEXT ·Ycopy_file_range(SB),$64-64 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd_in+8(FP), AX - MOVL AX, 8(SP) - MOVQ off_in+16(FP), AX - MOVQ AX, 16(SP) - MOVL fd_out+24(FP), AX - MOVL AX, 24(SP) - MOVQ off_out+32(FP), AX - MOVQ AX, 32(SP) - MOVQ len1+40(FP), AX - MOVQ AX, 40(SP) - MOVL flags+48(FP), AX - MOVL AX, 48(SP) - CALL ·Xcopy_file_range(SB) - MOVQ 56(SP), AX - MOVQ AX, r+56(FP) - RET - -// func Ycopysign(tls *TLS, x float64, y float64) (r float64) -TEXT ·Ycopysign(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcopysign(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycopysignf(tls *TLS, x float32, y float32) (r float32) -TEXT ·Ycopysignf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcopysignf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycopysignl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Ycopysignl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcopysignl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycos(tls *TLS, x3 float64) (r float64) -TEXT ·Ycos(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcos(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ycosf(tls *TLS, x3 float32) (r float32) -TEXT ·Ycosf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xcosf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycosh(tls *TLS, x3 float64) (r float64) -TEXT ·Ycosh(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcosh(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ycoshf(tls *TLS, x3 float32) (r float32) -TEXT ·Ycoshf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xcoshf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycoshl(tls *TLS, x float64) (r float64) -TEXT ·Ycoshl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcoshl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ycosl(tls *TLS, x float64) (r float64) -TEXT ·Ycosl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcosl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ycpow(tls *TLS, z complex128, c complex128) (r complex128) -TEXT ·Ycpow(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - MOVQ c_real+24(FP), AX - MOVQ AX, 24(SP) - MOVQ c_imag+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xcpow(SB) - MOVQ 40(SP), AX - MOVQ AX, r_real+40(FP) - MOVQ 48(SP), AX - MOVQ AX, r_imag+48(FP) - RET - -// func Ycpowf(tls *TLS, z complex64, c complex64) (r complex64) -TEXT ·Ycpowf(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - MOVL c_real+16(FP), AX - MOVL AX, 16(SP) - MOVL c_imag+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xcpowf(SB) - MOVL 24(SP), AX - MOVL AX, r_real+24(FP) - MOVL 28(SP), AX - MOVL AX, r_imag+28(FP) - RET - -// func Ycpowl(tls *TLS, z complex128, c complex128) (r complex128) -TEXT ·Ycpowl(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - MOVQ c_real+24(FP), AX - MOVQ AX, 24(SP) - MOVQ c_imag+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xcpowl(SB) - MOVQ 40(SP), AX - MOVQ AX, r_real+40(FP) - MOVQ 48(SP), AX - MOVQ AX, r_imag+48(FP) - RET - -// func Ycproj(tls *TLS, z complex128) (r complex128) -TEXT ·Ycproj(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcproj(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycprojf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycprojf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcprojf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycprojl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycprojl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcprojl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycreal(tls *TLS, z complex128) (r float64) -TEXT ·Ycreal(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcreal(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycrealf(tls *TLS, z complex64) (r float32) -TEXT ·Ycrealf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcrealf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ycreall(tls *TLS, z complex128) (r float64) -TEXT ·Ycreall(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcreall(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycreat(tls *TLS, filename uintptr, mode Tmode_t) (r int32) -TEXT ·Ycreat(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVL mode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xcreat(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ycrypt(tls *TLS, key uintptr, salt uintptr) (r uintptr) -TEXT ·Ycrypt(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - MOVQ salt+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcrypt(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycrypt_r(tls *TLS, key uintptr, salt uintptr, data uintptr) (r uintptr) -TEXT ·Ycrypt_r(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - MOVQ salt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ data+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xcrypt_r(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ycsin(tls *TLS, z complex128) (r complex128) -TEXT ·Ycsin(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcsin(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycsinf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycsinf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcsinf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycsinh(tls *TLS, z complex128) (r complex128) -TEXT ·Ycsinh(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcsinh(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycsinhf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycsinhf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcsinhf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycsinhl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycsinhl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcsinhl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycsinl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycsinl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcsinl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycsqrt(tls *TLS, z complex128) (r complex128) -TEXT ·Ycsqrt(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcsqrt(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Ycsqrtf(tls *TLS, z complex64) (r complex64) -TEXT ·Ycsqrtf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xcsqrtf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Ycsqrtl(tls *TLS, z complex128) (r complex128) -TEXT ·Ycsqrtl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xcsqrtl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yctan(tls *TLS, z complex128) (r complex128) -TEXT ·Yctan(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xctan(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yctanf(tls *TLS, z complex64) (r complex64) -TEXT ·Yctanf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xctanf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Yctanh(tls *TLS, z complex128) (r complex128) -TEXT ·Yctanh(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xctanh(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yctanhf(tls *TLS, z complex64) (r complex64) -TEXT ·Yctanhf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL z_real+8(FP), AX - MOVL AX, 8(SP) - MOVL z_imag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xctanhf(SB) - MOVL 16(SP), AX - MOVL AX, r_real+16(FP) - MOVL 20(SP), AX - MOVL AX, r_imag+20(FP) - RET - -// func Yctanhl(tls *TLS, z complex128) (r complex128) -TEXT ·Yctanhl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xctanhl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yctanl(tls *TLS, z complex128) (r complex128) -TEXT ·Yctanl(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ z_real+8(FP), AX - MOVQ AX, 8(SP) - MOVQ z_imag+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xctanl(SB) - MOVQ 24(SP), AX - MOVQ AX, r_real+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_imag+32(FP) - RET - -// func Yctermid(tls *TLS, s uintptr) (r uintptr) -TEXT ·Yctermid(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xctermid(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yctime(tls *TLS, t uintptr) (r uintptr) -TEXT ·Yctime(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xctime(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yctime_r(tls *TLS, t uintptr, buf uintptr) (r uintptr) -TEXT ·Yctime_r(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xctime_r(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ycuserid(tls *TLS, buf uintptr) (r uintptr) -TEXT ·Ycuserid(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buf+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xcuserid(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ydcgettext(tls *TLS, domainname uintptr, msgid uintptr, category int32) (r uintptr) -TEXT ·Ydcgettext(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ domainname+8(FP), AX - MOVQ AX, 8(SP) - MOVQ msgid+16(FP), AX - MOVQ AX, 16(SP) - MOVL category+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xdcgettext(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ydcngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64, category int32) (r1 uintptr) -TEXT ·Ydcngettext(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ domainname+8(FP), AX - MOVQ AX, 8(SP) - MOVQ msgid1+16(FP), AX - MOVQ AX, 16(SP) - MOVQ msgid2+24(FP), AX - MOVQ AX, 24(SP) - MOVQ n+32(FP), AX - MOVQ AX, 32(SP) - MOVL category+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xdcngettext(SB) - MOVQ 48(SP), AX - MOVQ AX, r1+48(FP) - RET - -// func Ydelete_module(tls *TLS, a uintptr, b uint32) (r int32) -TEXT ·Ydelete_module(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVL b+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xdelete_module(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ydgettext(tls *TLS, domainname uintptr, msgid uintptr) (r uintptr) -TEXT ·Ydgettext(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ domainname+8(FP), AX - MOVQ AX, 8(SP) - MOVQ msgid+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xdgettext(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ydifftime(tls *TLS, t1 Ttime_t, t0 Ttime_t) (r float64) -TEXT ·Ydifftime(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ t0+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xdifftime(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ydirfd(tls *TLS, d uintptr) (r int32) -TEXT ·Ydirfd(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xdirfd(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ydirname(tls *TLS, s uintptr) (r uintptr) -TEXT ·Ydirname(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xdirname(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ydiv(tls *TLS, num int32, den int32) (r Tdiv_t) -TEXT ·Ydiv(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL num+8(FP), AX - MOVL AX, 8(SP) - MOVL den+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xdiv(SB) - MOVL 16(SP), AX - MOVL AX, r_Fquot+16(FP) - MOVL 20(SP), AX - MOVL AX, r_Frem+20(FP) - RET - -// func Ydlclose(t *TLS, handle uintptr) int32 -TEXT ·Ydlclose(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ handle+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xdlclose(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ydlerror(t *TLS) uintptr -TEXT ·Ydlerror(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xdlerror(SB) - MOVQ 8(SP), AX - MOVQ AX, ret+8(FP) - RET - -// func Ydlopen(t *TLS, filename uintptr, flags int32) uintptr -TEXT ·Ydlopen(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xdlopen(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Ydlsym(t *TLS, handle, symbol uintptr) uintptr -TEXT ·Ydlsym(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ handle+8(FP), AX - MOVQ AX, 8(SP) - MOVQ symbol+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xdlsym(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Ydn_comp(tls *TLS, src uintptr, dst uintptr, space int32, dnptrs uintptr, lastdnptr uintptr) (r int32) -TEXT ·Ydn_comp(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ src+8(FP), AX - MOVQ AX, 8(SP) - MOVQ dst+16(FP), AX - MOVQ AX, 16(SP) - MOVL space+24(FP), AX - MOVL AX, 24(SP) - MOVQ dnptrs+32(FP), AX - MOVQ AX, 32(SP) - MOVQ lastdnptr+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xdn_comp(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ydn_expand(tls *TLS, base uintptr, end uintptr, src uintptr, dest uintptr, space int32) (r int32) -TEXT ·Ydn_expand(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ base+8(FP), AX - MOVQ AX, 8(SP) - MOVQ end+16(FP), AX - MOVQ AX, 16(SP) - MOVQ src+24(FP), AX - MOVQ AX, 24(SP) - MOVQ dest+32(FP), AX - MOVQ AX, 32(SP) - MOVL space+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xdn_expand(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ydn_skipname(tls *TLS, s uintptr, end uintptr) (r int32) -TEXT ·Ydn_skipname(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ end+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xdn_skipname(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ydngettext(tls *TLS, domainname uintptr, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) -TEXT ·Ydngettext(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ domainname+8(FP), AX - MOVQ AX, 8(SP) - MOVQ msgid1+16(FP), AX - MOVQ AX, 16(SP) - MOVQ msgid2+24(FP), AX - MOVQ AX, 24(SP) - MOVQ n+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xdngettext(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ydprintf(tls *TLS, fd int32, fmt uintptr, va uintptr) (r int32) -TEXT ·Ydprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xdprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ydrand48(tls *TLS) (r float64) -TEXT ·Ydrand48(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xdrand48(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ydrem(tls *TLS, x float64, y float64) (r float64) -TEXT ·Ydrem(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xdrem(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ydremf(tls *TLS, x float32, y float32) (r float32) -TEXT ·Ydremf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xdremf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ydup(tls *TLS, fd int32) (r int32) -TEXT ·Ydup(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xdup(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ydup2(tls *TLS, old int32, new1 int32) (r1 int32) -TEXT ·Ydup2(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL old+8(FP), AX - MOVL AX, 8(SP) - MOVL new1+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xdup2(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Ydup3(tls *TLS, old int32, new1 int32, flags int32) (r int32) -TEXT ·Ydup3(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL old+8(FP), AX - MOVL AX, 8(SP) - MOVL new1+12(FP), AX - MOVL AX, 12(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xdup3(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yduplocale(tls *TLS, old Tlocale_t) (r Tlocale_t) -TEXT ·Yduplocale(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ old+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xduplocale(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yeaccess(tls *TLS, filename uintptr, amode int32) (r int32) -TEXT ·Yeaccess(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVL amode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xeaccess(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yecvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) -TEXT ·Yecvt(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - MOVQ dp+24(FP), AX - MOVQ AX, 24(SP) - MOVQ sign+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xecvt(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yencrypt(tls *TLS, block uintptr, edflag int32) -TEXT ·Yencrypt(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ block+8(FP), AX - MOVQ AX, 8(SP) - MOVL edflag+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xencrypt(SB) - RET - -// func Yendgrent(tls *TLS) -TEXT ·Yendgrent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendgrent(SB) - RET - -// func Yendhostent(tls *TLS) -TEXT ·Yendhostent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendhostent(SB) - RET - -// func Yendmntent(tls *TLS, f uintptr) (r int32) -TEXT ·Yendmntent(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xendmntent(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yendnetent(tls *TLS) -TEXT ·Yendnetent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendnetent(SB) - RET - -// func Yendprotoent(tls *TLS) -TEXT ·Yendprotoent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendprotoent(SB) - RET - -// func Yendpwent(tls *TLS) -TEXT ·Yendpwent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendpwent(SB) - RET - -// func Yendservent(tls *TLS) -TEXT ·Yendservent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendservent(SB) - RET - -// func Yendspent(tls *TLS) -TEXT ·Yendspent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendspent(SB) - RET - -// func Yendusershell(tls *TLS) -TEXT ·Yendusershell(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendusershell(SB) - RET - -// func Yendutent(tls *TLS) -TEXT ·Yendutent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendutent(SB) - RET - -// func Yendutxent(tls *TLS) -TEXT ·Yendutxent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xendutxent(SB) - RET - -// func Yepoll_create(tls *TLS, size int32) (r int32) -TEXT ·Yepoll_create(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL size+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xepoll_create(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yepoll_create1(tls *TLS, flags int32) (r1 int32) -TEXT ·Yepoll_create1(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL flags+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xepoll_create1(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yepoll_ctl(tls *TLS, fd int32, op int32, fd2 int32, ev uintptr) (r int32) -TEXT ·Yepoll_ctl(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL op+12(FP), AX - MOVL AX, 12(SP) - MOVL fd2+16(FP), AX - MOVL AX, 16(SP) - MOVQ ev+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xepoll_ctl(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yepoll_pwait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32, sigs uintptr) (r1 int32) -TEXT ·Yepoll_pwait(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ ev+16(FP), AX - MOVQ AX, 16(SP) - MOVL cnt+24(FP), AX - MOVL AX, 24(SP) - MOVL to+28(FP), AX - MOVL AX, 28(SP) - MOVQ sigs+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xepoll_pwait(SB) - MOVL 40(SP), AX - MOVL AX, r1+40(FP) - RET - -// func Yepoll_wait(tls *TLS, fd int32, ev uintptr, cnt int32, to int32) (r int32) -TEXT ·Yepoll_wait(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ ev+16(FP), AX - MOVQ AX, 16(SP) - MOVL cnt+24(FP), AX - MOVL AX, 24(SP) - MOVL to+28(FP), AX - MOVL AX, 28(SP) - CALL ·Xepoll_wait(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yerand48(tls *TLS, s uintptr) (r float64) -TEXT ·Yerand48(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xerand48(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yerf(tls *TLS, x float64) (r1 float64) -TEXT ·Yerf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xerf(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Yerfc(tls *TLS, x float64) (r1 float64) -TEXT ·Yerfc(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xerfc(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Yerfcf(tls *TLS, x float32) (r1 float32) -TEXT ·Yerfcf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xerfcf(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yerfcl(tls *TLS, x float64) (r float64) -TEXT ·Yerfcl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xerfcl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yerff(tls *TLS, x float32) (r1 float32) -TEXT ·Yerff(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xerff(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yerfl(tls *TLS, x float64) (r float64) -TEXT ·Yerfl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xerfl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yerr(tls *TLS, status int32, fmt uintptr, va uintptr) -TEXT ·Yerr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL status+8(FP), AX - MOVL AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xerr(SB) - RET - -// func Yerrx(tls *TLS, status int32, fmt uintptr, va uintptr) -TEXT ·Yerrx(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL status+8(FP), AX - MOVL AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xerrx(SB) - RET - -// func Yether_aton(tls *TLS, x uintptr) (r uintptr) -TEXT ·Yether_aton(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xether_aton(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yether_aton_r(tls *TLS, x uintptr, p_a uintptr) (r uintptr) -TEXT ·Yether_aton_r(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p_a+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xether_aton_r(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yether_hostton(tls *TLS, hostname uintptr, e uintptr) (r int32) -TEXT ·Yether_hostton(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ hostname+8(FP), AX - MOVQ AX, 8(SP) - MOVQ e+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xether_hostton(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yether_line(tls *TLS, l uintptr, e uintptr, hostname uintptr) (r int32) -TEXT ·Yether_line(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ e+16(FP), AX - MOVQ AX, 16(SP) - MOVQ hostname+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xether_line(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yether_ntoa(tls *TLS, p_a uintptr) (r uintptr) -TEXT ·Yether_ntoa(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p_a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xether_ntoa(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yether_ntoa_r(tls *TLS, p_a uintptr, x uintptr) (r uintptr) -TEXT ·Yether_ntoa_r(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p_a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ x+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xether_ntoa_r(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yether_ntohost(tls *TLS, hostname uintptr, e uintptr) (r int32) -TEXT ·Yether_ntohost(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ hostname+8(FP), AX - MOVQ AX, 8(SP) - MOVQ e+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xether_ntohost(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yeuidaccess(tls *TLS, filename uintptr, amode int32) (r int32) -TEXT ·Yeuidaccess(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVL amode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xeuidaccess(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yeventfd(tls *TLS, count uint32, flags int32) (r1 int32) -TEXT ·Yeventfd(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL count+8(FP), AX - MOVL AX, 8(SP) - MOVL flags+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xeventfd(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yeventfd_read(tls *TLS, fd int32, value uintptr) (r int32) -TEXT ·Yeventfd_read(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ value+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xeventfd_read(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yeventfd_write(tls *TLS, fd int32, _value Teventfd_t) (r int32) -TEXT ·Yeventfd_write(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ _value+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xeventfd_write(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yexecl(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) -TEXT ·Yexecl(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ argv0+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xexecl(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yexecle(tls *TLS, path uintptr, argv0 uintptr, va uintptr) (r int32) -TEXT ·Yexecle(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ argv0+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xexecle(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yexeclp(tls *TLS, file uintptr, argv0 uintptr, va uintptr) (r int32) -TEXT ·Yexeclp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ file+8(FP), AX - MOVQ AX, 8(SP) - MOVQ argv0+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xexeclp(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yexecv(tls *TLS, path uintptr, argv uintptr) (r int32) -TEXT ·Yexecv(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ argv+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xexecv(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yexecve(tls *TLS, path uintptr, argv uintptr, envp uintptr) (r int32) -TEXT ·Yexecve(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ argv+16(FP), AX - MOVQ AX, 16(SP) - MOVQ envp+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xexecve(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yexecvp(tls *TLS, file uintptr, argv uintptr) (r int32) -TEXT ·Yexecvp(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ file+8(FP), AX - MOVQ AX, 8(SP) - MOVQ argv+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xexecvp(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yexecvpe(tls *TLS, file uintptr, argv uintptr, envp uintptr) (r int32) -TEXT ·Yexecvpe(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ file+8(FP), AX - MOVQ AX, 8(SP) - MOVQ argv+16(FP), AX - MOVQ AX, 16(SP) - MOVQ envp+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xexecvpe(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yexit(tls *TLS, code int32) -TEXT ·Yexit(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL code+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xexit(SB) - RET - -// func Yexp(tls *TLS, x1 float64) (r1 float64) -TEXT ·Yexp(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xexp(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Yexp10(tls *TLS, x float64) (r float64) -TEXT ·Yexp10(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xexp10(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yexp10f(tls *TLS, x float32) (r float32) -TEXT ·Yexp10f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xexp10f(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yexp10l(tls *TLS, x float64) (r float64) -TEXT ·Yexp10l(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xexp10l(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yexp2(tls *TLS, x1 float64) (r1 float64) -TEXT ·Yexp2(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xexp2(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Yexp2f(tls *TLS, x2 float32) (r1 float32) -TEXT ·Yexp2f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x2+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xexp2f(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yexp2l(tls *TLS, x float64) (r float64) -TEXT ·Yexp2l(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xexp2l(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yexpf(tls *TLS, x2 float32) (r1 float32) -TEXT ·Yexpf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x2+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xexpf(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yexpl(tls *TLS, x float64) (r float64) -TEXT ·Yexpl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xexpl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yexplicit_bzero(tls *TLS, d uintptr, n Tsize_t) -TEXT ·Yexplicit_bzero(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xexplicit_bzero(SB) - RET - -// func Yexpm1(tls *TLS, x3 float64) (r float64) -TEXT ·Yexpm1(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xexpm1(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yexpm1f(tls *TLS, x3 float32) (r float32) -TEXT ·Yexpm1f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xexpm1f(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yexpm1l(tls *TLS, x float64) (r float64) -TEXT ·Yexpm1l(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xexpm1l(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfabs(tls *TLS, x float64) (r float64) -TEXT ·Yfabs(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfabs(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfabsf(tls *TLS, x float32) (r float32) -TEXT ·Yfabsf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfabsf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfabsl(tls *TLS, x float64) (r float64) -TEXT ·Yfabsl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfabsl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfaccessat(tls *TLS, fd int32, filename uintptr, amode int32, flag int32) (r int32) -TEXT ·Yfaccessat(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ filename+16(FP), AX - MOVQ AX, 16(SP) - MOVL amode+24(FP), AX - MOVL AX, 24(SP) - MOVL flag+28(FP), AX - MOVL AX, 28(SP) - CALL ·Xfaccessat(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfallocate(tls *TLS, fd int32, mode int32, base Toff_t, len1 Toff_t) (r int32) -TEXT ·Yfallocate(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL mode+12(FP), AX - MOVL AX, 12(SP) - MOVQ base+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfallocate(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfanotify_init(tls *TLS, flags uint32, event_f_flags uint32) (r int32) -TEXT ·Yfanotify_init(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL flags+8(FP), AX - MOVL AX, 8(SP) - MOVL event_f_flags+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xfanotify_init(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfanotify_mark(tls *TLS, fanotify_fd int32, flags uint32, mask uint64, dfd int32, pathname uintptr) (r int32) -TEXT ·Yfanotify_mark(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fanotify_fd+8(FP), AX - MOVL AX, 8(SP) - MOVL flags+12(FP), AX - MOVL AX, 12(SP) - MOVQ mask+16(FP), AX - MOVQ AX, 16(SP) - MOVL dfd+24(FP), AX - MOVL AX, 24(SP) - MOVQ pathname+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xfanotify_mark(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yfchdir(tls *TLS, fd int32) (r int32) -TEXT ·Yfchdir(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfchdir(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfchmod(tls *TLS, fd int32, mode Tmode_t) (r int32) -TEXT ·Yfchmod(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL mode+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xfchmod(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfchmodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, flag int32) (r int32) -TEXT ·Yfchmodat(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVL mode+24(FP), AX - MOVL AX, 24(SP) - MOVL flag+28(FP), AX - MOVL AX, 28(SP) - CALL ·Xfchmodat(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfchown(tls *TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) -TEXT ·Yfchown(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL uid+12(FP), AX - MOVL AX, 12(SP) - MOVL gid+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xfchown(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfchownat(tls *TLS, fd int32, path uintptr, uid Tuid_t, gid Tgid_t, flag int32) (r int32) -TEXT ·Yfchownat(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVL uid+24(FP), AX - MOVL AX, 24(SP) - MOVL gid+28(FP), AX - MOVL AX, 28(SP) - MOVL flag+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xfchownat(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yfclose(tls *TLS, f uintptr) (r1 int32) -TEXT ·Yfclose(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfclose(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yfcntl(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) -TEXT ·Yfcntl(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL cmd+12(FP), AX - MOVL AX, 12(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfcntl(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfcntl64(tls *TLS, fd int32, cmd int32, va uintptr) (r int32) -TEXT ·Yfcntl64(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL cmd+12(FP), AX - MOVL AX, 12(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfcntl64(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfcvt(tls *TLS, x float64, n int32, dp uintptr, sign uintptr) (r uintptr) -TEXT ·Yfcvt(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - MOVQ dp+24(FP), AX - MOVQ AX, 24(SP) - MOVQ sign+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xfcvt(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yfdatasync(tls *TLS, fd int32) (r int32) -TEXT ·Yfdatasync(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfdatasync(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfdim(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yfdim(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfdim(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfdimf(tls *TLS, x float32, y float32) (r float32) -TEXT ·Yfdimf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xfdimf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfdiml(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yfdiml(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfdiml(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfdopen(tls *TLS, fd int32, mode uintptr) (r uintptr) -TEXT ·Yfdopen(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ mode+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfdopen(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfdopendir(tls *TLS, fd int32) (r uintptr) -TEXT ·Yfdopendir(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfdopendir(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfeclearexcept(tls *TLS, mask int32) (r int32) -TEXT ·Yfeclearexcept(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL mask+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfeclearexcept(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfegetenv(tls *TLS, envp uintptr) (r int32) -TEXT ·Yfegetenv(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ envp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfegetenv(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfegetround(tls *TLS) (r int32) -TEXT ·Yfegetround(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xfegetround(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yfeof(tls *TLS, f uintptr) (r int32) -TEXT ·Yfeof(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfeof(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfeof_unlocked(tls *TLS, f uintptr) (r int32) -TEXT ·Yfeof_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfeof_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yferaiseexcept(tls *TLS, mask int32) (r int32) -TEXT ·Yferaiseexcept(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL mask+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xferaiseexcept(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yferror(tls *TLS, f uintptr) (r int32) -TEXT ·Yferror(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xferror(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yferror_unlocked(tls *TLS, f uintptr) (r int32) -TEXT ·Yferror_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xferror_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfesetenv(tls *TLS, envp uintptr) (r int32) -TEXT ·Yfesetenv(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ envp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfesetenv(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfetestexcept(tls *TLS, mask int32) (r int32) -TEXT ·Yfetestexcept(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL mask+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfetestexcept(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfexecve(tls *TLS, fd int32, argv uintptr, envp uintptr) (r1 int32) -TEXT ·Yfexecve(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ argv+16(FP), AX - MOVQ AX, 16(SP) - MOVQ envp+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfexecve(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Yfflush(tls *TLS, f uintptr) (r1 int32) -TEXT ·Yfflush(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfflush(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yfflush_unlocked(tls *TLS, f uintptr) (r int32) -TEXT ·Yfflush_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfflush_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yffs(tls *TLS, i int32) (r int32) -TEXT ·Yffs(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL i+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xffs(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yffsl(tls *TLS, i int64) (r int32) -TEXT ·Yffsl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ i+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xffsl(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yffsll(tls *TLS, i int64) (r int32) -TEXT ·Yffsll(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ i+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xffsll(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfgetc(tls *TLS, f1 uintptr) (r int32) -TEXT ·Yfgetc(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfgetc(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfgetc_unlocked(tls *TLS, f uintptr) (r int32) -TEXT ·Yfgetc_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfgetc_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfgetgrent(tls *TLS, f uintptr) (r uintptr) -TEXT ·Yfgetgrent(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfgetgrent(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfgetln(tls *TLS, f uintptr, plen uintptr) (r uintptr) -TEXT ·Yfgetln(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ plen+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfgetln(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfgetpos(tls *TLS, f uintptr, pos uintptr) (r int32) -TEXT ·Yfgetpos(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ pos+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfgetpos(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfgetpwent(tls *TLS, f uintptr) (r uintptr) -TEXT ·Yfgetpwent(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfgetpwent(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfgets(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) -TEXT ·Yfgets(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfgets(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yfgets_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) -TEXT ·Yfgets_unlocked(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfgets_unlocked(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yfgetwc(tls *TLS, f uintptr) (r Twint_t) -TEXT ·Yfgetwc(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfgetwc(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfgetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) -TEXT ·Yfgetwc_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfgetwc_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfgetws(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) -TEXT ·Yfgetws(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfgetws(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yfgetws_unlocked(tls *TLS, s uintptr, n int32, f uintptr) (r uintptr) -TEXT ·Yfgetws_unlocked(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfgetws_unlocked(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yfgetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) -TEXT ·Yfgetxattr(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL filedes+8(FP), AX - MOVL AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - MOVQ value+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xfgetxattr(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yfileno(tls *TLS, f uintptr) (r int32) -TEXT ·Yfileno(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfileno(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfileno_unlocked(tls *TLS, f uintptr) (r int32) -TEXT ·Yfileno_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfileno_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfinite(tls *TLS, x float64) (r int32) -TEXT ·Yfinite(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfinite(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfinitef(tls *TLS, x float32) (r int32) -TEXT ·Yfinitef(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfinitef(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yflistxattr(tls *TLS, filedes int32, list uintptr, size Tsize_t) (r Tssize_t) -TEXT ·Yflistxattr(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL filedes+8(FP), AX - MOVL AX, 8(SP) - MOVQ list+16(FP), AX - MOVQ AX, 16(SP) - MOVQ size+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xflistxattr(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yflock(tls *TLS, fd int32, op int32) (r int32) -TEXT ·Yflock(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL op+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xflock(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yflockfile(tls *TLS, f uintptr) -TEXT ·Yflockfile(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xflockfile(SB) - RET - -// func Yfloor(tls *TLS, x3 float64) (r float64) -TEXT ·Yfloor(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfloor(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfloorf(tls *TLS, x3 float32) (r float32) -TEXT ·Yfloorf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfloorf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfloorl(tls *TLS, x float64) (r float64) -TEXT ·Yfloorl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfloorl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfma(tls *TLS, x1 float64, y float64, z float64) (r1 float64) -TEXT ·Yfma(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - MOVQ z+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfma(SB) - MOVQ 32(SP), AX - MOVQ AX, r1+32(FP) - RET - -// func Yfmal(tls *TLS, x float64, y float64, z float64) (r float64) -TEXT ·Yfmal(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - MOVQ z+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfmal(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yfmax(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yfmax(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfmax(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfmaxf(tls *TLS, x float32, y float32) (r float32) -TEXT ·Yfmaxf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xfmaxf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfmaxl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yfmaxl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfmaxl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfmemopen(tls *TLS, buf uintptr, size Tsize_t, mode uintptr) (r uintptr) -TEXT ·Yfmemopen(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buf+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVQ mode+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfmemopen(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yfmin(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yfmin(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfmin(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfminf(tls *TLS, x float32, y float32) (r float32) -TEXT ·Yfminf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xfminf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfminl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yfminl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfminl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfmod(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yfmod(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfmod(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfmodf(tls *TLS, x float32, y float32) (r float32) -TEXT ·Yfmodf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xfmodf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfmodl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yfmodl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfmodl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfmtmsg(tls *TLS, classification int64, label uintptr, severity int32, text uintptr, action uintptr, tag uintptr) (r int32) -TEXT ·Yfmtmsg(SB),$64-60 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ classification+8(FP), AX - MOVQ AX, 8(SP) - MOVQ label+16(FP), AX - MOVQ AX, 16(SP) - MOVL severity+24(FP), AX - MOVL AX, 24(SP) - MOVQ text+32(FP), AX - MOVQ AX, 32(SP) - MOVQ action+40(FP), AX - MOVQ AX, 40(SP) - MOVQ tag+48(FP), AX - MOVQ AX, 48(SP) - CALL ·Xfmtmsg(SB) - MOVL 56(SP), AX - MOVL AX, r+56(FP) - RET - -// func Yfnmatch(tls *TLS, pat uintptr, str uintptr, flags int32) (r int32) -TEXT ·Yfnmatch(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ pat+8(FP), AX - MOVQ AX, 8(SP) - MOVQ str+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xfnmatch(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfopen(tls *TLS, filename uintptr, mode uintptr) (r uintptr) -TEXT ·Yfopen(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mode+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfopen(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfopen64(tls *TLS, filename uintptr, mode uintptr) (r uintptr) -TEXT ·Yfopen64(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mode+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfopen64(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfopencookie(tls *TLS, cookie uintptr, mode uintptr, iofuncs Tcookie_io_functions_t) (r uintptr) -TEXT ·Yfopencookie(SB),$64-64 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ cookie+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mode+16(FP), AX - MOVQ AX, 16(SP) - MOVQ iofuncs_Fread+24(FP), AX - MOVQ AX, 24(SP) - MOVQ iofuncs_Fwrite+32(FP), AX - MOVQ AX, 32(SP) - MOVQ iofuncs_Fseek+40(FP), AX - MOVQ AX, 40(SP) - MOVQ iofuncs_Fclose1+48(FP), AX - MOVQ AX, 48(SP) - CALL ·Xfopencookie(SB) - MOVQ 56(SP), AX - MOVQ AX, r+56(FP) - RET - -// func Yfork(t *TLS) int32 -TEXT ·Yfork(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xfork(SB) - MOVL 8(SP), AX - MOVL AX, ret+8(FP) - RET - -// func Yfpathconf(tls *TLS, fd int32, name int32) (r int64) -TEXT ·Yfpathconf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL name+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xfpathconf(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yfprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) -TEXT ·Yfprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfpurge(tls *TLS, f uintptr) (r int32) -TEXT ·Yfpurge(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfpurge(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfputc(tls *TLS, c1 int32, f1 uintptr) (r int32) -TEXT ·Yfputc(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c1+8(FP), AX - MOVL AX, 8(SP) - MOVQ f1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfputc(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) -TEXT ·Yfputc_unlocked(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfputc_unlocked(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfputs(tls *TLS, s uintptr, f uintptr) (r int32) -TEXT ·Yfputs(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfputs(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfputs_unlocked(tls *TLS, s uintptr, f uintptr) (r int32) -TEXT ·Yfputs_unlocked(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfputs_unlocked(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) -TEXT ·Yfputwc(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfputwc(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) -TEXT ·Yfputwc_unlocked(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfputwc_unlocked(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfputws(tls *TLS, _ws uintptr, f uintptr) (r int32) -TEXT ·Yfputws(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ _ws+8(FP), AX - MOVQ AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfputws(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfputws_unlocked(tls *TLS, _ws uintptr, f uintptr) (r int32) -TEXT ·Yfputws_unlocked(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ _ws+8(FP), AX - MOVQ AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfputws_unlocked(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfread(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) -TEXT ·Yfread(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ destv+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVQ nmemb+24(FP), AX - MOVQ AX, 24(SP) - MOVQ f+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xfread(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yfread_unlocked(tls *TLS, destv uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) -TEXT ·Yfread_unlocked(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ destv+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVQ nmemb+24(FP), AX - MOVQ AX, 24(SP) - MOVQ f+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xfread_unlocked(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yfree(tls *TLS, p uintptr) -TEXT ·Yfree(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfree(SB) - RET - -// func Yfreeaddrinfo(tls *TLS, p uintptr) -TEXT ·Yfreeaddrinfo(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfreeaddrinfo(SB) - RET - -// func Yfreeifaddrs(tls *TLS, ifp uintptr) -TEXT ·Yfreeifaddrs(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ifp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfreeifaddrs(SB) - RET - -// func Yfreelocale(tls *TLS, l Tlocale_t) -TEXT ·Yfreelocale(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfreelocale(SB) - RET - -// func Yfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) -TEXT ·Yfremovexattr(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfremovexattr(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfreopen(tls *TLS, filename uintptr, mode uintptr, f uintptr) (r uintptr) -TEXT ·Yfreopen(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mode+16(FP), AX - MOVQ AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfreopen(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yfrexp(tls *TLS, x float64, e uintptr) (r float64) -TEXT ·Yfrexp(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ e+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfrexp(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfrexpf(tls *TLS, x float32, e uintptr) (r float32) -TEXT ·Yfrexpf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVQ e+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfrexpf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfrexpl(tls *TLS, x float64, e uintptr) (r float64) -TEXT ·Yfrexpl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ e+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfrexpl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yfscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) -TEXT ·Yfscanf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfscanf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfseek(tls *TLS, f uintptr, off int64, whence int32) (r int32) -TEXT ·Yfseek(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ off+16(FP), AX - MOVQ AX, 16(SP) - MOVL whence+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xfseek(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfseeko(tls *TLS, f uintptr, off Toff_t, whence int32) (r int32) -TEXT ·Yfseeko(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ off+16(FP), AX - MOVQ AX, 16(SP) - MOVL whence+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xfseeko(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfsetpos(tls *TLS, f uintptr, pos uintptr) (r int32) -TEXT ·Yfsetpos(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ pos+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfsetpos(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfsetxattr(tls *TLS, filedes int32, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) -TEXT ·Yfsetxattr(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL filedes+8(FP), AX - MOVL AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - MOVQ value+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - MOVL flags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xfsetxattr(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Yfstat(tls *TLS, fd int32, st uintptr) (r int32) -TEXT ·Yfstat(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ st+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfstat(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfstat64(tls *TLS, fd int32, st uintptr) (r int32) -TEXT ·Yfstat64(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ st+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfstat64(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfstatat(tls *TLS, fd int32, path uintptr, st uintptr, flag int32) (r int32) -TEXT ·Yfstatat(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVQ st+24(FP), AX - MOVQ AX, 24(SP) - MOVL flag+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xfstatat(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yfstatfs(tls *TLS, fd int32, buf uintptr) (r int32) -TEXT ·Yfstatfs(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfstatfs(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfstatvfs(tls *TLS, fd int32, buf uintptr) (r int32) -TEXT ·Yfstatvfs(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfstatvfs(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfsync(tls *TLS, fd int32) (r int32) -TEXT ·Yfsync(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xfsync(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yftell(tls *TLS, f uintptr) (r int64) -TEXT ·Yftell(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xftell(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yftello(tls *TLS, f uintptr) (r Toff_t) -TEXT ·Yftello(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xftello(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yftime(tls *TLS, tp uintptr) (r int32) -TEXT ·Yftime(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xftime(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yftok(tls *TLS, path uintptr, id int32) (r Tkey_t) -TEXT ·Yftok(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL id+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xftok(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yftruncate(tls *TLS, fd int32, length Toff_t) (r int32) -TEXT ·Yftruncate(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ length+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xftruncate(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yftruncate64(tls *TLS, fd int32, length Toff_t) (r int32) -TEXT ·Yftruncate64(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ length+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xftruncate64(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yftrylockfile(tls *TLS, f uintptr) (r int32) -TEXT ·Yftrylockfile(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xftrylockfile(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yfts64_close(t *TLS, ftsp uintptr) int32 -TEXT ·Yfts64_close(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ftsp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfts64_close(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Yfts64_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr -TEXT ·Yfts64_open(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path_argv+8(FP), AX - MOVQ AX, 8(SP) - MOVL options+16(FP), AX - MOVL AX, 16(SP) - MOVQ compar+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfts64_open(SB) - MOVQ 32(SP), AX - MOVQ AX, ret+32(FP) - RET - -// func Yfts64_read(t *TLS, ftsp uintptr) uintptr -TEXT ·Yfts64_read(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ftsp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfts64_read(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Yfts_close(t *TLS, ftsp uintptr) int32 -TEXT ·Yfts_close(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ftsp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfts_close(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Yfts_open(t *TLS, path_argv uintptr, options int32, compar uintptr) uintptr -TEXT ·Yfts_open(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path_argv+8(FP), AX - MOVQ AX, 8(SP) - MOVL options+16(FP), AX - MOVL AX, 16(SP) - MOVQ compar+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfts_open(SB) - MOVQ 32(SP), AX - MOVQ AX, ret+32(FP) - RET - -// func Yfts_read(t *TLS, ftsp uintptr) uintptr -TEXT ·Yfts_read(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ftsp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfts_read(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Yftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) -TEXT ·Yftw(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fn+16(FP), AX - MOVQ AX, 16(SP) - MOVL fd_limit+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xftw(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfunlockfile(tls *TLS, f uintptr) -TEXT ·Yfunlockfile(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xfunlockfile(SB) - RET - -// func Yfutimens(tls *TLS, fd int32, times uintptr) (r int32) -TEXT ·Yfutimens(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ times+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfutimens(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfutimes(tls *TLS, fd int32, tv uintptr) (r int32) -TEXT ·Yfutimes(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ tv+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xfutimes(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfutimesat(tls *TLS, dirfd int32, pathname uintptr, times uintptr) (r int32) -TEXT ·Yfutimesat(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL dirfd+8(FP), AX - MOVL AX, 8(SP) - MOVQ pathname+16(FP), AX - MOVQ AX, 16(SP) - MOVQ times+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfutimesat(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfwide(tls *TLS, f uintptr, mode int32) (r int32) -TEXT ·Yfwide(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVL mode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xfwide(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yfwprintf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) -TEXT ·Yfwprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfwprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yfwrite(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) -TEXT ·Yfwrite(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ src+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVQ nmemb+24(FP), AX - MOVQ AX, 24(SP) - MOVQ f+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xfwrite(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yfwrite_unlocked(tls *TLS, src uintptr, size Tsize_t, nmemb Tsize_t, f uintptr) (r Tsize_t) -TEXT ·Yfwrite_unlocked(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ src+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVQ nmemb+24(FP), AX - MOVQ AX, 24(SP) - MOVQ f+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xfwrite_unlocked(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yfwscanf(tls *TLS, f uintptr, fmt uintptr, va uintptr) (r int32) -TEXT ·Yfwscanf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xfwscanf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ygai_strerror(tls *TLS, ecode int32) (r uintptr) -TEXT ·Ygai_strerror(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL ecode+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xgai_strerror(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygcvt(tls *TLS, x float64, n int32, b uintptr) (r uintptr) -TEXT ·Ygcvt(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - MOVQ b+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgcvt(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yget_avphys_pages(tls *TLS) (r int64) -TEXT ·Yget_avphys_pages(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xget_avphys_pages(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Yget_current_dir_name(tls *TLS) (r uintptr) -TEXT ·Yget_current_dir_name(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xget_current_dir_name(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Yget_nprocs(tls *TLS) (r int32) -TEXT ·Yget_nprocs(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xget_nprocs(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yget_nprocs_conf(tls *TLS) (r int32) -TEXT ·Yget_nprocs_conf(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xget_nprocs_conf(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yget_phys_pages(tls *TLS) (r int64) -TEXT ·Yget_phys_pages(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xget_phys_pages(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetaddrinfo(tls *TLS, host uintptr, serv uintptr, hint uintptr, res uintptr) (r1 int32) -TEXT ·Ygetaddrinfo(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ host+8(FP), AX - MOVQ AX, 8(SP) - MOVQ serv+16(FP), AX - MOVQ AX, 16(SP) - MOVQ hint+24(FP), AX - MOVQ AX, 24(SP) - MOVQ res+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xgetaddrinfo(SB) - MOVL 40(SP), AX - MOVL AX, r1+40(FP) - RET - -// func Ygetauxval(tls *TLS, item uint64) (r uint64) -TEXT ·Ygetauxval(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ item+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetauxval(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetc(tls *TLS, f1 uintptr) (r int32) -TEXT ·Ygetc(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetc(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ygetc_unlocked(tls *TLS, f uintptr) (r int32) -TEXT ·Ygetc_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetc_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ygetchar(tls *TLS) (r int32) -TEXT ·Ygetchar(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetchar(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetchar_unlocked(tls *TLS) (r int32) -TEXT ·Ygetchar_unlocked(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetchar_unlocked(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetcwd(tls *TLS, buf uintptr, size Tsize_t) (r uintptr) -TEXT ·Ygetcwd(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buf+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetcwd(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ygetdate(tls *TLS, s uintptr) (r uintptr) -TEXT ·Ygetdate(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetdate(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetdelim(tls *TLS, s uintptr, n uintptr, delim int32, f uintptr) (r Tssize_t) -TEXT ·Ygetdelim(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVL delim+24(FP), AX - MOVL AX, 24(SP) - MOVQ f+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xgetdelim(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ygetdents(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) -TEXT ·Ygetdents(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgetdents(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ygetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) -TEXT ·Ygetdomainname(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetdomainname(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygetdtablesize(tls *TLS) (r int32) -TEXT ·Ygetdtablesize(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetdtablesize(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetegid(tls *TLS) (r Tgid_t) -TEXT ·Ygetegid(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetegid(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetentropy(tls *TLS, buffer uintptr, len1 Tsize_t) (r int32) -TEXT ·Ygetentropy(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buffer+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetentropy(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygetenv(tls *TLS, name uintptr) (r uintptr) -TEXT ·Ygetenv(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetenv(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygeteuid(tls *TLS) (r Tuid_t) -TEXT ·Ygeteuid(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgeteuid(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetgid(tls *TLS) (r Tgid_t) -TEXT ·Ygetgid(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetgid(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetgrent(tls *TLS) (r uintptr) -TEXT ·Ygetgrent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetgrent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetgrgid(tls *TLS, gid Tgid_t) (r uintptr) -TEXT ·Ygetgrgid(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL gid+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xgetgrgid(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetgrgid_r(tls *TLS, gid Tgid_t, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) -TEXT ·Ygetgrgid_r(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL gid+8(FP), AX - MOVL AX, 8(SP) - MOVQ gr+16(FP), AX - MOVQ AX, 16(SP) - MOVQ buf+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - MOVQ res+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xgetgrgid_r(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ygetgrnam(tls *TLS, name uintptr) (r uintptr) -TEXT ·Ygetgrnam(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetgrnam(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetgrnam_r(tls *TLS, name uintptr, gr uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) -TEXT ·Ygetgrnam_r(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ gr+16(FP), AX - MOVQ AX, 16(SP) - MOVQ buf+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - MOVQ res+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xgetgrnam_r(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ygetgrouplist(tls *TLS, user uintptr, gid Tgid_t, groups uintptr, ngroups uintptr) (r int32) -TEXT ·Ygetgrouplist(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ user+8(FP), AX - MOVQ AX, 8(SP) - MOVL gid+16(FP), AX - MOVL AX, 16(SP) - MOVQ groups+24(FP), AX - MOVQ AX, 24(SP) - MOVQ ngroups+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xgetgrouplist(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ygetgroups(tls *TLS, count int32, list uintptr) (r int32) -TEXT ·Ygetgroups(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL count+8(FP), AX - MOVL AX, 8(SP) - MOVQ list+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetgroups(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygethostbyaddr(tls *TLS, a uintptr, l Tsocklen_t, af int32) (r uintptr) -TEXT ·Ygethostbyaddr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVL l+16(FP), AX - MOVL AX, 16(SP) - MOVL af+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xgethostbyaddr(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ygethostbyaddr_r(tls *TLS, a uintptr, l Tsocklen_t, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) -TEXT ·Ygethostbyaddr_r(SB),$72-68 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVL l+16(FP), AX - MOVL AX, 16(SP) - MOVL af+20(FP), AX - MOVL AX, 20(SP) - MOVQ h+24(FP), AX - MOVQ AX, 24(SP) - MOVQ buf+32(FP), AX - MOVQ AX, 32(SP) - MOVQ buflen+40(FP), AX - MOVQ AX, 40(SP) - MOVQ res+48(FP), AX - MOVQ AX, 48(SP) - MOVQ err+56(FP), AX - MOVQ AX, 56(SP) - CALL ·Xgethostbyaddr_r(SB) - MOVL 64(SP), AX - MOVL AX, r+64(FP) - RET - -// func Ygethostbyname(tls *TLS, name uintptr) (r uintptr) -TEXT ·Ygethostbyname(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgethostbyname(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygethostbyname2(tls *TLS, name uintptr, af int32) (r uintptr) -TEXT ·Ygethostbyname2(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVL af+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xgethostbyname2(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ygethostbyname2_r(tls *TLS, name uintptr, af int32, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) -TEXT ·Ygethostbyname2_r(SB),$72-68 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVL af+16(FP), AX - MOVL AX, 16(SP) - MOVQ h+24(FP), AX - MOVQ AX, 24(SP) - MOVQ buf+32(FP), AX - MOVQ AX, 32(SP) - MOVQ buflen+40(FP), AX - MOVQ AX, 40(SP) - MOVQ res+48(FP), AX - MOVQ AX, 48(SP) - MOVQ err+56(FP), AX - MOVQ AX, 56(SP) - CALL ·Xgethostbyname2_r(SB) - MOVL 64(SP), AX - MOVL AX, r+64(FP) - RET - -// func Ygethostbyname_r(tls *TLS, name uintptr, h uintptr, buf uintptr, buflen Tsize_t, res uintptr, err uintptr) (r int32) -TEXT ·Ygethostbyname_r(SB),$64-60 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ h+16(FP), AX - MOVQ AX, 16(SP) - MOVQ buf+24(FP), AX - MOVQ AX, 24(SP) - MOVQ buflen+32(FP), AX - MOVQ AX, 32(SP) - MOVQ res+40(FP), AX - MOVQ AX, 40(SP) - MOVQ err+48(FP), AX - MOVQ AX, 48(SP) - CALL ·Xgethostbyname_r(SB) - MOVL 56(SP), AX - MOVL AX, r+56(FP) - RET - -// func Ygethostent(tls *TLS) (r uintptr) -TEXT ·Ygethostent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgethostent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygethostid(tls *TLS) (r int64) -TEXT ·Ygethostid(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgethostid(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) -TEXT ·Ygethostname(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgethostname(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygetifaddrs(tls *TLS, ifap uintptr) (r1 int32) -TEXT ·Ygetifaddrs(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ifap+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetifaddrs(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Ygetitimer(tls *TLS, which int32, old uintptr) (r1 int32) -TEXT ·Ygetitimer(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL which+8(FP), AX - MOVL AX, 8(SP) - MOVQ old+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetitimer(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ygetline(tls *TLS, s uintptr, n uintptr, f uintptr) (r Tssize_t) -TEXT ·Ygetline(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgetline(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ygetloadavg(tls *TLS, a uintptr, n int32) (r int32) -TEXT ·Ygetloadavg(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xgetloadavg(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygetlogin(tls *TLS) (r uintptr) -TEXT ·Ygetlogin(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetlogin(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetlogin_r(tls *TLS, name uintptr, size Tsize_t) (r int32) -TEXT ·Ygetlogin_r(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetlogin_r(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygetmntent(tls *TLS, f uintptr) (r uintptr) -TEXT ·Ygetmntent(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetmntent(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetmntent_r(tls *TLS, f uintptr, mnt uintptr, linebuf uintptr, buflen int32) (r uintptr) -TEXT ·Ygetmntent_r(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mnt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ linebuf+24(FP), AX - MOVQ AX, 24(SP) - MOVL buflen+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xgetmntent_r(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ygetnameinfo(tls *TLS, sa uintptr, sl Tsocklen_t, node uintptr, nodelen Tsocklen_t, serv uintptr, servlen Tsocklen_t, flags int32) (r int32) -TEXT ·Ygetnameinfo(SB),$64-60 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ sa+8(FP), AX - MOVQ AX, 8(SP) - MOVL sl+16(FP), AX - MOVL AX, 16(SP) - MOVQ node+24(FP), AX - MOVQ AX, 24(SP) - MOVL nodelen+32(FP), AX - MOVL AX, 32(SP) - MOVQ serv+40(FP), AX - MOVQ AX, 40(SP) - MOVL servlen+48(FP), AX - MOVL AX, 48(SP) - MOVL flags+52(FP), AX - MOVL AX, 52(SP) - CALL ·Xgetnameinfo(SB) - MOVL 56(SP), AX - MOVL AX, r+56(FP) - RET - -// func Ygetnetbyaddr(tls *TLS, net Tuint32_t, type1 int32) (r uintptr) -TEXT ·Ygetnetbyaddr(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL net+8(FP), AX - MOVL AX, 8(SP) - MOVL type1+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xgetnetbyaddr(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetnetbyname(tls *TLS, name uintptr) (r uintptr) -TEXT ·Ygetnetbyname(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetnetbyname(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetnetent(tls *TLS) (r uintptr) -TEXT ·Ygetnetent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetnetent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetopt(tls *TLS, argc int32, argv uintptr, optstring uintptr) (r int32) -TEXT ·Ygetopt(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL argc+8(FP), AX - MOVL AX, 8(SP) - MOVQ argv+16(FP), AX - MOVQ AX, 16(SP) - MOVQ optstring+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgetopt(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ygetopt_long(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) -TEXT ·Ygetopt_long(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL argc+8(FP), AX - MOVL AX, 8(SP) - MOVQ argv+16(FP), AX - MOVQ AX, 16(SP) - MOVQ optstring+24(FP), AX - MOVQ AX, 24(SP) - MOVQ longopts+32(FP), AX - MOVQ AX, 32(SP) - MOVQ idx+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xgetopt_long(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ygetopt_long_only(tls *TLS, argc int32, argv uintptr, optstring uintptr, longopts uintptr, idx uintptr) (r int32) -TEXT ·Ygetopt_long_only(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL argc+8(FP), AX - MOVL AX, 8(SP) - MOVQ argv+16(FP), AX - MOVQ AX, 16(SP) - MOVQ optstring+24(FP), AX - MOVQ AX, 24(SP) - MOVQ longopts+32(FP), AX - MOVQ AX, 32(SP) - MOVQ idx+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xgetopt_long_only(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ygetpagesize(tls *TLS) (r int32) -TEXT ·Ygetpagesize(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetpagesize(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetpass(tls *TLS, prompt uintptr) (r uintptr) -TEXT ·Ygetpass(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ prompt+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetpass(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetpeername(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) -TEXT ·Ygetpeername(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ addr+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgetpeername(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ygetpgid(tls *TLS, pid Tpid_t) (r Tpid_t) -TEXT ·Ygetpgid(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xgetpgid(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ygetpgrp(tls *TLS) (r Tpid_t) -TEXT ·Ygetpgrp(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetpgrp(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetpid(tls *TLS) (r Tpid_t) -TEXT ·Ygetpid(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetpid(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetppid(tls *TLS) (r Tpid_t) -TEXT ·Ygetppid(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetppid(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetpriority(tls *TLS, which int32, who Tid_t) (r int32) -TEXT ·Ygetpriority(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL which+8(FP), AX - MOVL AX, 8(SP) - MOVL who+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xgetpriority(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ygetprotobyname(tls *TLS, name uintptr) (r uintptr) -TEXT ·Ygetprotobyname(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetprotobyname(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetprotobynumber(tls *TLS, num int32) (r uintptr) -TEXT ·Ygetprotobynumber(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL num+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xgetprotobynumber(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetprotoent(tls *TLS) (r uintptr) -TEXT ·Ygetprotoent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetprotoent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetpwent(tls *TLS) (r uintptr) -TEXT ·Ygetpwent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetpwent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetpwnam(tls *TLS, name uintptr) (r uintptr) -TEXT ·Ygetpwnam(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetpwnam(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetpwnam_r(tls *TLS, name uintptr, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) -TEXT ·Ygetpwnam_r(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ pw+16(FP), AX - MOVQ AX, 16(SP) - MOVQ buf+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - MOVQ res+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xgetpwnam_r(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ygetpwuid(tls *TLS, uid Tuid_t) (r uintptr) -TEXT ·Ygetpwuid(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL uid+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xgetpwuid(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetpwuid_r(tls *TLS, uid Tuid_t, pw uintptr, buf uintptr, size Tsize_t, res uintptr) (r int32) -TEXT ·Ygetpwuid_r(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL uid+8(FP), AX - MOVL AX, 8(SP) - MOVQ pw+16(FP), AX - MOVQ AX, 16(SP) - MOVQ buf+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - MOVQ res+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xgetpwuid_r(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ygetrandom(tls *TLS, buf uintptr, buflen Tsize_t, flags uint32) (r Tssize_t) -TEXT ·Ygetrandom(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buf+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buflen+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xgetrandom(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ygetresgid(tls *TLS, rgid uintptr, egid uintptr, sgid uintptr) (r int32) -TEXT ·Ygetresgid(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ rgid+8(FP), AX - MOVQ AX, 8(SP) - MOVQ egid+16(FP), AX - MOVQ AX, 16(SP) - MOVQ sgid+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgetresgid(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ygetresuid(tls *TLS, ruid uintptr, euid uintptr, suid uintptr) (r int32) -TEXT ·Ygetresuid(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ruid+8(FP), AX - MOVQ AX, 8(SP) - MOVQ euid+16(FP), AX - MOVQ AX, 16(SP) - MOVQ suid+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgetresuid(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ygetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) -TEXT ·Ygetrlimit(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL resource+8(FP), AX - MOVL AX, 8(SP) - MOVQ rlim+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetrlimit(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygetrlimit64(tls *TLS, resource int32, rlim uintptr) (r int32) -TEXT ·Ygetrlimit64(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL resource+8(FP), AX - MOVL AX, 8(SP) - MOVQ rlim+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetrlimit64(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygetrusage(tls *TLS, who int32, ru uintptr) (r1 int32) -TEXT ·Ygetrusage(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL who+8(FP), AX - MOVL AX, 8(SP) - MOVQ ru+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetrusage(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ygets(tls *TLS, s uintptr) (r uintptr) -TEXT ·Ygets(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgets(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetservbyname(tls *TLS, name uintptr, prots uintptr) (r uintptr) -TEXT ·Ygetservbyname(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ prots+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgetservbyname(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ygetservbyname_r(tls *TLS, name uintptr, prots uintptr, se uintptr, buf uintptr, buflen Tsize_t, res uintptr) (r int32) -TEXT ·Ygetservbyname_r(SB),$64-60 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ prots+16(FP), AX - MOVQ AX, 16(SP) - MOVQ se+24(FP), AX - MOVQ AX, 24(SP) - MOVQ buf+32(FP), AX - MOVQ AX, 32(SP) - MOVQ buflen+40(FP), AX - MOVQ AX, 40(SP) - MOVQ res+48(FP), AX - MOVQ AX, 48(SP) - CALL ·Xgetservbyname_r(SB) - MOVL 56(SP), AX - MOVL AX, r+56(FP) - RET - -// func Ygetservent(tls *TLS) (r uintptr) -TEXT ·Ygetservent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetservent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetsid(tls *TLS, pid Tpid_t) (r Tpid_t) -TEXT ·Ygetsid(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xgetsid(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ygetsockname(tls *TLS, fd int32, addr uintptr, len1 uintptr) (r1 int32) -TEXT ·Ygetsockname(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ addr+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgetsockname(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ygetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen uintptr) (r2 int32) -TEXT ·Ygetsockopt(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL level+12(FP), AX - MOVL AX, 12(SP) - MOVL optname+16(FP), AX - MOVL AX, 16(SP) - MOVQ optval+24(FP), AX - MOVQ AX, 24(SP) - MOVQ optlen+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xgetsockopt(SB) - MOVL 40(SP), AX - MOVL AX, r2+40(FP) - RET - -// func Ygetspent(tls *TLS) (r uintptr) -TEXT ·Ygetspent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetspent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetsubopt(tls *TLS, opt uintptr, keys uintptr, val uintptr) (r int32) -TEXT ·Ygetsubopt(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ opt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ keys+16(FP), AX - MOVQ AX, 16(SP) - MOVQ val+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xgetsubopt(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ygettext(tls *TLS, msgid uintptr) (r uintptr) -TEXT ·Ygettext(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ msgid+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgettext(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) -TEXT ·Ygettimeofday(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tv+8(FP), AX - MOVQ AX, 8(SP) - MOVQ tz+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgettimeofday(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ygetuid(tls *TLS) (r Tuid_t) -TEXT ·Ygetuid(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetuid(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetusershell(tls *TLS) (r uintptr) -TEXT ·Ygetusershell(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetusershell(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetutent(tls *TLS) (r uintptr) -TEXT ·Ygetutent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetutent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetutid(tls *TLS, ut uintptr) (r uintptr) -TEXT ·Ygetutid(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ut+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetutid(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetutline(tls *TLS, ut uintptr) (r uintptr) -TEXT ·Ygetutline(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ut+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetutline(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetutxent(tls *TLS) (r uintptr) -TEXT ·Ygetutxent(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetutxent(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ygetutxid(tls *TLS, ut uintptr) (r uintptr) -TEXT ·Ygetutxid(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ut+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetutxid(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetutxline(tls *TLS, ut uintptr) (r uintptr) -TEXT ·Ygetutxline(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ut+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetutxline(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygetw(tls *TLS, f uintptr) (r int32) -TEXT ·Ygetw(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetw(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ygetwc(tls *TLS, f uintptr) (r Twint_t) -TEXT ·Ygetwc(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetwc(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ygetwc_unlocked(tls *TLS, f uintptr) (r Twint_t) -TEXT ·Ygetwc_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgetwc_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ygetwchar(tls *TLS) (r Twint_t) -TEXT ·Ygetwchar(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetwchar(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetwchar_unlocked(tls *TLS) (r Twint_t) -TEXT ·Ygetwchar_unlocked(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xgetwchar_unlocked(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ygetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) -TEXT ·Ygetxattr(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - MOVQ value+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xgetxattr(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g_ uintptr) (r int32) -TEXT ·Yglob(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ pat+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - MOVQ errfunc+24(FP), AX - MOVQ AX, 24(SP) - MOVQ g_+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xglob(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yglobfree(tls *TLS, g_ uintptr) -TEXT ·Yglobfree(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ g_+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xglobfree(SB) - RET - -// func Ygmtime(tls *TLS, t uintptr) (r uintptr) -TEXT ·Ygmtime(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xgmtime(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ygmtime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) -TEXT ·Ygmtime_r(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - MOVQ tm+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xgmtime_r(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ygrantpt(tls *TLS, fd int32) (r int32) -TEXT ·Ygrantpt(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xgrantpt(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yhasmntopt(tls *TLS, mnt uintptr, opt uintptr) (r uintptr) -TEXT ·Yhasmntopt(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ mnt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ opt+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xhasmntopt(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yhcreate(tls *TLS, nel Tsize_t) (r int32) -TEXT ·Yhcreate(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ nel+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xhcreate(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yhdestroy(tls *TLS) -TEXT ·Yhdestroy(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xhdestroy(SB) - RET - -// func Yherror(tls *TLS, msg uintptr) -TEXT ·Yherror(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ msg+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xherror(SB) - RET - -// func Yhsearch(tls *TLS, item TENTRY, action TACTION) (r uintptr) -TEXT ·Yhsearch(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ item_Fkey+8(FP), AX - MOVQ AX, 8(SP) - MOVQ item_Fdata+16(FP), AX - MOVQ AX, 16(SP) - MOVL action+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xhsearch(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yhstrerror(tls *TLS, ecode int32) (r uintptr) -TEXT ·Yhstrerror(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL ecode+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xhstrerror(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yhtonl(tls *TLS, n Tuint32_t) (r Tuint32_t) -TEXT ·Yhtonl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xhtonl(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yhtons(tls *TLS, n Tuint16_t) (r Tuint16_t) -TEXT ·Yhtons(SB),$24-18 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVW n+8(FP), AX - MOVW AX, 8(SP) - CALL ·Xhtons(SB) - MOVW 16(SP), AX - MOVW AX, r+16(FP) - RET - -// func Yhypot(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yhypot(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xhypot(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yhypotf(tls *TLS, x float32, y float32) (r float32) -TEXT ·Yhypotf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xhypotf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yhypotl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yhypotl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xhypotl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yiconv(tls *TLS, cd Ticonv_t, in uintptr, inb uintptr, out uintptr, outb uintptr) (r Tsize_t) -TEXT ·Yiconv(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ cd+8(FP), AX - MOVQ AX, 8(SP) - MOVQ in+16(FP), AX - MOVQ AX, 16(SP) - MOVQ inb+24(FP), AX - MOVQ AX, 24(SP) - MOVQ out+32(FP), AX - MOVQ AX, 32(SP) - MOVQ outb+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xiconv(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Yiconv_close(tls *TLS, cd Ticonv_t) (r int32) -TEXT ·Yiconv_close(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ cd+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xiconv_close(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiconv_open(tls *TLS, to uintptr, from uintptr) (r Ticonv_t) -TEXT ·Yiconv_open(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ to+8(FP), AX - MOVQ AX, 8(SP) - MOVQ from+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiconv_open(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yif_freenameindex(tls *TLS, idx uintptr) -TEXT ·Yif_freenameindex(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ idx+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xif_freenameindex(SB) - RET - -// func Yif_indextoname(tls *TLS, index uint32, name uintptr) (r1 uintptr) -TEXT ·Yif_indextoname(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL index+8(FP), AX - MOVL AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xif_indextoname(SB) - MOVQ 24(SP), AX - MOVQ AX, r1+24(FP) - RET - -// func Yif_nameindex(tls *TLS) (r uintptr) -TEXT ·Yif_nameindex(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xif_nameindex(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Yif_nametoindex(tls *TLS, name uintptr) (r1 uint32) -TEXT ·Yif_nametoindex(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xif_nametoindex(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yilogb(tls *TLS, x3 float64) (r int32) -TEXT ·Yilogb(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xilogb(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yilogbf(tls *TLS, x3 float32) (r int32) -TEXT ·Yilogbf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xilogbf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yilogbl(tls *TLS, x float64) (r int32) -TEXT ·Yilogbl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xilogbl(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yimaxabs(tls *TLS, a Tintmax_t) (r Tintmax_t) -TEXT ·Yimaxabs(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Ximaxabs(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yimaxdiv(tls *TLS, num Tintmax_t, den Tintmax_t) (r Timaxdiv_t) -TEXT ·Yimaxdiv(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ num+8(FP), AX - MOVQ AX, 8(SP) - MOVQ den+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Ximaxdiv(SB) - MOVQ 24(SP), AX - MOVQ AX, r_Fquot+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_Frem+32(FP) - RET - -// func Yindex(tls *TLS, s uintptr, c int32) (r uintptr) -TEXT ·Yindex(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xindex(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yinet_addr(tls *TLS, p uintptr) (r Tin_addr_t) -TEXT ·Yinet_addr(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xinet_addr(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yinet_aton(tls *TLS, s0 uintptr, dest uintptr) (r int32) -TEXT ·Yinet_aton(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s0+8(FP), AX - MOVQ AX, 8(SP) - MOVQ dest+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xinet_aton(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yinet_lnaof(tls *TLS, in Tin_addr) (r Tin_addr_t) -TEXT ·Yinet_lnaof(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL in_Fs_addr+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xinet_lnaof(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yinet_makeaddr(tls *TLS, n Tin_addr_t, h Tin_addr_t) (r Tin_addr) -TEXT ·Yinet_makeaddr(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - MOVL h+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xinet_makeaddr(SB) - MOVL 16(SP), AX - MOVL AX, r_Fs_addr+16(FP) - RET - -// func Yinet_netof(tls *TLS, in Tin_addr) (r Tin_addr_t) -TEXT ·Yinet_netof(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL in_Fs_addr+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xinet_netof(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yinet_network(tls *TLS, p uintptr) (r Tin_addr_t) -TEXT ·Yinet_network(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xinet_network(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yinet_ntoa(tls *TLS, _in Tin_addr) (r uintptr) -TEXT ·Yinet_ntoa(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL _in_Fs_addr+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xinet_ntoa(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yinet_ntop(tls *TLS, af int32, a0 uintptr, s uintptr, l Tsocklen_t) (r uintptr) -TEXT ·Yinet_ntop(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL af+8(FP), AX - MOVL AX, 8(SP) - MOVQ a0+16(FP), AX - MOVQ AX, 16(SP) - MOVQ s+24(FP), AX - MOVQ AX, 24(SP) - MOVL l+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xinet_ntop(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yinet_pton(tls *TLS, af int32, s uintptr, a0 uintptr) (r int32) -TEXT ·Yinet_pton(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL af+8(FP), AX - MOVL AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ a0+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xinet_pton(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yinit_module(tls *TLS, a uintptr, b uint64, c uintptr) (r int32) -TEXT ·Yinit_module(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - MOVQ c+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xinit_module(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yinitstate(tls *TLS, seed uint32, state uintptr, size Tsize_t) (r uintptr) -TEXT ·Yinitstate(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL seed+8(FP), AX - MOVL AX, 8(SP) - MOVQ state+16(FP), AX - MOVQ AX, 16(SP) - MOVQ size+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xinitstate(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yinitstate_r(t *TLS, seed uint32, statebuf uintptr, statelen Tsize_t, buf uintptr) int32 -TEXT ·Yinitstate_r(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL seed+8(FP), AX - MOVL AX, 8(SP) - MOVQ statebuf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ statelen+24(FP), AX - MOVQ AX, 24(SP) - MOVQ buf+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xinitstate_r(SB) - MOVL 40(SP), AX - MOVL AX, ret+40(FP) - RET - -// func Yinotify_add_watch(tls *TLS, fd int32, pathname uintptr, mask Tuint32_t) (r int32) -TEXT ·Yinotify_add_watch(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ pathname+16(FP), AX - MOVQ AX, 16(SP) - MOVL mask+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xinotify_add_watch(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yinotify_init(tls *TLS) (r int32) -TEXT ·Yinotify_init(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xinotify_init(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yinotify_init1(tls *TLS, flags int32) (r1 int32) -TEXT ·Yinotify_init1(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL flags+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xinotify_init1(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yinotify_rm_watch(tls *TLS, fd int32, wd int32) (r int32) -TEXT ·Yinotify_rm_watch(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL wd+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xinotify_rm_watch(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yinsque(tls *TLS, element uintptr, pred uintptr) -TEXT ·Yinsque(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ element+8(FP), AX - MOVQ AX, 8(SP) - MOVQ pred+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xinsque(SB) - RET - -// func Yioctl(tls *TLS, fd int32, req int32, va uintptr) (r1 int32) -TEXT ·Yioctl(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL req+12(FP), AX - MOVL AX, 12(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xioctl(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Yioperm(tls *TLS, from uint64, num uint64, turn_on int32) (r int32) -TEXT ·Yioperm(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ from+8(FP), AX - MOVQ AX, 8(SP) - MOVQ num+16(FP), AX - MOVQ AX, 16(SP) - MOVL turn_on+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xioperm(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yiopl(tls *TLS, level int32) (r int32) -TEXT ·Yiopl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL level+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiopl(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisalnum(tls *TLS, c int32) (r int32) -TEXT ·Yisalnum(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisalnum(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisalnum_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisalnum_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisalnum_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yisalpha(tls *TLS, c int32) (r int32) -TEXT ·Yisalpha(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisalpha(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisalpha_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisalpha_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisalpha_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yisascii(tls *TLS, c int32) (r int32) -TEXT ·Yisascii(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisascii(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisastream(tls *TLS, fd int32) (r int32) -TEXT ·Yisastream(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisastream(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisatty(tls *TLS, fd int32) (r1 int32) -TEXT ·Yisatty(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisatty(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yisblank(tls *TLS, c int32) (r int32) -TEXT ·Yisblank(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisblank(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisblank_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisblank_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisblank_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiscntrl(tls *TLS, c int32) (r int32) -TEXT ·Yiscntrl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiscntrl(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiscntrl_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yiscntrl_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiscntrl_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yisdigit(tls *TLS, c int32) (r int32) -TEXT ·Yisdigit(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisdigit(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisdigit_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisdigit_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yisgraph(tls *TLS, c int32) (r int32) -TEXT ·Yisgraph(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisgraph(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisgraph_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisgraph_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisgraph_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yislower(tls *TLS, c int32) (r int32) -TEXT ·Yislower(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xislower(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yislower_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yislower_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xislower_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yisnan(t *TLS, x float64) int32 -TEXT ·Yisnan(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xisnan(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Yisnanf(t *TLS, arg float32) int32 -TEXT ·Yisnanf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL arg+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisnanf(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Yisnanl(t *TLS, arg float64) int32 -TEXT ·Yisnanl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ arg+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xisnanl(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Yisprint(tls *TLS, c int32) (r int32) -TEXT ·Yisprint(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisprint(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisprint_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisprint_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisprint_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yispunct(tls *TLS, c int32) (r int32) -TEXT ·Yispunct(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xispunct(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yispunct_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yispunct_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xispunct_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yissetugid(tls *TLS) (r int32) -TEXT ·Yissetugid(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xissetugid(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yisspace(tls *TLS, c int32) (r int32) -TEXT ·Yisspace(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisspace(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisspace_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisspace_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisspace_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yisupper(tls *TLS, c int32) (r int32) -TEXT ·Yisupper(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisupper(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisupper_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisupper_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswalnum(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswalnum(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswalnum(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswalnum_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswalnum_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswalnum_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswalpha(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswalpha(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswalpha(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswalpha_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswalpha_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswalpha_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswblank(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswblank(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswblank(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswblank_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswblank_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswblank_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswcntrl(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswcntrl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswcntrl(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswcntrl_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswcntrl_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswcntrl_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswctype(tls *TLS, wc Twint_t, type1 Twctype_t) (r int32) -TEXT ·Yiswctype(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - MOVQ type1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswctype(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswctype_l(tls *TLS, c Twint_t, t Twctype_t, l Tlocale_t) (r int32) -TEXT ·Yiswctype_l(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ t+16(FP), AX - MOVQ AX, 16(SP) - MOVQ l+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xiswctype_l(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yiswdigit(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswdigit(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswdigit(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswdigit_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswdigit_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswgraph(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswgraph(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswgraph(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswgraph_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswgraph_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswgraph_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswlower(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswlower(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswlower(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswlower_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswlower_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswprint(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswprint(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswprint(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswprint_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswprint_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswprint_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswpunct(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswpunct(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswpunct(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswpunct_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswpunct_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswpunct_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswspace(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswspace(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswspace(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswspace_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswspace_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswspace_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswupper(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswupper(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswupper(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswupper_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswupper_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yiswxdigit(tls *TLS, wc Twint_t) (r int32) -TEXT ·Yiswxdigit(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xiswxdigit(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yiswxdigit_l(tls *TLS, c Twint_t, l Tlocale_t) (r int32) -TEXT ·Yiswxdigit_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xiswxdigit_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yisxdigit(tls *TLS, c int32) (r int32) -TEXT ·Yisxdigit(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xisxdigit(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yisxdigit_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Yisxdigit_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xisxdigit_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yj0(tls *TLS, x float64) (r1 float64) -TEXT ·Yj0(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xj0(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Yj0f(tls *TLS, x float32) (r1 float32) -TEXT ·Yj0f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xj0f(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yj1(tls *TLS, x float64) (r1 float64) -TEXT ·Yj1(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xj1(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Yj1f(tls *TLS, x float32) (r1 float32) -TEXT ·Yj1f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xj1f(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yjn(tls *TLS, n int32, x float64) (r float64) -TEXT ·Yjn(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - MOVQ x+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xjn(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yjnf(tls *TLS, n int32, x float32) (r float32) -TEXT ·Yjnf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - MOVL x+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xjnf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yjrand48(tls *TLS, s uintptr) (r int64) -TEXT ·Yjrand48(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xjrand48(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ykill(tls *TLS, pid Tpid_t, sig int32) (r int32) -TEXT ·Ykill(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVL sig+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xkill(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ykillpg(tls *TLS, pgid Tpid_t, sig int32) (r int32) -TEXT ·Ykillpg(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pgid+8(FP), AX - MOVL AX, 8(SP) - MOVL sig+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xkillpg(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yklogctl(tls *TLS, type1 int32, buf uintptr, len1 int32) (r int32) -TEXT ·Yklogctl(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL type1+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVL len1+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xklogctl(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yl64a(tls *TLS, x0 int64) (r uintptr) -TEXT ·Yl64a(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x0+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xl64a(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylabs(tls *TLS, a int64) (r int64) -TEXT ·Ylabs(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlabs(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylchmod(tls *TLS, path uintptr, mode Tmode_t) (r int32) -TEXT ·Ylchmod(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL mode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xlchmod(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ylchown(tls *TLS, path uintptr, uid Tuid_t, gid Tgid_t) (r int32) -TEXT ·Ylchown(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL uid+16(FP), AX - MOVL AX, 16(SP) - MOVL gid+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xlchown(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ylckpwdf(tls *TLS) (r int32) -TEXT ·Ylckpwdf(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xlckpwdf(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ylcong48(tls *TLS, p uintptr) -TEXT ·Ylcong48(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlcong48(SB) - RET - -// func Yldexp(tls *TLS, x float64, n int32) (r float64) -TEXT ·Yldexp(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xldexp(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yldexpf(tls *TLS, x float32, n int32) (r float32) -TEXT ·Yldexpf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL n+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xldexpf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yldexpl(tls *TLS, x float64, n int32) (r float64) -TEXT ·Yldexpl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xldexpl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yldiv(tls *TLS, num int64, den int64) (r Tldiv_t) -TEXT ·Yldiv(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ num+8(FP), AX - MOVQ AX, 8(SP) - MOVQ den+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xldiv(SB) - MOVQ 24(SP), AX - MOVQ AX, r_Fquot+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_Frem+32(FP) - RET - -// func Ylfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) -TEXT ·Ylfind(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - MOVQ base+16(FP), AX - MOVQ AX, 16(SP) - MOVQ nelp+24(FP), AX - MOVQ AX, 24(SP) - MOVQ width+32(FP), AX - MOVQ AX, 32(SP) - MOVQ compar+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xlfind(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ylgamma(tls *TLS, x float64) (r float64) -TEXT ·Ylgamma(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlgamma(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylgamma_r(tls *TLS, x float64, signgamp uintptr) (r float64) -TEXT ·Ylgamma_r(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ signgamp+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlgamma_r(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ylgammaf(tls *TLS, x float32) (r float32) -TEXT ·Ylgammaf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlgammaf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ylgammaf_r(tls *TLS, x float32, signgamp uintptr) (r float32) -TEXT ·Ylgammaf_r(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVQ signgamp+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlgammaf_r(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ylgammal(tls *TLS, x float64) (r float64) -TEXT ·Ylgammal(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlgammal(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylgammal_r(tls *TLS, x float64, sg uintptr) (r float64) -TEXT ·Ylgammal_r(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sg+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlgammal_r(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ylgetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t) (r Tssize_t) -TEXT ·Ylgetxattr(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - MOVQ value+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xlgetxattr(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ylink(tls *TLS, existing uintptr, new1 uintptr) (r int32) -TEXT ·Ylink(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ existing+8(FP), AX - MOVQ AX, 8(SP) - MOVQ new1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlink(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ylinkat(tls *TLS, fd1 int32, existing uintptr, fd2 int32, new1 uintptr, flag int32) (r int32) -TEXT ·Ylinkat(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd1+8(FP), AX - MOVL AX, 8(SP) - MOVQ existing+16(FP), AX - MOVQ AX, 16(SP) - MOVL fd2+24(FP), AX - MOVL AX, 24(SP) - MOVQ new1+32(FP), AX - MOVQ AX, 32(SP) - MOVL flag+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xlinkat(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ylisten(tls *TLS, fd int32, backlog int32) (r1 int32) -TEXT ·Ylisten(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL backlog+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xlisten(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Ylistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) -TEXT ·Ylistxattr(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ list+16(FP), AX - MOVQ AX, 16(SP) - MOVQ size+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xlistxattr(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yllabs(tls *TLS, a int64) (r int64) -TEXT ·Yllabs(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xllabs(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylldiv(tls *TLS, num int64, den int64) (r Tlldiv_t) -TEXT ·Ylldiv(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ num+8(FP), AX - MOVQ AX, 8(SP) - MOVQ den+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlldiv(SB) - MOVQ 24(SP), AX - MOVQ AX, r_Fquot+24(FP) - MOVQ 32(SP), AX - MOVQ AX, r_Frem+32(FP) - RET - -// func Yllistxattr(tls *TLS, path uintptr, list uintptr, size Tsize_t) (r Tssize_t) -TEXT ·Yllistxattr(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ list+16(FP), AX - MOVQ AX, 16(SP) - MOVQ size+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xllistxattr(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yllrint(tls *TLS, x float64) (r int64) -TEXT ·Yllrint(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xllrint(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yllrintf(tls *TLS, x float32) (r int64) -TEXT ·Yllrintf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xllrintf(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yllrintl(tls *TLS, x float64) (r int64) -TEXT ·Yllrintl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xllrintl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yllround(tls *TLS, x float64) (r int64) -TEXT ·Yllround(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xllround(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yllroundf(tls *TLS, x float32) (r int64) -TEXT ·Yllroundf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xllroundf(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yllroundl(tls *TLS, x float64) (r int64) -TEXT ·Yllroundl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xllroundl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylocaleconv(tls *TLS) (r uintptr) -TEXT ·Ylocaleconv(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xlocaleconv(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ylocaltime(tls *TLS, t uintptr) (r uintptr) -TEXT ·Ylocaltime(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlocaltime(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylocaltime_r(tls *TLS, t uintptr, tm uintptr) (r uintptr) -TEXT ·Ylocaltime_r(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - MOVQ tm+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlocaltime_r(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ylockf(tls *TLS, fd int32, op int32, size Toff_t) (r int32) -TEXT ·Ylockf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL op+12(FP), AX - MOVL AX, 12(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlockf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ylog(tls *TLS, x1 float64) (r1 float64) -TEXT ·Ylog(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlog(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Ylog10(tls *TLS, x float64) (r float64) -TEXT ·Ylog10(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlog10(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylog10f(tls *TLS, x float32) (r float32) -TEXT ·Ylog10f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlog10f(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ylog10l(tls *TLS, x float64) (r float64) -TEXT ·Ylog10l(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlog10l(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylog1p(tls *TLS, x3 float64) (r float64) -TEXT ·Ylog1p(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlog1p(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylog1pf(tls *TLS, x3 float32) (r float32) -TEXT ·Ylog1pf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlog1pf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ylog1pl(tls *TLS, x float64) (r float64) -TEXT ·Ylog1pl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlog1pl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylog2(tls *TLS, x1 float64) (r1 float64) -TEXT ·Ylog2(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlog2(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Ylog2f(tls *TLS, x1 float32) (r1 float32) -TEXT ·Ylog2f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x1+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlog2f(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Ylog2l(tls *TLS, x float64) (r float64) -TEXT ·Ylog2l(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlog2l(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylogb(tls *TLS, x float64) (r float64) -TEXT ·Ylogb(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlogb(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylogbf(tls *TLS, x float32) (r float32) -TEXT ·Ylogbf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlogbf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ylogbl(tls *TLS, x float64) (r float64) -TEXT ·Ylogbl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlogbl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylogf(tls *TLS, x1 float32) (r1 float32) -TEXT ·Ylogf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x1+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlogf(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Ylogin_tty(tls *TLS, fd int32) (r int32) -TEXT ·Ylogin_tty(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlogin_tty(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ylogl(tls *TLS, x float64) (r float64) -TEXT ·Ylogl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlogl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylongjmp(t *TLS, env uintptr, val int32) -TEXT ·Ylongjmp(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ env+8(FP), AX - MOVQ AX, 8(SP) - MOVL val+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xlongjmp(SB) - RET - -// func Ylrand48(tls *TLS) (r int64) -TEXT ·Ylrand48(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xlrand48(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ylremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) -TEXT ·Ylremovexattr(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlremovexattr(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ylrint(tls *TLS, x float64) (r int64) -TEXT ·Ylrint(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlrint(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylrintf(tls *TLS, x float32) (r int64) -TEXT ·Ylrintf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlrintf(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylrintl(tls *TLS, x float64) (r int64) -TEXT ·Ylrintl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlrintl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylround(tls *TLS, x float64) (r int64) -TEXT ·Ylround(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlround(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylroundf(tls *TLS, x float32) (r int64) -TEXT ·Ylroundf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xlroundf(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylroundl(tls *TLS, x float64) (r int64) -TEXT ·Ylroundl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xlroundl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ylsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) -TEXT ·Ylsearch(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - MOVQ base+16(FP), AX - MOVQ AX, 16(SP) - MOVQ nelp+24(FP), AX - MOVQ AX, 24(SP) - MOVQ width+32(FP), AX - MOVQ AX, 32(SP) - MOVQ compar+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xlsearch(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ylseek(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) -TEXT ·Ylseek(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ offset+16(FP), AX - MOVQ AX, 16(SP) - MOVL whence+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xlseek(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ylseek64(tls *TLS, fd int32, offset Toff_t, whence int32) (r Toff_t) -TEXT ·Ylseek64(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ offset+16(FP), AX - MOVQ AX, 16(SP) - MOVL whence+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xlseek64(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ylsetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) -TEXT ·Ylsetxattr(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - MOVQ value+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - MOVL flags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xlsetxattr(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ylstat(tls *TLS, path uintptr, buf uintptr) (r int32) -TEXT ·Ylstat(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlstat(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ylstat64(tls *TLS, path uintptr, buf uintptr) (r int32) -TEXT ·Ylstat64(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlstat64(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ylutimes(tls *TLS, filename uintptr, tv uintptr) (r int32) -TEXT ·Ylutimes(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVQ tv+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xlutimes(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymadvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) -TEXT ·Ymadvise(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVL advice+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xmadvise(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymalloc(tls *TLS, n Tsize_t) (r uintptr) -TEXT ·Ymalloc(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ n+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xmalloc(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ymalloc_usable_size(tls *TLS, p uintptr) (r Tsize_t) -TEXT ·Ymalloc_usable_size(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xmalloc_usable_size(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ymblen(tls *TLS, s uintptr, n Tsize_t) (r int32) -TEXT ·Ymblen(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xmblen(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymbrlen(tls *TLS, s uintptr, n Tsize_t, st uintptr) (r Tsize_t) -TEXT ·Ymbrlen(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ st+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmbrlen(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ymbrtoc16(tls *TLS, pc16 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) -TEXT ·Ymbrtoc16(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ pc16+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ ps+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xmbrtoc16(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ymbrtoc32(tls *TLS, pc32 uintptr, s uintptr, n Tsize_t, ps uintptr) (r Tsize_t) -TEXT ·Ymbrtoc32(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ pc32+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ ps+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xmbrtoc32(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ymbrtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t, st uintptr) (r Tsize_t) -TEXT ·Ymbrtowc(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ wc+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ st+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xmbrtowc(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ymbsinit(tls *TLS, st uintptr) (r int32) -TEXT ·Ymbsinit(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ st+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xmbsinit(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ymbsnrtowcs(tls *TLS, wcs uintptr, src uintptr, n Tsize_t, wn Tsize_t, st uintptr) (r Tsize_t) -TEXT ·Ymbsnrtowcs(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ wcs+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ wn+32(FP), AX - MOVQ AX, 32(SP) - MOVQ st+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xmbsnrtowcs(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ymbsrtowcs(tls *TLS, ws uintptr, src uintptr, wn Tsize_t, st uintptr) (r Tsize_t) -TEXT ·Ymbsrtowcs(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ws+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ wn+24(FP), AX - MOVQ AX, 24(SP) - MOVQ st+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xmbsrtowcs(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ymbstowcs(tls *TLS, ws uintptr, _s uintptr, wn Tsize_t) (r Tsize_t) -TEXT ·Ymbstowcs(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ws+8(FP), AX - MOVQ AX, 8(SP) - MOVQ _s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ wn+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmbstowcs(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ymbtowc(tls *TLS, wc uintptr, src uintptr, n Tsize_t) (r int32) -TEXT ·Ymbtowc(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ wc+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmbtowc(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymemccpy(tls *TLS, dest uintptr, src uintptr, c int32, n Tsize_t) (r uintptr) -TEXT ·Ymemccpy(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVL c+24(FP), AX - MOVL AX, 24(SP) - MOVQ n+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xmemccpy(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ymemchr(tls *TLS, src uintptr, c int32, n Tsize_t) (r uintptr) -TEXT ·Ymemchr(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ src+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmemchr(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ymemcmp(tls *TLS, vl uintptr, vr uintptr, n Tsize_t) (r1 int32) -TEXT ·Ymemcmp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ vl+8(FP), AX - MOVQ AX, 8(SP) - MOVQ vr+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmemcmp(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ymemcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) -TEXT ·Ymemcpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmemcpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ymemfd_create(tls *TLS, name uintptr, flags uint32) (r int32) -TEXT ·Ymemfd_create(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xmemfd_create(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymemmem(tls *TLS, h0 uintptr, k Tsize_t, n0 uintptr, l Tsize_t) (r uintptr) -TEXT ·Ymemmem(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ h0+8(FP), AX - MOVQ AX, 8(SP) - MOVQ k+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n0+24(FP), AX - MOVQ AX, 24(SP) - MOVQ l+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xmemmem(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ymemmove(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) -TEXT ·Ymemmove(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmemmove(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ymempcpy(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r uintptr) -TEXT ·Ymempcpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmempcpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ymemrchr(tls *TLS, m uintptr, c int32, n Tsize_t) (r uintptr) -TEXT ·Ymemrchr(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ m+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmemrchr(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ymemset(tls *TLS, dest uintptr, c int32, n Tsize_t) (r uintptr) -TEXT ·Ymemset(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmemset(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ymincore(tls *TLS, addr uintptr, len1 Tsize_t, vec uintptr) (r int32) -TEXT ·Ymincore(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVQ vec+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmincore(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymkdir(tls *TLS, path uintptr, mode Tmode_t) (r int32) -TEXT ·Ymkdir(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL mode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xmkdir(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymkdirat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) -TEXT ·Ymkdirat(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVL mode+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xmkdirat(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymkdtemp(tls *TLS, template uintptr) (r uintptr) -TEXT ·Ymkdtemp(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ template+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xmkdtemp(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ymkfifo(tls *TLS, path uintptr, mode Tmode_t) (r int32) -TEXT ·Ymkfifo(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL mode+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xmkfifo(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymkfifoat(tls *TLS, fd int32, path uintptr, mode Tmode_t) (r int32) -TEXT ·Ymkfifoat(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVL mode+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xmkfifoat(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymknod(tls *TLS, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) -TEXT ·Ymknod(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL mode+16(FP), AX - MOVL AX, 16(SP) - MOVQ dev+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xmknod(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymknodat(tls *TLS, fd int32, path uintptr, mode Tmode_t, dev Tdev_t) (r int32) -TEXT ·Ymknodat(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVL mode+24(FP), AX - MOVL AX, 24(SP) - MOVQ dev+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xmknodat(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ymkostemp(tls *TLS, template uintptr, flags int32) (r int32) -TEXT ·Ymkostemp(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ template+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xmkostemp(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymkostemps(tls *TLS, template uintptr, len1 int32, flags int32) (r int32) -TEXT ·Ymkostemps(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ template+8(FP), AX - MOVQ AX, 8(SP) - MOVL len1+16(FP), AX - MOVL AX, 16(SP) - MOVL flags+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xmkostemps(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymkstemp(tls *TLS, template uintptr) (r int32) -TEXT ·Ymkstemp(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ template+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xmkstemp(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ymkstemp64(tls *TLS, template uintptr) (r int32) -TEXT ·Ymkstemp64(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ template+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xmkstemp64(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ymkstemps(tls *TLS, template uintptr, len1 int32) (r int32) -TEXT ·Ymkstemps(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ template+8(FP), AX - MOVQ AX, 8(SP) - MOVL len1+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xmkstemps(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymkstemps64(tls *TLS, template uintptr, len1 int32) (r int32) -TEXT ·Ymkstemps64(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ template+8(FP), AX - MOVQ AX, 8(SP) - MOVL len1+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xmkstemps64(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymktemp(tls *TLS, template uintptr) (r uintptr) -TEXT ·Ymktemp(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ template+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xmktemp(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ymktime(tls *TLS, tm uintptr) (r Ttime_t) -TEXT ·Ymktime(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tm+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xmktime(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ymlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) -TEXT ·Ymlock(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xmlock(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymlock2(tls *TLS, addr uintptr, len1 Tsize_t, flags uint32) (r int32) -TEXT ·Ymlock2(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xmlock2(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymlockall(tls *TLS, flags int32) (r int32) -TEXT ·Ymlockall(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL flags+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xmlockall(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ymmap(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) -TEXT ·Ymmap(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ start+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVL prot+24(FP), AX - MOVL AX, 24(SP) - MOVL flags+28(FP), AX - MOVL AX, 28(SP) - MOVL fd+32(FP), AX - MOVL AX, 32(SP) - MOVQ off+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xmmap(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ymmap64(tls *TLS, start uintptr, len1 Tsize_t, prot int32, flags int32, fd int32, off Toff_t) (r uintptr) -TEXT ·Ymmap64(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ start+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVL prot+24(FP), AX - MOVL AX, 24(SP) - MOVL flags+28(FP), AX - MOVL AX, 28(SP) - MOVL fd+32(FP), AX - MOVL AX, 32(SP) - MOVQ off+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xmmap64(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ymodf(tls *TLS, x float64, iptr uintptr) (r float64) -TEXT ·Ymodf(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ iptr+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xmodf(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ymodff(tls *TLS, x float32, iptr uintptr) (r float32) -TEXT ·Ymodff(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVQ iptr+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xmodff(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymodfl(tls *TLS, x float64, iptr uintptr) (r1 float64) -TEXT ·Ymodfl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ iptr+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xmodfl(SB) - MOVQ 24(SP), AX - MOVQ AX, r1+24(FP) - RET - -// func Ymount(tls *TLS, special uintptr, dir uintptr, fstype uintptr, flags uint64, data uintptr) (r int32) -TEXT ·Ymount(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ special+8(FP), AX - MOVQ AX, 8(SP) - MOVQ dir+16(FP), AX - MOVQ AX, 16(SP) - MOVQ fstype+24(FP), AX - MOVQ AX, 24(SP) - MOVQ flags+32(FP), AX - MOVQ AX, 32(SP) - MOVQ data+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xmount(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ymprotect(tls *TLS, addr uintptr, len1 Tsize_t, prot int32) (r int32) -TEXT ·Ymprotect(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVL prot+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xmprotect(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymrand48(tls *TLS) (r int64) -TEXT ·Ymrand48(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xmrand48(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ymremap(tls *TLS, old_addr uintptr, old_len Tsize_t, new_len Tsize_t, flags int32, va uintptr) (r uintptr) -TEXT ·Ymremap(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ old_addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ old_len+16(FP), AX - MOVQ AX, 16(SP) - MOVQ new_len+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - MOVQ va+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xmremap(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ymsgctl(tls *TLS, q int32, cmd int32, buf uintptr) (r1 int32) -TEXT ·Ymsgctl(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL q+8(FP), AX - MOVL AX, 8(SP) - MOVL cmd+12(FP), AX - MOVL AX, 12(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xmsgctl(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ymsgget(tls *TLS, k Tkey_t, flag int32) (r int32) -TEXT ·Ymsgget(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL k+8(FP), AX - MOVL AX, 8(SP) - MOVL flag+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xmsgget(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ymsgrcv(tls *TLS, q int32, m uintptr, len1 Tsize_t, type1 int64, flag int32) (r Tssize_t) -TEXT ·Ymsgrcv(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL q+8(FP), AX - MOVL AX, 8(SP) - MOVQ m+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVQ type1+32(FP), AX - MOVQ AX, 32(SP) - MOVL flag+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xmsgrcv(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ymsgsnd(tls *TLS, q int32, m uintptr, len1 Tsize_t, flag int32) (r int32) -TEXT ·Ymsgsnd(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL q+8(FP), AX - MOVL AX, 8(SP) - MOVQ m+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVL flag+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xmsgsnd(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ymsync(tls *TLS, start uintptr, len1 Tsize_t, flags int32) (r int32) -TEXT ·Ymsync(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ start+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xmsync(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ymunlock(tls *TLS, addr uintptr, len1 Tsize_t) (r int32) -TEXT ·Ymunlock(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xmunlock(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ymunlockall(tls *TLS) (r int32) -TEXT ·Ymunlockall(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xmunlockall(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ymunmap(tls *TLS, start uintptr, len1 Tsize_t) (r int32) -TEXT ·Ymunmap(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ start+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xmunmap(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yname_to_handle_at(tls *TLS, dirfd int32, pathname uintptr, handle uintptr, mount_id uintptr, flags int32) (r int32) -TEXT ·Yname_to_handle_at(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL dirfd+8(FP), AX - MOVL AX, 8(SP) - MOVQ pathname+16(FP), AX - MOVQ AX, 16(SP) - MOVQ handle+24(FP), AX - MOVQ AX, 24(SP) - MOVQ mount_id+32(FP), AX - MOVQ AX, 32(SP) - MOVL flags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xname_to_handle_at(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ynan(tls *TLS, s uintptr) (r float64) -TEXT ·Ynan(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xnan(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ynanf(tls *TLS, s uintptr) (r float32) -TEXT ·Ynanf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xnanf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ynanl(tls *TLS, s uintptr) (r float64) -TEXT ·Ynanl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xnanl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ynanosleep(tls *TLS, req uintptr, rem uintptr) (r int32) -TEXT ·Ynanosleep(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ req+8(FP), AX - MOVQ AX, 8(SP) - MOVQ rem+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xnanosleep(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ynewlocale(tls *TLS, mask int32, name uintptr, loc Tlocale_t) (r Tlocale_t) -TEXT ·Ynewlocale(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL mask+8(FP), AX - MOVL AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - MOVQ loc+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xnewlocale(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ynextafter(tls *TLS, x3 float64, y3 float64) (r float64) -TEXT ·Ynextafter(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y3+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xnextafter(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ynextafterf(tls *TLS, x3 float32, y3 float32) (r float32) -TEXT ·Ynextafterf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - MOVL y3+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xnextafterf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ynextafterl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Ynextafterl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xnextafterl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ynexttoward(tls *TLS, x float64, y float64) (r float64) -TEXT ·Ynexttoward(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xnexttoward(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ynexttowardf(tls *TLS, x3 float32, y3 float64) (r float32) -TEXT ·Ynexttowardf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - MOVQ y3+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xnexttowardf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ynexttowardl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Ynexttowardl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xnexttowardl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ynftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) -TEXT ·Ynftw(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fn+16(FP), AX - MOVQ AX, 16(SP) - MOVL fd_limit+24(FP), AX - MOVL AX, 24(SP) - MOVL flags+28(FP), AX - MOVL AX, 28(SP) - CALL ·Xnftw(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Yngettext(tls *TLS, msgid1 uintptr, msgid2 uintptr, n uint64) (r uintptr) -TEXT ·Yngettext(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ msgid1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ msgid2+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xngettext(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ynice(tls *TLS, inc int32) (r int32) -TEXT ·Ynice(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL inc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xnice(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ynl_langinfo(tls *TLS, item Tnl_item) (r uintptr) -TEXT ·Ynl_langinfo(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL item+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xnl_langinfo(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ynl_langinfo_l(tls *TLS, item Tnl_item, loc Tlocale_t) (r uintptr) -TEXT ·Ynl_langinfo_l(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL item+8(FP), AX - MOVL AX, 8(SP) - MOVQ loc+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xnl_langinfo_l(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ynrand48(tls *TLS, s uintptr) (r int64) -TEXT ·Ynrand48(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xnrand48(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yns_get16(tls *TLS, cp uintptr) (r uint32) -TEXT ·Yns_get16(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ cp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xns_get16(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yns_get32(tls *TLS, cp uintptr) (r uint64) -TEXT ·Yns_get32(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ cp+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xns_get32(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yns_initparse(tls *TLS, msg uintptr, msglen int32, handle uintptr) (r1 int32) -TEXT ·Yns_initparse(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ msg+8(FP), AX - MOVQ AX, 8(SP) - MOVL msglen+16(FP), AX - MOVL AX, 16(SP) - MOVQ handle+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xns_initparse(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Yns_name_uncompress(tls *TLS, msg uintptr, eom uintptr, src uintptr, dst uintptr, dstsiz Tsize_t) (r1 int32) -TEXT ·Yns_name_uncompress(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ msg+8(FP), AX - MOVQ AX, 8(SP) - MOVQ eom+16(FP), AX - MOVQ AX, 16(SP) - MOVQ src+24(FP), AX - MOVQ AX, 24(SP) - MOVQ dst+32(FP), AX - MOVQ AX, 32(SP) - MOVQ dstsiz+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xns_name_uncompress(SB) - MOVL 48(SP), AX - MOVL AX, r1+48(FP) - RET - -// func Yns_parserr(tls *TLS, handle uintptr, section Tns_sect, rrnum int32, rr uintptr) (r1 int32) -TEXT ·Yns_parserr(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ handle+8(FP), AX - MOVQ AX, 8(SP) - MOVL section+16(FP), AX - MOVL AX, 16(SP) - MOVL rrnum+20(FP), AX - MOVL AX, 20(SP) - MOVQ rr+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xns_parserr(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Yns_put16(tls *TLS, s uint32, cp uintptr) -TEXT ·Yns_put16(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL s+8(FP), AX - MOVL AX, 8(SP) - MOVQ cp+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xns_put16(SB) - RET - -// func Yns_put32(tls *TLS, l uint64, cp uintptr) -TEXT ·Yns_put32(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ cp+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xns_put32(SB) - RET - -// func Yns_skiprr(tls *TLS, ptr uintptr, eom uintptr, section Tns_sect, count int32) (r1 int32) -TEXT ·Yns_skiprr(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ptr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ eom+16(FP), AX - MOVQ AX, 16(SP) - MOVL section+24(FP), AX - MOVL AX, 24(SP) - MOVL count+28(FP), AX - MOVL AX, 28(SP) - CALL ·Xns_skiprr(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Yntohl(tls *TLS, n Tuint32_t) (r Tuint32_t) -TEXT ·Yntohl(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xntohl(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yntohs(tls *TLS, n Tuint16_t) (r Tuint16_t) -TEXT ·Yntohs(SB),$24-18 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVW n+8(FP), AX - MOVW AX, 8(SP) - CALL ·Xntohs(SB) - MOVW 16(SP), AX - MOVW AX, r+16(FP) - RET - -// func Yobstack_free(t *TLS, obstack, obj uintptr) -TEXT ·Yobstack_free(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ obstack+8(FP), AX - MOVQ AX, 8(SP) - MOVQ obj+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xobstack_free(SB) - RET - -// func Yobstack_vprintf(t *TLS, obstack, template, va uintptr) int32 -TEXT ·Yobstack_vprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ obstack+8(FP), AX - MOVQ AX, 8(SP) - MOVQ template+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xobstack_vprintf(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Yopen(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) -TEXT ·Yopen(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xopen(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yopen64(tls *TLS, filename uintptr, flags int32, va uintptr) (r int32) -TEXT ·Yopen64(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xopen64(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yopen_by_handle_at(tls *TLS, mount_fd int32, handle uintptr, flags int32) (r int32) -TEXT ·Yopen_by_handle_at(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL mount_fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ handle+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xopen_by_handle_at(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yopen_memstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) -TEXT ·Yopen_memstream(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ bufp+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sizep+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xopen_memstream(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yopen_wmemstream(tls *TLS, bufp uintptr, sizep uintptr) (r uintptr) -TEXT ·Yopen_wmemstream(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ bufp+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sizep+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xopen_wmemstream(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yopenat(tls *TLS, fd int32, filename uintptr, flags int32, va uintptr) (r int32) -TEXT ·Yopenat(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ filename+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - MOVQ va+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xopenat(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yopendir(tls *TLS, name uintptr) (r uintptr) -TEXT ·Yopendir(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xopendir(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yopenlog(tls *TLS, ident uintptr, opt int32, facility int32) -TEXT ·Yopenlog(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ident+8(FP), AX - MOVQ AX, 8(SP) - MOVL opt+16(FP), AX - MOVL AX, 16(SP) - MOVL facility+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xopenlog(SB) - RET - -// func Yopenpty(tls *TLS, pm uintptr, ps uintptr, name uintptr, tio uintptr, ws uintptr) (r int32) -TEXT ·Yopenpty(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ pm+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ps+16(FP), AX - MOVQ AX, 16(SP) - MOVQ name+24(FP), AX - MOVQ AX, 24(SP) - MOVQ tio+32(FP), AX - MOVQ AX, 32(SP) - MOVQ ws+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xopenpty(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ypathconf(tls *TLS, path uintptr, name int32) (r int64) -TEXT ·Ypathconf(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL name+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xpathconf(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ypause(tls *TLS) (r int32) -TEXT ·Ypause(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xpause(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ypclose(tls *TLS, f uintptr) (r1 int32) -TEXT ·Ypclose(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpclose(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yperror(tls *TLS, msg uintptr) -TEXT ·Yperror(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ msg+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xperror(SB) - RET - -// func Ypersonality(tls *TLS, persona uint64) (r int32) -TEXT ·Ypersonality(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ persona+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpersonality(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ypipe(tls *TLS, fd uintptr) (r int32) -TEXT ·Ypipe(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fd+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpipe(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ypipe2(tls *TLS, fd uintptr, flag int32) (r int32) -TEXT ·Ypipe2(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fd+8(FP), AX - MOVQ AX, 8(SP) - MOVL flag+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xpipe2(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ypivot_root(tls *TLS, new1 uintptr, old uintptr) (r int32) -TEXT ·Ypivot_root(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ new1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ old+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpivot_root(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ypoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) -TEXT ·Ypoll(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fds+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVL timeout+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xpoll(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ypopen(t *TLS, command, type1 uintptr) uintptr -TEXT ·Ypopen(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ command+8(FP), AX - MOVQ AX, 8(SP) - MOVQ type1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpopen(SB) - MOVQ 24(SP), AX - MOVQ AX, ret+24(FP) - RET - -// func Yposix_close(tls *TLS, fd int32, flags int32) (r int32) -TEXT ·Yposix_close(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL flags+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xposix_close(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yposix_fadvise(tls *TLS, fd int32, base Toff_t, len1 Toff_t, advice int32) (r int32) -TEXT ·Yposix_fadvise(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ base+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVL advice+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xposix_fadvise(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yposix_fallocate(tls *TLS, fd int32, base Toff_t, len1 Toff_t) (r int32) -TEXT ·Yposix_fallocate(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ base+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xposix_fallocate(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yposix_madvise(tls *TLS, addr uintptr, len1 Tsize_t, advice int32) (r int32) -TEXT ·Yposix_madvise(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVL advice+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xposix_madvise(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yposix_openpt(tls *TLS, flags int32) (r1 int32) -TEXT ·Yposix_openpt(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL flags+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xposix_openpt(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yposix_spawn_file_actions_addchdir_np(tls *TLS, fa uintptr, path uintptr) (r int32) -TEXT ·Yposix_spawn_file_actions_addchdir_np(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fa+8(FP), AX - MOVQ AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawn_file_actions_addchdir_np(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawn_file_actions_addclose(tls *TLS, fa uintptr, fd int32) (r int32) -TEXT ·Yposix_spawn_file_actions_addclose(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fa+8(FP), AX - MOVQ AX, 8(SP) - MOVL fd+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xposix_spawn_file_actions_addclose(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawn_file_actions_adddup2(tls *TLS, fa uintptr, srcfd int32, fd int32) (r int32) -TEXT ·Yposix_spawn_file_actions_adddup2(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fa+8(FP), AX - MOVQ AX, 8(SP) - MOVL srcfd+16(FP), AX - MOVL AX, 16(SP) - MOVL fd+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xposix_spawn_file_actions_adddup2(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawn_file_actions_addfchdir_np(tls *TLS, fa uintptr, fd int32) (r int32) -TEXT ·Yposix_spawn_file_actions_addfchdir_np(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fa+8(FP), AX - MOVQ AX, 8(SP) - MOVL fd+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xposix_spawn_file_actions_addfchdir_np(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawn_file_actions_addopen(tls *TLS, fa uintptr, fd int32, path uintptr, flags int32, mode Tmode_t) (r int32) -TEXT ·Yposix_spawn_file_actions_addopen(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fa+8(FP), AX - MOVQ AX, 8(SP) - MOVL fd+16(FP), AX - MOVL AX, 16(SP) - MOVQ path+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - MOVL mode+36(FP), AX - MOVL AX, 36(SP) - CALL ·Xposix_spawn_file_actions_addopen(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yposix_spawn_file_actions_destroy(tls *TLS, fa uintptr) (r int32) -TEXT ·Yposix_spawn_file_actions_destroy(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fa+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xposix_spawn_file_actions_destroy(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yposix_spawn_file_actions_init(tls *TLS, fa uintptr) (r int32) -TEXT ·Yposix_spawn_file_actions_init(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fa+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xposix_spawn_file_actions_init(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yposix_spawnattr_destroy(tls *TLS, attr uintptr) (r int32) -TEXT ·Yposix_spawnattr_destroy(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xposix_spawnattr_destroy(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yposix_spawnattr_getflags(tls *TLS, attr uintptr, flags uintptr) (r int32) -TEXT ·Yposix_spawnattr_getflags(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ flags+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_getflags(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_getpgroup(tls *TLS, attr uintptr, pgrp uintptr) (r int32) -TEXT ·Yposix_spawnattr_getpgroup(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ pgrp+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_getpgroup(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_getschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) -TEXT ·Yposix_spawnattr_getschedparam(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ schedparam+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_getschedparam(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_getschedpolicy(tls *TLS, attr uintptr, policy uintptr) (r int32) -TEXT ·Yposix_spawnattr_getschedpolicy(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ policy+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_getschedpolicy(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_getsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) -TEXT ·Yposix_spawnattr_getsigdefault(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ def+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_getsigdefault(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_getsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) -TEXT ·Yposix_spawnattr_getsigmask(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mask+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_getsigmask(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_init(tls *TLS, attr uintptr) (r int32) -TEXT ·Yposix_spawnattr_init(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xposix_spawnattr_init(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yposix_spawnattr_setflags(tls *TLS, attr uintptr, flags int16) (r int32) -TEXT ·Yposix_spawnattr_setflags(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVW flags+16(FP), AX - MOVW AX, 16(SP) - CALL ·Xposix_spawnattr_setflags(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_setpgroup(tls *TLS, attr uintptr, pgrp Tpid_t) (r int32) -TEXT ·Yposix_spawnattr_setpgroup(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVL pgrp+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xposix_spawnattr_setpgroup(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_setschedparam(tls *TLS, attr uintptr, schedparam uintptr) (r int32) -TEXT ·Yposix_spawnattr_setschedparam(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ schedparam+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_setschedparam(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_setschedpolicy(tls *TLS, attr uintptr, policy int32) (r int32) -TEXT ·Yposix_spawnattr_setschedpolicy(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVL policy+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xposix_spawnattr_setschedpolicy(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_setsigdefault(tls *TLS, attr uintptr, def uintptr) (r int32) -TEXT ·Yposix_spawnattr_setsigdefault(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ def+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_setsigdefault(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yposix_spawnattr_setsigmask(tls *TLS, attr uintptr, mask uintptr) (r int32) -TEXT ·Yposix_spawnattr_setsigmask(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ attr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mask+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xposix_spawnattr_setsigmask(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ypow(tls *TLS, x1 float64, y1 float64) (r float64) -TEXT ·Ypow(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpow(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ypow10(tls *TLS, x float64) (r float64) -TEXT ·Ypow10(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpow10(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ypow10f(tls *TLS, x float32) (r float32) -TEXT ·Ypow10f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xpow10f(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ypow10l(tls *TLS, x float64) (r float64) -TEXT ·Ypow10l(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpow10l(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ypowf(tls *TLS, x1 float32, y1 float32) (r float32) -TEXT ·Ypowf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x1+8(FP), AX - MOVL AX, 8(SP) - MOVL y1+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xpowf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ypowl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Ypowl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpowl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32) -TEXT ·Yppoll(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fds+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ to+24(FP), AX - MOVQ AX, 24(SP) - MOVQ mask+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xppoll(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yprctl(tls *TLS, op int32, va uintptr) (r int32) -TEXT ·Yprctl(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL op+8(FP), AX - MOVL AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xprctl(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ypread(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) -TEXT ·Ypread(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ size+24(FP), AX - MOVQ AX, 24(SP) - MOVQ ofs+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xpread(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ypreadv(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) -TEXT ·Ypreadv(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ iov+16(FP), AX - MOVQ AX, 16(SP) - MOVL count+24(FP), AX - MOVL AX, 24(SP) - MOVQ ofs+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xpreadv(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ypreadv2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) -TEXT ·Ypreadv2(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ iov+16(FP), AX - MOVQ AX, 16(SP) - MOVL count+24(FP), AX - MOVL AX, 24(SP) - MOVQ ofs+32(FP), AX - MOVQ AX, 32(SP) - MOVL flags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xpreadv2(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Yprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) -TEXT ·Yprintf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xprintf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yprlimit(tls *TLS, pid Tpid_t, resource int32, new_limit uintptr, old_limit uintptr) (r1 int32) -TEXT ·Yprlimit(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVL resource+12(FP), AX - MOVL AX, 12(SP) - MOVQ new_limit+16(FP), AX - MOVQ AX, 16(SP) - MOVQ old_limit+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xprlimit(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Yprocess_vm_readv(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) -TEXT ·Yprocess_vm_readv(SB),$64-64 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVQ lvec+16(FP), AX - MOVQ AX, 16(SP) - MOVQ liovcnt+24(FP), AX - MOVQ AX, 24(SP) - MOVQ rvec+32(FP), AX - MOVQ AX, 32(SP) - MOVQ riovcnt+40(FP), AX - MOVQ AX, 40(SP) - MOVQ flags+48(FP), AX - MOVQ AX, 48(SP) - CALL ·Xprocess_vm_readv(SB) - MOVQ 56(SP), AX - MOVQ AX, r+56(FP) - RET - -// func Yprocess_vm_writev(tls *TLS, pid Tpid_t, lvec uintptr, liovcnt uint64, rvec uintptr, riovcnt uint64, flags uint64) (r Tssize_t) -TEXT ·Yprocess_vm_writev(SB),$64-64 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVQ lvec+16(FP), AX - MOVQ AX, 16(SP) - MOVQ liovcnt+24(FP), AX - MOVQ AX, 24(SP) - MOVQ rvec+32(FP), AX - MOVQ AX, 32(SP) - MOVQ riovcnt+40(FP), AX - MOVQ AX, 40(SP) - MOVQ flags+48(FP), AX - MOVQ AX, 48(SP) - CALL ·Xprocess_vm_writev(SB) - MOVQ 56(SP), AX - MOVQ AX, r+56(FP) - RET - -// func Ypselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts uintptr, mask uintptr) (r int32) -TEXT ·Ypselect(SB),$64-60 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - MOVQ rfds+16(FP), AX - MOVQ AX, 16(SP) - MOVQ wfds+24(FP), AX - MOVQ AX, 24(SP) - MOVQ efds+32(FP), AX - MOVQ AX, 32(SP) - MOVQ ts+40(FP), AX - MOVQ AX, 40(SP) - MOVQ mask+48(FP), AX - MOVQ AX, 48(SP) - CALL ·Xpselect(SB) - MOVL 56(SP), AX - MOVL AX, r+56(FP) - RET - -// func Ypsiginfo(tls *TLS, si uintptr, msg uintptr) -TEXT ·Ypsiginfo(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ si+8(FP), AX - MOVQ AX, 8(SP) - MOVQ msg+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpsiginfo(SB) - RET - -// func Ypsignal(tls *TLS, sig int32, msg uintptr) -TEXT ·Ypsignal(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL sig+8(FP), AX - MOVL AX, 8(SP) - MOVQ msg+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpsignal(SB) - RET - -// func Ypthread_atfork(tls *TLS, prepare, parent, child uintptr) int32 -TEXT ·Ypthread_atfork(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ prepare+8(FP), AX - MOVQ AX, 8(SP) - MOVQ parent+16(FP), AX - MOVQ AX, 16(SP) - MOVQ child+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xpthread_atfork(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Ypthread_attr_destroy(tls *TLS, a uintptr) int32 -TEXT ·Ypthread_attr_destroy(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_attr_destroy(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_attr_getdetachstate(tls *TLS, a uintptr, state uintptr) int32 -TEXT ·Ypthread_attr_getdetachstate(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ state+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_attr_getdetachstate(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_attr_init(tls *TLS, a uintptr) int32 -TEXT ·Ypthread_attr_init(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_attr_init(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_attr_setdetachstate(tls *TLS, a uintptr, state int32) (r int32) -TEXT ·Ypthread_attr_setdetachstate(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVL state+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xpthread_attr_setdetachstate(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ypthread_attr_setscope(tls *TLS, a uintptr, scope int32) int32 -TEXT ·Ypthread_attr_setscope(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVL scope+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xpthread_attr_setscope(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_attr_setstacksize(tls *TLS, a uintptr, stacksite Tsize_t) int32 -TEXT ·Ypthread_attr_setstacksize(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ stacksite+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_attr_setstacksize(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_cleanup_pop(tls *TLS, run int32) -TEXT ·Ypthread_cleanup_pop(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL run+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xpthread_cleanup_pop(SB) - RET - -// func Ypthread_cleanup_push(tls *TLS, f, x uintptr) -TEXT ·Ypthread_cleanup_push(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ x+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_cleanup_push(SB) - RET - -// func Ypthread_cond_broadcast(tls *TLS, c uintptr) int32 -TEXT ·Ypthread_cond_broadcast(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ c+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_cond_broadcast(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_cond_destroy(tls *TLS, c uintptr) int32 -TEXT ·Ypthread_cond_destroy(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ c+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_cond_destroy(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_cond_init(tls *TLS, c, a uintptr) int32 -TEXT ·Ypthread_cond_init(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ c+8(FP), AX - MOVQ AX, 8(SP) - MOVQ a+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_cond_init(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_cond_signal(tls *TLS, c uintptr) int32 -TEXT ·Ypthread_cond_signal(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ c+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_cond_signal(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_cond_timedwait(tls *TLS, c, m, ts uintptr) (r int32) -TEXT ·Ypthread_cond_timedwait(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ c+8(FP), AX - MOVQ AX, 8(SP) - MOVQ m+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ts+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xpthread_cond_timedwait(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ypthread_cond_wait(tls *TLS, c, m uintptr) int32 -TEXT ·Ypthread_cond_wait(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ c+8(FP), AX - MOVQ AX, 8(SP) - MOVQ m+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_cond_wait(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_create(tls *TLS, res, attrp, entry, arg uintptr) int32 -TEXT ·Ypthread_create(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ res+8(FP), AX - MOVQ AX, 8(SP) - MOVQ attrp+16(FP), AX - MOVQ AX, 16(SP) - MOVQ entry+24(FP), AX - MOVQ AX, 24(SP) - MOVQ arg+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xpthread_create(SB) - MOVL 40(SP), AX - MOVL AX, ret+40(FP) - RET - -// func Ypthread_detach(tls *TLS, t uintptr) int32 -TEXT ·Ypthread_detach(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_detach(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_equal(tls *TLS, t, u uintptr) int32 -TEXT ·Ypthread_equal(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - MOVQ u+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_equal(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_exit(tls *TLS, result uintptr) -TEXT ·Ypthread_exit(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ result+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_exit(SB) - RET - -// func Ypthread_getspecific(tls *TLS, k Tpthread_key_t) uintptr -TEXT ·Ypthread_getspecific(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL k+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xpthread_getspecific(SB) - MOVQ 16(SP), AX - MOVQ AX, ret+16(FP) - RET - -// func Ypthread_join(tls *TLS, t Tpthread_t, res uintptr) (r int32) -TEXT ·Ypthread_join(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - MOVQ res+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_join(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ypthread_key_create(tls *TLS, k uintptr, dtor uintptr) int32 -TEXT ·Ypthread_key_create(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ k+8(FP), AX - MOVQ AX, 8(SP) - MOVQ dtor+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_key_create(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_key_delete(tls *TLS, k Tpthread_key_t) int32 -TEXT ·Ypthread_key_delete(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL k+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xpthread_key_delete(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_mutex_destroy(tls *TLS, m uintptr) int32 -TEXT ·Ypthread_mutex_destroy(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ m+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_mutex_destroy(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_mutex_init(tls *TLS, m, a uintptr) int32 -TEXT ·Ypthread_mutex_init(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ m+8(FP), AX - MOVQ AX, 8(SP) - MOVQ a+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_mutex_init(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_mutex_lock(tls *TLS, m uintptr) int32 -TEXT ·Ypthread_mutex_lock(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ m+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_mutex_lock(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_mutex_trylock(tls *TLS, m uintptr) int32 -TEXT ·Ypthread_mutex_trylock(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ m+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_mutex_trylock(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_mutex_unlock(tls *TLS, m uintptr) int32 -TEXT ·Ypthread_mutex_unlock(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ m+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_mutex_unlock(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_mutexattr_destroy(tls *TLS, a uintptr) int32 -TEXT ·Ypthread_mutexattr_destroy(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_mutexattr_destroy(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_mutexattr_init(tls *TLS, a uintptr) int32 -TEXT ·Ypthread_mutexattr_init(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpthread_mutexattr_init(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ypthread_mutexattr_settype(tls *TLS, a uintptr, typ int32) int32 -TEXT ·Ypthread_mutexattr_settype(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVL typ+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xpthread_mutexattr_settype(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_self(tls *TLS) uintptr -TEXT ·Ypthread_self(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xpthread_self(SB) - MOVQ 8(SP), AX - MOVQ AX, ret+8(FP) - RET - -// func Ypthread_setcancelstate(tls *TLS, new int32, old uintptr) int32 -TEXT ·Ypthread_setcancelstate(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL new+8(FP), AX - MOVL AX, 8(SP) - MOVQ old+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_setcancelstate(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_setspecific(tls *TLS, k Tpthread_key_t, x uintptr) int32 -TEXT ·Ypthread_setspecific(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL k+8(FP), AX - MOVL AX, 8(SP) - MOVQ x+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xpthread_setspecific(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Ypthread_sigmask(tls *TLS, now int32, set, old uintptr) int32 -TEXT ·Ypthread_sigmask(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL now+8(FP), AX - MOVL AX, 8(SP) - MOVQ set+16(FP), AX - MOVQ AX, 16(SP) - MOVQ old+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xpthread_sigmask(SB) - MOVL 32(SP), AX - MOVL AX, ret+32(FP) - RET - -// func Yptrace(tls *TLS, req int32, va uintptr) (r int64) -TEXT ·Yptrace(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL req+8(FP), AX - MOVL AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xptrace(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yptsname(tls *TLS, fd int32) (r uintptr) -TEXT ·Yptsname(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xptsname(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yptsname_r(tls *TLS, fd int32, buf uintptr, len1 Tsize_t) (r int32) -TEXT ·Yptsname_r(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xptsname_r(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yputc(tls *TLS, c1 int32, f1 uintptr) (r int32) -TEXT ·Yputc(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c1+8(FP), AX - MOVL AX, 8(SP) - MOVQ f1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xputc(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yputc_unlocked(tls *TLS, c int32, f uintptr) (r int32) -TEXT ·Yputc_unlocked(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xputc_unlocked(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yputchar(tls *TLS, c1 int32) (r int32) -TEXT ·Yputchar(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c1+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xputchar(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yputchar_unlocked(tls *TLS, c int32) (r int32) -TEXT ·Yputchar_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xputchar_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yputenv(tls *TLS, s uintptr) (r int32) -TEXT ·Yputenv(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xputenv(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yputgrent(tls *TLS, gr uintptr, f uintptr) (r1 int32) -TEXT ·Yputgrent(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ gr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xputgrent(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Yputpwent(tls *TLS, pw uintptr, f uintptr) (r int32) -TEXT ·Yputpwent(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ pw+8(FP), AX - MOVQ AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xputpwent(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yputs(tls *TLS, s uintptr) (r1 int32) -TEXT ·Yputs(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xputs(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yputspent(tls *TLS, sp uintptr, f uintptr) (r int32) -TEXT ·Yputspent(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ sp+8(FP), AX - MOVQ AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xputspent(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ypututline(tls *TLS, ut uintptr) (r uintptr) -TEXT ·Ypututline(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ut+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpututline(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ypututxline(tls *TLS, ut uintptr) (r uintptr) -TEXT ·Ypututxline(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ut+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xpututxline(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yputw(tls *TLS, _x int32, f uintptr) (r int32) -TEXT ·Yputw(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL _x+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xputw(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yputwc(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) -TEXT ·Yputwc(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xputwc(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yputwc_unlocked(tls *TLS, c Twchar_t, f uintptr) (r Twint_t) -TEXT ·Yputwc_unlocked(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xputwc_unlocked(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yputwchar(tls *TLS, c Twchar_t) (r Twint_t) -TEXT ·Yputwchar(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xputwchar(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yputwchar_unlocked(tls *TLS, c Twchar_t) (r Twint_t) -TEXT ·Yputwchar_unlocked(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xputwchar_unlocked(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ypwrite(tls *TLS, fd int32, buf uintptr, size Tsize_t, ofs Toff_t) (r Tssize_t) -TEXT ·Ypwrite(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ size+24(FP), AX - MOVQ AX, 24(SP) - MOVQ ofs+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xpwrite(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ypwritev(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t) (r Tssize_t) -TEXT ·Ypwritev(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ iov+16(FP), AX - MOVQ AX, 16(SP) - MOVL count+24(FP), AX - MOVL AX, 24(SP) - MOVQ ofs+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xpwritev(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ypwritev2(tls *TLS, fd int32, iov uintptr, count int32, ofs Toff_t, flags int32) (r Tssize_t) -TEXT ·Ypwritev2(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ iov+16(FP), AX - MOVQ AX, 16(SP) - MOVL count+24(FP), AX - MOVL AX, 24(SP) - MOVQ ofs+32(FP), AX - MOVQ AX, 32(SP) - MOVL flags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xpwritev2(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Yqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun) -TEXT ·Yqsort(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ base+8(FP), AX - MOVQ AX, 8(SP) - MOVQ nel+16(FP), AX - MOVQ AX, 16(SP) - MOVQ width+24(FP), AX - MOVQ AX, 24(SP) - MOVQ cmp+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xqsort(SB) - RET - -// func Yqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) -TEXT ·Yqsort_r(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ base+8(FP), AX - MOVQ AX, 8(SP) - MOVQ nel+16(FP), AX - MOVQ AX, 16(SP) - MOVQ width+24(FP), AX - MOVQ AX, 24(SP) - MOVQ cmp+32(FP), AX - MOVQ AX, 32(SP) - MOVQ arg+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xqsort_r(SB) - RET - -// func Yquick_exit(tls *TLS, code int32) -TEXT ·Yquick_exit(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL code+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xquick_exit(SB) - RET - -// func Yquotactl(tls *TLS, cmd int32, special uintptr, id int32, addr uintptr) (r int32) -TEXT ·Yquotactl(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL cmd+8(FP), AX - MOVL AX, 8(SP) - MOVQ special+16(FP), AX - MOVQ AX, 16(SP) - MOVL id+24(FP), AX - MOVL AX, 24(SP) - MOVQ addr+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xquotactl(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yraise(tls *TLS, sig int32) (r int32) -TEXT ·Yraise(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL sig+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xraise(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yrand(tls *TLS) (r int32) -TEXT ·Yrand(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xrand(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yrand_r(tls *TLS, seed uintptr) (r int32) -TEXT ·Yrand_r(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ seed+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xrand_r(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yrandom(tls *TLS) (r int64) -TEXT ·Yrandom(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xrandom(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Yrandom_r(t *TLS, buf, result uintptr) int32 -TEXT ·Yrandom_r(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buf+8(FP), AX - MOVQ AX, 8(SP) - MOVQ result+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xrandom_r(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Yread(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) -TEXT ·Yread(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ count+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xread(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yreadahead(tls *TLS, fd int32, pos Toff_t, len1 Tsize_t) (r Tssize_t) -TEXT ·Yreadahead(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ pos+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xreadahead(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yreaddir(tls *TLS, dir uintptr) (r uintptr) -TEXT ·Yreaddir(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dir+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xreaddir(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yreaddir64(tls *TLS, dir uintptr) (r uintptr) -TEXT ·Yreaddir64(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dir+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xreaddir64(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yreaddir_r(tls *TLS, dir uintptr, buf uintptr, result uintptr) (r int32) -TEXT ·Yreaddir_r(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dir+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ result+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xreaddir_r(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yreadlink(tls *TLS, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) -TEXT ·Yreadlink(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ bufsize+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xreadlink(SB) - MOVQ 32(SP), AX - MOVQ AX, r1+32(FP) - RET - -// func Yreadlinkat(tls *TLS, fd int32, path uintptr, buf uintptr, bufsize Tsize_t) (r1 Tssize_t) -TEXT ·Yreadlinkat(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVQ buf+24(FP), AX - MOVQ AX, 24(SP) - MOVQ bufsize+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xreadlinkat(SB) - MOVQ 40(SP), AX - MOVQ AX, r1+40(FP) - RET - -// func Yreadv(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) -TEXT ·Yreadv(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ iov+16(FP), AX - MOVQ AX, 16(SP) - MOVL count+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xreadv(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yrealloc(tls *TLS, p uintptr, n Tsize_t) (r uintptr) -TEXT ·Yrealloc(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ p+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xrealloc(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yreallocarray(tls *TLS, ptr uintptr, m Tsize_t, n Tsize_t) (r uintptr) -TEXT ·Yreallocarray(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ptr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ m+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xreallocarray(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yrealpath(tls *TLS, filename uintptr, resolved uintptr) (r uintptr) -TEXT ·Yrealpath(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ filename+8(FP), AX - MOVQ AX, 8(SP) - MOVQ resolved+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xrealpath(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yreboot(tls *TLS, type1 int32) (r int32) -TEXT ·Yreboot(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL type1+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xreboot(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yrecv(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) -TEXT ·Yrecv(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xrecv(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yrecvfrom(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen uintptr) (r1 Tssize_t) -TEXT ·Yrecvfrom(SB),$64-64 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - MOVQ addr+40(FP), AX - MOVQ AX, 40(SP) - MOVQ alen+48(FP), AX - MOVQ AX, 48(SP) - CALL ·Xrecvfrom(SB) - MOVQ 56(SP), AX - MOVQ AX, r1+56(FP) - RET - -// func Yrecvmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32, timeout uintptr) (r int32) -TEXT ·Yrecvmmsg(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ msgvec+16(FP), AX - MOVQ AX, 16(SP) - MOVL vlen+24(FP), AX - MOVL AX, 24(SP) - MOVL flags+28(FP), AX - MOVL AX, 28(SP) - MOVQ timeout+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xrecvmmsg(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yrecvmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r2 Tssize_t) -TEXT ·Yrecvmsg(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ msg+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xrecvmsg(SB) - MOVQ 32(SP), AX - MOVQ AX, r2+32(FP) - RET - -// func Yregcomp(tls *TLS, preg uintptr, regex uintptr, cflags int32) (r int32) -TEXT ·Yregcomp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ preg+8(FP), AX - MOVQ AX, 8(SP) - MOVQ regex+16(FP), AX - MOVQ AX, 16(SP) - MOVL cflags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xregcomp(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yregerror(tls *TLS, e int32, preg uintptr, buf uintptr, size Tsize_t) (r Tsize_t) -TEXT ·Yregerror(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL e+8(FP), AX - MOVL AX, 8(SP) - MOVQ preg+16(FP), AX - MOVQ AX, 16(SP) - MOVQ buf+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xregerror(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yregexec(tls *TLS, preg uintptr, string1 uintptr, nmatch Tsize_t, pmatch uintptr, eflags int32) (r int32) -TEXT ·Yregexec(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ preg+8(FP), AX - MOVQ AX, 8(SP) - MOVQ string1+16(FP), AX - MOVQ AX, 16(SP) - MOVQ nmatch+24(FP), AX - MOVQ AX, 24(SP) - MOVQ pmatch+32(FP), AX - MOVQ AX, 32(SP) - MOVL eflags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xregexec(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Yregfree(tls *TLS, preg uintptr) -TEXT ·Yregfree(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ preg+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xregfree(SB) - RET - -// func Yremainder(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yremainder(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xremainder(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yremainderf(tls *TLS, x float32, y float32) (r float32) -TEXT ·Yremainderf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xremainderf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yremainderl(tls *TLS, x float64, y float64) (r float64) -TEXT ·Yremainderl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xremainderl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yremap_file_pages(tls *TLS, addr uintptr, size Tsize_t, prot int32, pgoff Tsize_t, flags int32) (r int32) -TEXT ·Yremap_file_pages(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVL prot+24(FP), AX - MOVL AX, 24(SP) - MOVQ pgoff+32(FP), AX - MOVQ AX, 32(SP) - MOVL flags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xremap_file_pages(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Yremove(tls *TLS, path uintptr) (r1 int32) -TEXT ·Yremove(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xremove(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Yremovexattr(tls *TLS, path uintptr, name uintptr) (r int32) -TEXT ·Yremovexattr(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xremovexattr(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yremque(tls *TLS, element uintptr) -TEXT ·Yremque(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ element+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xremque(SB) - RET - -// func Yremquo(tls *TLS, x float64, y float64, quo uintptr) (r float64) -TEXT ·Yremquo(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - MOVQ quo+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xremquo(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yremquof(tls *TLS, x float32, y float32, quo uintptr) (r float32) -TEXT ·Yremquof(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL y+12(FP), AX - MOVL AX, 12(SP) - MOVQ quo+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xremquof(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yremquol(tls *TLS, x float64, y float64, quo uintptr) (r float64) -TEXT ·Yremquol(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ y+16(FP), AX - MOVQ AX, 16(SP) - MOVQ quo+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xremquol(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yrename(tls *TLS, old uintptr, new1 uintptr) (r int32) -TEXT ·Yrename(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ old+8(FP), AX - MOVQ AX, 8(SP) - MOVQ new1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xrename(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yrenameat(tls *TLS, oldfd int32, old uintptr, newfd int32, new1 uintptr) (r int32) -TEXT ·Yrenameat(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL oldfd+8(FP), AX - MOVL AX, 8(SP) - MOVQ old+16(FP), AX - MOVQ AX, 16(SP) - MOVL newfd+24(FP), AX - MOVL AX, 24(SP) - MOVQ new1+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xrenameat(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yrenameat2(t *TLS, olddirfd int32, oldpath uintptr, newdirfd int32, newpath uintptr, flags int32) int32 -TEXT ·Yrenameat2(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVL olddirfd+8(FP), AX - MOVL AX, 8(SP) - MOVQ oldpath+16(FP), AX - MOVQ AX, 16(SP) - MOVL newdirfd+24(FP), AX - MOVL AX, 24(SP) - MOVQ newpath+32(FP), AX - MOVQ AX, 32(SP) - MOVL flags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xrenameat2(SB) - MOVL 48(SP), AX - MOVL AX, ret+48(FP) - RET - -// func Yres_init(tls *TLS) (r int32) -TEXT ·Yres_init(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xres_init(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yres_mkquery(tls *TLS, op int32, dname uintptr, class int32, type1 int32, data uintptr, datalen int32, newrr uintptr, buf uintptr, buflen int32) (r int32) -TEXT ·Yres_mkquery(SB),$80-76 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL op+8(FP), AX - MOVL AX, 8(SP) - MOVQ dname+16(FP), AX - MOVQ AX, 16(SP) - MOVL class+24(FP), AX - MOVL AX, 24(SP) - MOVL type1+28(FP), AX - MOVL AX, 28(SP) - MOVQ data+32(FP), AX - MOVQ AX, 32(SP) - MOVL datalen+40(FP), AX - MOVL AX, 40(SP) - MOVQ newrr+48(FP), AX - MOVQ AX, 48(SP) - MOVQ buf+56(FP), AX - MOVQ AX, 56(SP) - MOVL buflen+64(FP), AX - MOVL AX, 64(SP) - CALL ·Xres_mkquery(SB) - MOVL 72(SP), AX - MOVL AX, r+72(FP) - RET - -// func Yres_send(tls *TLS, _msg uintptr, _msglen int32, _answer uintptr, _anslen int32) (r int32) -TEXT ·Yres_send(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ _msg+8(FP), AX - MOVQ AX, 8(SP) - MOVL _msglen+16(FP), AX - MOVL AX, 16(SP) - MOVQ _answer+24(FP), AX - MOVQ AX, 24(SP) - MOVL _anslen+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xres_send(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yrewind(tls *TLS, f uintptr) -TEXT ·Yrewind(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xrewind(SB) - RET - -// func Yrewinddir(tls *TLS, dir uintptr) -TEXT ·Yrewinddir(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dir+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xrewinddir(SB) - RET - -// func Yrindex(tls *TLS, s uintptr, c int32) (r uintptr) -TEXT ·Yrindex(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xrindex(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yrint(tls *TLS, x float64) (r float64) -TEXT ·Yrint(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xrint(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yrintf(tls *TLS, x float32) (r float32) -TEXT ·Yrintf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xrintf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yrintl(tls *TLS, x float64) (r float64) -TEXT ·Yrintl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xrintl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yrmdir(tls *TLS, path uintptr) (r int32) -TEXT ·Yrmdir(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xrmdir(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yround(tls *TLS, x3 float64) (r float64) -TEXT ·Yround(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xround(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yroundf(tls *TLS, x3 float32) (r float32) -TEXT ·Yroundf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xroundf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yroundl(tls *TLS, x float64) (r float64) -TEXT ·Yroundl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xroundl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysbrk(tls *TLS, inc Tintptr_t) (r uintptr) -TEXT ·Ysbrk(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ inc+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsbrk(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yscalb(tls *TLS, x float64, fn float64) (r float64) -TEXT ·Yscalb(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fn+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xscalb(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yscalbf(tls *TLS, x float32, fn float32) (r float32) -TEXT ·Yscalbf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL fn+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xscalbf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yscalbln(tls *TLS, x float64, n int64) (r float64) -TEXT ·Yscalbln(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xscalbln(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yscalblnf(tls *TLS, x float32, n int64) (r float32) -TEXT ·Yscalblnf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xscalblnf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yscalblnl(tls *TLS, x float64, n int64) (r float64) -TEXT ·Yscalblnl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xscalblnl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yscalbn(tls *TLS, x float64, n int32) (r float64) -TEXT ·Yscalbn(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xscalbn(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yscalbnf(tls *TLS, x float32, n int32) (r float32) -TEXT ·Yscalbnf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - MOVL n+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xscalbnf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yscalbnl(tls *TLS, x float64, n int32) (r float64) -TEXT ·Yscalbnl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVL n+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xscalbnl(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) -TEXT ·Yscandir(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ res+16(FP), AX - MOVQ AX, 16(SP) - MOVQ sel+24(FP), AX - MOVQ AX, 24(SP) - MOVQ cmp+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xscandir(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) -TEXT ·Yscanf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xscanf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysched_yield(tls *TLS) int32 -TEXT ·Ysched_yield(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsched_yield(SB) - MOVL 8(SP), AX - MOVL AX, ret+8(FP) - RET - -// func Ysecure_getenv(tls *TLS, name uintptr) (r uintptr) -TEXT ·Ysecure_getenv(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsecure_getenv(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yseed48(tls *TLS, s uintptr) (r uintptr) -TEXT ·Yseed48(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xseed48(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yseekdir(tls *TLS, dir uintptr, off int64) -TEXT ·Yseekdir(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dir+8(FP), AX - MOVQ AX, 8(SP) - MOVQ off+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xseekdir(SB) - RET - -// func Yselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, tv uintptr) (r int32) -TEXT ·Yselect(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - MOVQ rfds+16(FP), AX - MOVQ AX, 16(SP) - MOVQ wfds+24(FP), AX - MOVQ AX, 24(SP) - MOVQ efds+32(FP), AX - MOVQ AX, 32(SP) - MOVQ tv+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xselect(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Ysemctl(tls *TLS, id int32, num int32, cmd int32, va uintptr) (r1 int32) -TEXT ·Ysemctl(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL id+8(FP), AX - MOVL AX, 8(SP) - MOVL num+12(FP), AX - MOVL AX, 12(SP) - MOVL cmd+16(FP), AX - MOVL AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsemctl(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ysemget(tls *TLS, key Tkey_t, n int32, fl int32) (r int32) -TEXT ·Ysemget(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL key+8(FP), AX - MOVL AX, 8(SP) - MOVL n+12(FP), AX - MOVL AX, 12(SP) - MOVL fl+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xsemget(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysemop(tls *TLS, id int32, buf uintptr, n Tsize_t) (r int32) -TEXT ·Ysemop(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL id+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsemop(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ysemtimedop(tls *TLS, id int32, buf uintptr, n Tsize_t, ts uintptr) (r int32) -TEXT ·Ysemtimedop(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL id+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ ts+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xsemtimedop(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ysend(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32) (r Tssize_t) -TEXT ·Ysend(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xsend(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ysendfile(tls *TLS, out_fd int32, in_fd int32, ofs uintptr, count Tsize_t) (r Tssize_t) -TEXT ·Ysendfile(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL out_fd+8(FP), AX - MOVL AX, 8(SP) - MOVL in_fd+12(FP), AX - MOVL AX, 12(SP) - MOVQ ofs+16(FP), AX - MOVQ AX, 16(SP) - MOVQ count+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsendfile(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ysendmmsg(tls *TLS, fd int32, msgvec uintptr, vlen uint32, flags uint32) (r1 int32) -TEXT ·Ysendmmsg(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ msgvec+16(FP), AX - MOVQ AX, 16(SP) - MOVL vlen+24(FP), AX - MOVL AX, 24(SP) - MOVL flags+28(FP), AX - MOVL AX, 28(SP) - CALL ·Xsendmmsg(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ysendmsg(tls *TLS, fd int32, msg uintptr, flags int32) (r1 Tssize_t) -TEXT ·Ysendmsg(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ msg+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xsendmsg(SB) - MOVQ 32(SP), AX - MOVQ AX, r1+32(FP) - RET - -// func Ysendto(tls *TLS, fd int32, buf uintptr, len1 Tsize_t, flags int32, addr uintptr, alen Tsocklen_t) (r1 Tssize_t) -TEXT ·Ysendto(SB),$64-64 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - MOVQ addr+40(FP), AX - MOVQ AX, 40(SP) - MOVL alen+48(FP), AX - MOVL AX, 48(SP) - CALL ·Xsendto(SB) - MOVQ 56(SP), AX - MOVQ AX, r1+56(FP) - RET - -// func Ysetbuf(tls *TLS, f uintptr, buf uintptr) -TEXT ·Ysetbuf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsetbuf(SB) - RET - -// func Ysetbuffer(tls *TLS, f uintptr, buf uintptr, size Tsize_t) -TEXT ·Ysetbuffer(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ size+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsetbuffer(SB) - RET - -// func Ysetdomainname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) -TEXT ·Ysetdomainname(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsetdomainname(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysetenv(tls *TLS, var1 uintptr, value uintptr, overwrite int32) (r int32) -TEXT ·Ysetenv(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ var1+8(FP), AX - MOVQ AX, 8(SP) - MOVQ value+16(FP), AX - MOVQ AX, 16(SP) - MOVL overwrite+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xsetenv(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ysetfsgid(tls *TLS, gid Tgid_t) (r int32) -TEXT ·Ysetfsgid(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL gid+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsetfsgid(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysetfsuid(tls *TLS, uid Tuid_t) (r int32) -TEXT ·Ysetfsuid(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL uid+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsetfsuid(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysetgid(tls *TLS, gid Tgid_t) (r int32) -TEXT ·Ysetgid(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL gid+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsetgid(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysetgrent(tls *TLS) -TEXT ·Ysetgrent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsetgrent(SB) - RET - -// func Ysethostent(tls *TLS, x int32) -TEXT ·Ysethostent(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsethostent(SB) - RET - -// func Ysethostname(tls *TLS, name uintptr, len1 Tsize_t) (r int32) -TEXT ·Ysethostname(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsethostname(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysetitimer(tls *TLS, which int32, new1 uintptr, old uintptr) (r1 int32) -TEXT ·Ysetitimer(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL which+8(FP), AX - MOVL AX, 8(SP) - MOVQ new1+16(FP), AX - MOVQ AX, 16(SP) - MOVQ old+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsetitimer(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ysetjmp(t *TLS, env uintptr) int32 -TEXT ·Ysetjmp(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ env+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsetjmp(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ysetkey(tls *TLS, key uintptr) -TEXT ·Ysetkey(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsetkey(SB) - RET - -// func Ysetlinebuf(tls *TLS, f uintptr) -TEXT ·Ysetlinebuf(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsetlinebuf(SB) - RET - -// func Ysetlocale(tls *TLS, cat int32, name uintptr) (r uintptr) -TEXT ·Ysetlocale(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL cat+8(FP), AX - MOVL AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsetlocale(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ysetlogmask(tls *TLS, maskpri int32) (r int32) -TEXT ·Ysetlogmask(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL maskpri+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsetlogmask(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysetmntent(tls *TLS, name uintptr, mode uintptr) (r uintptr) -TEXT ·Ysetmntent(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ mode+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsetmntent(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ysetnetent(tls *TLS, x int32) -TEXT ·Ysetnetent(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsetnetent(SB) - RET - -// func Ysetns(tls *TLS, fd int32, nstype int32) (r int32) -TEXT ·Ysetns(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL nstype+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xsetns(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysetpgid(tls *TLS, pid Tpid_t, pgid Tpid_t) (r int32) -TEXT ·Ysetpgid(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVL pgid+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xsetpgid(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysetpgrp(tls *TLS) (r Tpid_t) -TEXT ·Ysetpgrp(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsetpgrp(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ysetpriority(tls *TLS, which int32, who Tid_t, prio int32) (r int32) -TEXT ·Ysetpriority(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL which+8(FP), AX - MOVL AX, 8(SP) - MOVL who+12(FP), AX - MOVL AX, 12(SP) - MOVL prio+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xsetpriority(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysetprotoent(tls *TLS, stayopen int32) -TEXT ·Ysetprotoent(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL stayopen+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsetprotoent(SB) - RET - -// func Ysetpwent(tls *TLS) -TEXT ·Ysetpwent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsetpwent(SB) - RET - -// func Ysetrlimit(tls *TLS, resource int32, rlim uintptr) (r int32) -TEXT ·Ysetrlimit(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL resource+8(FP), AX - MOVL AX, 8(SP) - MOVQ rlim+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsetrlimit(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysetrlimit64(tls *TLS, resource int32, rlim uintptr) (r int32) -TEXT ·Ysetrlimit64(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL resource+8(FP), AX - MOVL AX, 8(SP) - MOVQ rlim+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsetrlimit64(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysetservent(tls *TLS, stayopen int32) -TEXT ·Ysetservent(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL stayopen+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsetservent(SB) - RET - -// func Ysetsid(tls *TLS) (r Tpid_t) -TEXT ·Ysetsid(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsetsid(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Ysetsockopt(tls *TLS, fd int32, level int32, optname int32, optval uintptr, optlen Tsocklen_t) (r2 int32) -TEXT ·Ysetsockopt(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL level+12(FP), AX - MOVL AX, 12(SP) - MOVL optname+16(FP), AX - MOVL AX, 16(SP) - MOVQ optval+24(FP), AX - MOVQ AX, 24(SP) - MOVL optlen+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xsetsockopt(SB) - MOVL 40(SP), AX - MOVL AX, r2+40(FP) - RET - -// func Ysetspent(tls *TLS) -TEXT ·Ysetspent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsetspent(SB) - RET - -// func Ysetstate(tls *TLS, state uintptr) (r uintptr) -TEXT ·Ysetstate(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ state+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsetstate(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysettimeofday(tls *TLS, tv uintptr, tz uintptr) (r int32) -TEXT ·Ysettimeofday(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tv+8(FP), AX - MOVQ AX, 8(SP) - MOVQ tz+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsettimeofday(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysetuid(tls *TLS, uid Tuid_t) (r int32) -TEXT ·Ysetuid(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL uid+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsetuid(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysetusershell(tls *TLS) -TEXT ·Ysetusershell(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsetusershell(SB) - RET - -// func Ysetutent(tls *TLS) -TEXT ·Ysetutent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsetutent(SB) - RET - -// func Ysetutxent(tls *TLS) -TEXT ·Ysetutxent(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsetutxent(SB) - RET - -// func Ysetvbuf(tls *TLS, f uintptr, buf uintptr, type1 int32, size Tsize_t) (r int32) -TEXT ·Ysetvbuf(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVL type1+24(FP), AX - MOVL AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xsetvbuf(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ysetxattr(tls *TLS, path uintptr, name uintptr, value uintptr, size Tsize_t, flags int32) (r int32) -TEXT ·Ysetxattr(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - MOVQ value+24(FP), AX - MOVQ AX, 24(SP) - MOVQ size+32(FP), AX - MOVQ AX, 32(SP) - MOVL flags+40(FP), AX - MOVL AX, 40(SP) - CALL ·Xsetxattr(SB) - MOVL 48(SP), AX - MOVL AX, r+48(FP) - RET - -// func Yshm_open(tls *TLS, name uintptr, flag int32, mode Tmode_t) (r int32) -TEXT ·Yshm_open(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVL flag+16(FP), AX - MOVL AX, 16(SP) - MOVL mode+20(FP), AX - MOVL AX, 20(SP) - CALL ·Xshm_open(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yshm_unlink(tls *TLS, name uintptr) (r int32) -TEXT ·Yshm_unlink(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xshm_unlink(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yshmat(tls *TLS, id int32, addr uintptr, flag int32) (r uintptr) -TEXT ·Yshmat(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL id+8(FP), AX - MOVL AX, 8(SP) - MOVQ addr+16(FP), AX - MOVQ AX, 16(SP) - MOVL flag+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xshmat(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Yshmctl(tls *TLS, id int32, cmd int32, buf uintptr) (r1 int32) -TEXT ·Yshmctl(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL id+8(FP), AX - MOVL AX, 8(SP) - MOVL cmd+12(FP), AX - MOVL AX, 12(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xshmctl(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Yshmdt(tls *TLS, addr uintptr) (r int32) -TEXT ·Yshmdt(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ addr+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xshmdt(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yshmget(tls *TLS, key Tkey_t, size Tsize_t, flag int32) (r int32) -TEXT ·Yshmget(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL key+8(FP), AX - MOVL AX, 8(SP) - MOVQ size+16(FP), AX - MOVQ AX, 16(SP) - MOVL flag+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xshmget(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yshutdown(tls *TLS, fd int32, how int32) (r1 int32) -TEXT ·Yshutdown(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL how+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xshutdown(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Ysigaction(tls *TLS, sig int32, sa uintptr, old uintptr) (r int32) -TEXT ·Ysigaction(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL sig+8(FP), AX - MOVL AX, 8(SP) - MOVQ sa+16(FP), AX - MOVQ AX, 16(SP) - MOVQ old+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsigaction(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ysigaddset(tls *TLS, set uintptr, sig int32) (r int32) -TEXT ·Ysigaddset(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ set+8(FP), AX - MOVQ AX, 8(SP) - MOVL sig+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xsigaddset(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) -TEXT ·Ysigaltstack(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ss+8(FP), AX - MOVQ AX, 8(SP) - MOVQ old+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsigaltstack(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysigandset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) -TEXT ·Ysigandset(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ left+16(FP), AX - MOVQ AX, 16(SP) - MOVQ right+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsigandset(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ysigdelset(tls *TLS, set uintptr, sig int32) (r int32) -TEXT ·Ysigdelset(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ set+8(FP), AX - MOVQ AX, 8(SP) - MOVL sig+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xsigdelset(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysigemptyset(tls *TLS, set uintptr) (r int32) -TEXT ·Ysigemptyset(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ set+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsigemptyset(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysigfillset(tls *TLS, set uintptr) (r int32) -TEXT ·Ysigfillset(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ set+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsigfillset(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysigisemptyset(tls *TLS, set uintptr) (r int32) -TEXT ·Ysigisemptyset(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ set+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsigisemptyset(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysigismember(tls *TLS, set uintptr, sig int32) (r int32) -TEXT ·Ysigismember(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ set+8(FP), AX - MOVQ AX, 8(SP) - MOVL sig+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xsigismember(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysignal(tls *TLS, signum int32, handler uintptr) (r uintptr) -TEXT ·Ysignal(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL signum+8(FP), AX - MOVL AX, 8(SP) - MOVQ handler+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsignal(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ysignalfd(tls *TLS, fd int32, sigs uintptr, flags int32) (r int32) -TEXT ·Ysignalfd(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ sigs+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xsignalfd(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ysignificand(tls *TLS, x float64) (r float64) -TEXT ·Ysignificand(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsignificand(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysignificandf(tls *TLS, x float32) (r float32) -TEXT ·Ysignificandf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsignificandf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysigorset(tls *TLS, dest uintptr, left uintptr, right uintptr) (r1 int32) -TEXT ·Ysigorset(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ left+16(FP), AX - MOVQ AX, 16(SP) - MOVQ right+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsigorset(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ysigpending(tls *TLS, set uintptr) (r int32) -TEXT ·Ysigpending(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ set+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsigpending(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysigprocmask(tls *TLS, how int32, set uintptr, old uintptr) (r1 int32) -TEXT ·Ysigprocmask(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL how+8(FP), AX - MOVL AX, 8(SP) - MOVQ set+16(FP), AX - MOVQ AX, 16(SP) - MOVQ old+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsigprocmask(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ysigqueue(tls *TLS, pid Tpid_t, sig int32, value Tsigval) (r1 int32) -TEXT ·Ysigqueue(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVL sig+12(FP), AX - MOVL AX, 12(SP) - MOVL value_Fsival_int+16(FP), AX - MOVL AX, 16(SP) - MOVB value_F__ccgo_pad2_0+20(FP), AX - MOVB AX, 20(SP) - MOVB value_F__ccgo_pad2_1+21(FP), AX - MOVB AX, 21(SP) - MOVB value_F__ccgo_pad2_2+22(FP), AX - MOVB AX, 22(SP) - MOVB value_F__ccgo_pad2_3+23(FP), AX - MOVB AX, 23(SP) - CALL ·Xsigqueue(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ysigsuspend(tls *TLS, mask uintptr) (r int32) -TEXT ·Ysigsuspend(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ mask+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsigsuspend(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysigtimedwait(tls *TLS, mask uintptr, si uintptr, timeout uintptr) (r int32) -TEXT ·Ysigtimedwait(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ mask+8(FP), AX - MOVQ AX, 8(SP) - MOVQ si+16(FP), AX - MOVQ AX, 16(SP) - MOVQ timeout+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsigtimedwait(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ysigwait(tls *TLS, mask uintptr, sig uintptr) (r int32) -TEXT ·Ysigwait(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ mask+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sig+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsigwait(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysigwaitinfo(tls *TLS, mask uintptr, si uintptr) (r int32) -TEXT ·Ysigwaitinfo(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ mask+8(FP), AX - MOVQ AX, 8(SP) - MOVQ si+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsigwaitinfo(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysin(tls *TLS, x3 float64) (r float64) -TEXT ·Ysin(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsin(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysincos(tls *TLS, x3 float64, sin uintptr, cos uintptr) -TEXT ·Ysincos(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sin+16(FP), AX - MOVQ AX, 16(SP) - MOVQ cos+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsincos(SB) - RET - -// func Ysincosf(tls *TLS, x3 float32, sin uintptr, cos uintptr) -TEXT ·Ysincosf(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - MOVQ sin+16(FP), AX - MOVQ AX, 16(SP) - MOVQ cos+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsincosf(SB) - RET - -// func Ysincosl(tls *TLS, x float64, sin uintptr, cos uintptr) -TEXT ·Ysincosl(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sin+16(FP), AX - MOVQ AX, 16(SP) - MOVQ cos+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsincosl(SB) - RET - -// func Ysinf(tls *TLS, x3 float32) (r float32) -TEXT ·Ysinf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsinf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysinh(tls *TLS, x float64) (r float64) -TEXT ·Ysinh(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsinh(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysinhf(tls *TLS, x float32) (r float32) -TEXT ·Ysinhf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsinhf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysinhl(tls *TLS, x float64) (r float64) -TEXT ·Ysinhl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsinhl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysinl(tls *TLS, x float64) (r float64) -TEXT ·Ysinl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsinl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysleep(tls *TLS, seconds uint32) (r uint32) -TEXT ·Ysleep(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL seconds+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsleep(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) -TEXT ·Ysnprintf(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ fmt+24(FP), AX - MOVQ AX, 24(SP) - MOVQ va+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xsnprintf(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ysockatmark(tls *TLS, s int32) (r int32) -TEXT ·Ysockatmark(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL s+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsockatmark(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysocket(tls *TLS, domain int32, type1 int32, protocol int32) (r1 int32) -TEXT ·Ysocket(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL domain+8(FP), AX - MOVL AX, 8(SP) - MOVL type1+12(FP), AX - MOVL AX, 12(SP) - MOVL protocol+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xsocket(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ysocketpair(tls *TLS, domain int32, type1 int32, protocol int32, fd uintptr) (r2 int32) -TEXT ·Ysocketpair(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL domain+8(FP), AX - MOVL AX, 8(SP) - MOVL type1+12(FP), AX - MOVL AX, 12(SP) - MOVL protocol+16(FP), AX - MOVL AX, 16(SP) - MOVQ fd+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsocketpair(SB) - MOVL 32(SP), AX - MOVL AX, r2+32(FP) - RET - -// func Ysplice(tls *TLS, fd_in int32, off_in uintptr, fd_out int32, off_out uintptr, len1 Tsize_t, flags uint32) (r Tssize_t) -TEXT ·Ysplice(SB),$64-64 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd_in+8(FP), AX - MOVL AX, 8(SP) - MOVQ off_in+16(FP), AX - MOVQ AX, 16(SP) - MOVL fd_out+24(FP), AX - MOVL AX, 24(SP) - MOVQ off_out+32(FP), AX - MOVQ AX, 32(SP) - MOVQ len1+40(FP), AX - MOVQ AX, 40(SP) - MOVL flags+48(FP), AX - MOVL AX, 48(SP) - CALL ·Xsplice(SB) - MOVQ 56(SP), AX - MOVQ AX, r+56(FP) - RET - -// func Ysprintf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) -TEXT ·Ysprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ysqrt(tls *TLS, x1 float64) (r1 float64) -TEXT ·Ysqrt(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsqrt(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Ysqrtf(tls *TLS, x1 float32) (r1 float32) -TEXT ·Ysqrtf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x1+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsqrtf(SB) - MOVL 16(SP), AX - MOVL AX, r1+16(FP) - RET - -// func Ysqrtl(tls *TLS, x float64) (r float64) -TEXT ·Ysqrtl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsqrtl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysrand(tls *TLS, s uint32) -TEXT ·Ysrand(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL s+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsrand(SB) - RET - -// func Ysrand48(tls *TLS, seed int64) -TEXT ·Ysrand48(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ seed+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsrand48(SB) - RET - -// func Ysrandom(tls *TLS, seed uint32) -TEXT ·Ysrandom(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL seed+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsrandom(SB) - RET - -// func Ysscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) -TEXT ·Ysscanf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsscanf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ystat(tls *TLS, path uintptr, buf uintptr) (r int32) -TEXT ·Ystat(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstat(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ystat64(tls *TLS, path uintptr, buf uintptr) (r int32) -TEXT ·Ystat64(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstat64(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ystatvfs(tls *TLS, path uintptr, buf uintptr) (r int32) -TEXT ·Ystatvfs(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstatvfs(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ystatx(tls *TLS, dirfd int32, path uintptr, flags int32, mask uint32, stx uintptr) (r int32) -TEXT ·Ystatx(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL dirfd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - MOVL mask+28(FP), AX - MOVL AX, 28(SP) - MOVQ stx+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xstatx(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ystime(tls *TLS, t uintptr) (r int32) -TEXT ·Ystime(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xstime(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ystpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) -TEXT ·Ystpcpy(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstpcpy(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ystpncpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstpncpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrcasecmp(tls *TLS, _l uintptr, _r uintptr) (r1 int32) -TEXT ·Ystrcasecmp(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ _l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ _r+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrcasecmp(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ystrcasecmp_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) -TEXT ·Ystrcasecmp_l(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ loc+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrcasecmp_l(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ystrcasestr(tls *TLS, h uintptr, n uintptr) (r uintptr) -TEXT ·Ystrcasestr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ h+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrcasestr(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrcat(tls *TLS, dest uintptr, src uintptr) (r uintptr) -TEXT ·Ystrcat(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrcat(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrchr(tls *TLS, s uintptr, c int32) (r1 uintptr) -TEXT ·Ystrchr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xstrchr(SB) - MOVQ 24(SP), AX - MOVQ AX, r1+24(FP) - RET - -// func Ystrchrnul(tls *TLS, s uintptr, c int32) (r uintptr) -TEXT ·Ystrchrnul(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xstrchrnul(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrcmp(tls *TLS, l uintptr, r uintptr) (r1 int32) -TEXT ·Ystrcmp(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrcmp(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ystrcoll(tls *TLS, l uintptr, r uintptr) (r1 int32) -TEXT ·Ystrcoll(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrcoll(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ystrcoll_l(tls *TLS, l uintptr, r uintptr, loc Tlocale_t) (r1 int32) -TEXT ·Ystrcoll_l(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ loc+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrcoll_l(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ystrcpy(tls *TLS, dest uintptr, src uintptr) (r uintptr) -TEXT ·Ystrcpy(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrcpy(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrcspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) -TEXT ·Ystrcspn(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ c+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrcspn(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrdup(tls *TLS, s uintptr) (r uintptr) -TEXT ·Ystrdup(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xstrdup(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ystrerror(tls *TLS, e int32) (r uintptr) -TEXT ·Ystrerror(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL e+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xstrerror(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ystrerror_l(tls *TLS, e int32, loc Tlocale_t) (r uintptr) -TEXT ·Ystrerror_l(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL e+8(FP), AX - MOVL AX, 8(SP) - MOVQ loc+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrerror_l(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrerror_r(tls *TLS, err int32, buf uintptr, buflen Tsize_t) (r int32) -TEXT ·Ystrerror_r(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL err+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ buflen+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrerror_r(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ystrfmon(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r Tssize_t) -TEXT ·Ystrfmon(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ fmt+24(FP), AX - MOVQ AX, 24(SP) - MOVQ va+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xstrfmon(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ystrfmon_l(tls *TLS, s uintptr, n Tsize_t, loc Tlocale_t, fmt uintptr, va uintptr) (r Tssize_t) -TEXT ·Ystrfmon_l(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ loc+24(FP), AX - MOVQ AX, 24(SP) - MOVQ fmt+32(FP), AX - MOVQ AX, 32(SP) - MOVQ va+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xstrfmon_l(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ystrftime(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) -TEXT ·Ystrftime(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - MOVQ tm+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xstrftime(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ystrftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) -TEXT ·Ystrftime_l(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - MOVQ tm+32(FP), AX - MOVQ AX, 32(SP) - MOVQ loc+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xstrftime_l(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ystrlcat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) -TEXT ·Ystrlcat(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrlcat(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrlcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r Tsize_t) -TEXT ·Ystrlcpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrlcpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrlen(tls *TLS, s uintptr) (r Tsize_t) -TEXT ·Ystrlen(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xstrlen(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ystrncasecmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) -TEXT ·Ystrncasecmp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ _l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ _r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrncasecmp(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ystrncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, loc Tlocale_t) (r1 int32) -TEXT ·Ystrncasecmp_l(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ loc+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xstrncasecmp_l(SB) - MOVL 40(SP), AX - MOVL AX, r1+40(FP) - RET - -// func Ystrncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ystrncat(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrncat(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrncmp(tls *TLS, _l uintptr, _r uintptr, n Tsize_t) (r1 int32) -TEXT ·Ystrncmp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ _l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ _r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrncmp(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ystrncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ystrncpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrncpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrndup(tls *TLS, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ystrndup(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrndup(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) -TEXT ·Ystrnlen(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrnlen(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrpbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) -TEXT ·Ystrpbrk(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrpbrk(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrptime(tls *TLS, s uintptr, f uintptr, tm uintptr) (r uintptr) -TEXT ·Ystrptime(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - MOVQ tm+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrptime(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrrchr(tls *TLS, s uintptr, c int32) (r uintptr) -TEXT ·Ystrrchr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xstrrchr(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrsep(tls *TLS, str uintptr, sep uintptr) (r uintptr) -TEXT ·Ystrsep(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ str+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sep+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrsep(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrsignal(tls *TLS, signum int32) (r uintptr) -TEXT ·Ystrsignal(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL signum+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xstrsignal(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ystrspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) -TEXT ·Ystrspn(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ c+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrspn(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrstr(tls *TLS, h uintptr, n uintptr) (r uintptr) -TEXT ·Ystrstr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ h+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrstr(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrtod(tls *TLS, s uintptr, p uintptr) (r float64) -TEXT ·Ystrtod(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrtod(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrtod_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) -TEXT ·Ystrtod_l(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVQ l+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrtod_l(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrtof(tls *TLS, s uintptr, p uintptr) (r float32) -TEXT ·Ystrtof(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrtof(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ystrtof_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float32) -TEXT ·Ystrtof_l(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVQ l+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrtof_l(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ystrtoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) -TEXT ·Ystrtoimax(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xstrtoimax(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrtok(tls *TLS, s uintptr, sep uintptr) (r uintptr) -TEXT ·Ystrtok(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sep+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrtok(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrtok_r(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) -TEXT ·Ystrtok_r(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sep+16(FP), AX - MOVQ AX, 16(SP) - MOVQ p+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrtok_r(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrtol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) -TEXT ·Ystrtol(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xstrtol(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrtold(tls *TLS, s uintptr, p uintptr) (r float64) -TEXT ·Ystrtold(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrtold(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ystrtold_l(tls *TLS, s uintptr, p uintptr, l Tlocale_t) (r float64) -TEXT ·Ystrtold_l(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVQ l+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrtold_l(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrtoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) -TEXT ·Ystrtoll(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xstrtoll(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrtoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) -TEXT ·Ystrtoul(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xstrtoul(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrtoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) -TEXT ·Ystrtoull(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xstrtoull(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrtoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) -TEXT ·Ystrtoumax(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xstrtoumax(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrverscmp(tls *TLS, l0 uintptr, r0 uintptr) (r1 int32) -TEXT ·Ystrverscmp(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l0+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r0+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xstrverscmp(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ystrxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) -TEXT ·Ystrxfrm(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xstrxfrm(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ystrxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) -TEXT ·Ystrxfrm_l(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ loc+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xstrxfrm_l(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yswab(tls *TLS, _src uintptr, _dest uintptr, n Tssize_t) -TEXT ·Yswab(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ _src+8(FP), AX - MOVQ AX, 8(SP) - MOVQ _dest+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xswab(SB) - RET - -// func Yswapoff(tls *TLS, path uintptr) (r int32) -TEXT ·Yswapoff(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xswapoff(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yswapon(tls *TLS, path uintptr, flags int32) (r int32) -TEXT ·Yswapon(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xswapon(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, va uintptr) (r int32) -TEXT ·Yswprintf(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ fmt+24(FP), AX - MOVQ AX, 24(SP) - MOVQ va+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xswprintf(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yswscanf(tls *TLS, s uintptr, fmt uintptr, va uintptr) (r int32) -TEXT ·Yswscanf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xswscanf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ysymlink(tls *TLS, existing uintptr, new1 uintptr) (r int32) -TEXT ·Ysymlink(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ existing+8(FP), AX - MOVQ AX, 8(SP) - MOVQ new1+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsymlink(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ysymlinkat(tls *TLS, existing uintptr, fd int32, new1 uintptr) (r int32) -TEXT ·Ysymlinkat(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ existing+8(FP), AX - MOVQ AX, 8(SP) - MOVL fd+16(FP), AX - MOVL AX, 16(SP) - MOVQ new1+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsymlinkat(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ysync(tls *TLS) -TEXT ·Ysync(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xsync(SB) - RET - -// func Ysync_file_range(tls *TLS, fd int32, pos Toff_t, len1 Toff_t, flags uint32) (r int32) -TEXT ·Ysync_file_range(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ pos+16(FP), AX - MOVQ AX, 16(SP) - MOVQ len1+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xsync_file_range(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ysyncfs(tls *TLS, fd int32) (r int32) -TEXT ·Ysyncfs(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsyncfs(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysyscall(tls *TLS, n int64, va uintptr) (r int64) -TEXT ·Ysyscall(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ n+8(FP), AX - MOVQ AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xsyscall(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ysysconf(tls *TLS, name int32) (r int64) -TEXT ·Ysysconf(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL name+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xsysconf(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ysysctlbyname(t *TLS, name, oldp, oldlenp, newp uintptr, newlen Tsize_t) int32 -TEXT ·Ysysctlbyname(SB),$56-52 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - MOVQ oldp+16(FP), AX - MOVQ AX, 16(SP) - MOVQ oldlenp+24(FP), AX - MOVQ AX, 24(SP) - MOVQ newp+32(FP), AX - MOVQ AX, 32(SP) - MOVQ newlen+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xsysctlbyname(SB) - MOVL 48(SP), AX - MOVL AX, ret+48(FP) - RET - -// func Ysysinfo(tls *TLS, info uintptr) (r int32) -TEXT ·Ysysinfo(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ info+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsysinfo(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ysyslog(tls *TLS, priority int32, message uintptr, va uintptr) -TEXT ·Ysyslog(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL priority+8(FP), AX - MOVL AX, 8(SP) - MOVQ message+16(FP), AX - MOVQ AX, 16(SP) - MOVQ va+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xsyslog(SB) - RET - -// func Ysystem(t *TLS, command uintptr) int32 -TEXT ·Ysystem(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ command+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xsystem(SB) - MOVL 16(SP), AX - MOVL AX, ret+16(FP) - RET - -// func Ytan(tls *TLS, x3 float64) (r float64) -TEXT ·Ytan(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtan(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytanf(tls *TLS, x3 float32) (r float32) -TEXT ·Ytanf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtanf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytanh(tls *TLS, x3 float64) (r float64) -TEXT ·Ytanh(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtanh(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytanhf(tls *TLS, x3 float32) (r float32) -TEXT ·Ytanhf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtanhf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytanhl(tls *TLS, x float64) (r float64) -TEXT ·Ytanhl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtanhl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytanl(tls *TLS, x float64) (r float64) -TEXT ·Ytanl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtanl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytcdrain(tls *TLS, fd int32) (r int32) -TEXT ·Ytcdrain(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtcdrain(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytcflow(tls *TLS, fd int32, action int32) (r int32) -TEXT ·Ytcflow(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL action+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xtcflow(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytcflush(tls *TLS, fd int32, queue int32) (r int32) -TEXT ·Ytcflush(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL queue+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xtcflush(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytcgetattr(tls *TLS, fd int32, tio uintptr) (r int32) -TEXT ·Ytcgetattr(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ tio+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtcgetattr(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytcgetpgrp(tls *TLS, fd int32) (r Tpid_t) -TEXT ·Ytcgetpgrp(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtcgetpgrp(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytcgetsid(tls *TLS, fd int32) (r Tpid_t) -TEXT ·Ytcgetsid(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtcgetsid(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytcgetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) -TEXT ·Ytcgetwinsize(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ wsz+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtcgetwinsize(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytcsendbreak(tls *TLS, fd int32, dur int32) (r int32) -TEXT ·Ytcsendbreak(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL dur+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xtcsendbreak(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytcsetattr(tls *TLS, fd int32, act int32, tio uintptr) (r int32) -TEXT ·Ytcsetattr(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL act+12(FP), AX - MOVL AX, 12(SP) - MOVQ tio+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtcsetattr(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytcsetpgrp(tls *TLS, fd int32, pgrp Tpid_t) (r int32) -TEXT ·Ytcsetpgrp(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL pgrp+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xtcsetpgrp(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytcsetwinsize(tls *TLS, fd int32, wsz uintptr) (r int32) -TEXT ·Ytcsetwinsize(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ wsz+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtcsetwinsize(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) -TEXT ·Ytdelete(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - MOVQ rootp+16(FP), AX - MOVQ AX, 16(SP) - MOVQ cmp+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xtdelete(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ytdestroy(tls *TLS, root uintptr, freekey uintptr) -TEXT ·Ytdestroy(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ root+8(FP), AX - MOVQ AX, 8(SP) - MOVQ freekey+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtdestroy(SB) - RET - -// func Ytee(tls *TLS, src int32, dest int32, len1 Tsize_t, flags uint32) (r Tssize_t) -TEXT ·Ytee(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL src+8(FP), AX - MOVL AX, 8(SP) - MOVL dest+12(FP), AX - MOVL AX, 12(SP) - MOVQ len1+16(FP), AX - MOVQ AX, 16(SP) - MOVL flags+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xtee(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ytelldir(tls *TLS, dir uintptr) (r int64) -TEXT ·Ytelldir(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dir+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtelldir(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytempnam(tls *TLS, dir uintptr, pfx uintptr) (r1 uintptr) -TEXT ·Ytempnam(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dir+8(FP), AX - MOVQ AX, 8(SP) - MOVQ pfx+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtempnam(SB) - MOVQ 24(SP), AX - MOVQ AX, r1+24(FP) - RET - -// func Ytextdomain(tls *TLS, domainname uintptr) (r uintptr) -TEXT ·Ytextdomain(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ domainname+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtextdomain(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) -TEXT ·Ytfind(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - MOVQ rootp+16(FP), AX - MOVQ AX, 16(SP) - MOVQ cmp+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xtfind(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ytgamma(tls *TLS, x3 float64) (r1 float64) -TEXT ·Ytgamma(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtgamma(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Ytgammaf(tls *TLS, x float32) (r float32) -TEXT ·Ytgammaf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtgammaf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytgammal(tls *TLS, x float64) (r float64) -TEXT ·Ytgammal(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtgammal(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytime(tls *TLS, t uintptr) (r Ttime_t) -TEXT ·Ytime(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtime(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytimegm(tls *TLS, tm uintptr) (r Ttime_t) -TEXT ·Ytimegm(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tm+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtimegm(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytimer_delete(tls *TLS, t Ttimer_t) (r int32) -TEXT ·Ytimer_delete(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtimer_delete(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytimer_getoverrun(tls *TLS, t Ttimer_t) (r int32) -TEXT ·Ytimer_getoverrun(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtimer_getoverrun(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytimer_gettime(tls *TLS, t Ttimer_t, val uintptr) (r int32) -TEXT ·Ytimer_gettime(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - MOVQ val+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtimer_gettime(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytimer_settime(tls *TLS, t Ttimer_t, flags int32, val uintptr, old uintptr) (r int32) -TEXT ·Ytimer_settime(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ t+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - MOVQ val+24(FP), AX - MOVQ AX, 24(SP) - MOVQ old+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xtimer_settime(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Ytimerfd_create(tls *TLS, clockid int32, flags int32) (r int32) -TEXT ·Ytimerfd_create(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL clockid+8(FP), AX - MOVL AX, 8(SP) - MOVL flags+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xtimerfd_create(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytimerfd_gettime(tls *TLS, fd int32, cur uintptr) (r int32) -TEXT ·Ytimerfd_gettime(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ cur+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtimerfd_gettime(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytimerfd_settime(tls *TLS, fd int32, flags int32, new1 uintptr, old uintptr) (r int32) -TEXT ·Ytimerfd_settime(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVL flags+12(FP), AX - MOVL AX, 12(SP) - MOVQ new1+16(FP), AX - MOVQ AX, 16(SP) - MOVQ old+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xtimerfd_settime(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ytimes(tls *TLS, tms uintptr) (r Tclock_t) -TEXT ·Ytimes(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ tms+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtimes(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytimespec_get(tls *TLS, ts uintptr, base int32) (r int32) -TEXT ·Ytimespec_get(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ ts+8(FP), AX - MOVQ AX, 8(SP) - MOVL base+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xtimespec_get(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytmpfile(tls *TLS) (r uintptr) -TEXT ·Ytmpfile(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xtmpfile(SB) - MOVQ 8(SP), AX - MOVQ AX, r+8(FP) - RET - -// func Ytmpnam(tls *TLS, buf uintptr) (r1 uintptr) -TEXT ·Ytmpnam(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ buf+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtmpnam(SB) - MOVQ 16(SP), AX - MOVQ AX, r1+16(FP) - RET - -// func Ytoascii(tls *TLS, c int32) (r int32) -TEXT ·Ytoascii(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtoascii(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytolower(tls *TLS, c int32) (r int32) -TEXT ·Ytolower(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtolower(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytolower_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Ytolower_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtolower_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytoupper(tls *TLS, c int32) (r int32) -TEXT ·Ytoupper(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtoupper(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytoupper_l(tls *TLS, c int32, l Tlocale_t) (r int32) -TEXT ·Ytoupper_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtoupper_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytowctrans(tls *TLS, wc Twint_t, trans Twctrans_t) (r Twint_t) -TEXT ·Ytowctrans(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - MOVQ trans+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtowctrans(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytowctrans_l(tls *TLS, c Twint_t, t Twctrans_t, l Tlocale_t) (r Twint_t) -TEXT ·Ytowctrans_l(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ t+16(FP), AX - MOVQ AX, 16(SP) - MOVQ l+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xtowctrans_l(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ytowlower(tls *TLS, wc Twint_t) (r Twint_t) -TEXT ·Ytowlower(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtowlower(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytowlower_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) -TEXT ·Ytowlower_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtowlower_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytowupper(tls *TLS, wc Twint_t) (r Twint_t) -TEXT ·Ytowupper(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtowupper(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytowupper_l(tls *TLS, c Twint_t, l Tlocale_t) (r Twint_t) -TEXT ·Ytowupper_l(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtowupper_l(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytrunc(tls *TLS, x3 float64) (r float64) -TEXT ·Ytrunc(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x3+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtrunc(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytruncate(tls *TLS, path uintptr, length Toff_t) (r int32) -TEXT ·Ytruncate(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ length+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtruncate(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ytruncf(tls *TLS, x3 float32) (r float32) -TEXT ·Ytruncf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x3+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xtruncf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ytruncl(tls *TLS, x float64) (r float64) -TEXT ·Ytruncl(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xtruncl(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ytsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) -TEXT ·Ytsearch(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ key+8(FP), AX - MOVQ AX, 8(SP) - MOVQ rootp+16(FP), AX - MOVQ AX, 16(SP) - MOVQ cmp+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xtsearch(SB) - MOVQ 32(SP), AX - MOVQ AX, r1+32(FP) - RET - -// func Yttyname(tls *TLS, fd int32) (r uintptr) -TEXT ·Yttyname(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xttyname(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yttyname_r(tls *TLS, fd int32, name uintptr, size Tsize_t) (r int32) -TEXT ·Yttyname_r(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ name+16(FP), AX - MOVQ AX, 16(SP) - MOVQ size+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xttyname_r(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ytwalk(tls *TLS, root uintptr, action uintptr) -TEXT ·Ytwalk(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ root+8(FP), AX - MOVQ AX, 8(SP) - MOVQ action+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xtwalk(SB) - RET - -// func Ytzset(tls *TLS) -TEXT ·Ytzset(SB),$8-8 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xtzset(SB) - RET - -// func Yualarm(tls *TLS, value uint32, interval uint32) (r uint32) -TEXT ·Yualarm(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL value+8(FP), AX - MOVL AX, 8(SP) - MOVL interval+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xualarm(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yulckpwdf(tls *TLS) (r int32) -TEXT ·Yulckpwdf(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xulckpwdf(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yulimit(tls *TLS, cmd int32, va uintptr) (r int64) -TEXT ·Yulimit(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL cmd+8(FP), AX - MOVL AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xulimit(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yumask(tls *TLS, mode Tmode_t) (r Tmode_t) -TEXT ·Yumask(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL mode+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xumask(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yumount(tls *TLS, special uintptr) (r int32) -TEXT ·Yumount(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ special+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xumount(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yumount2(tls *TLS, special uintptr, flags int32) (r int32) -TEXT ·Yumount2(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ special+8(FP), AX - MOVQ AX, 8(SP) - MOVL flags+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xumount2(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yuname(tls *TLS, uts uintptr) (r int32) -TEXT ·Yuname(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ uts+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xuname(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yungetc(tls *TLS, c int32, f uintptr) (r int32) -TEXT ·Yungetc(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xungetc(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yungetwc(tls *TLS, c Twint_t, f uintptr) (r Twint_t) -TEXT ·Yungetwc(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - MOVQ f+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xungetwc(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yunlink(tls *TLS, path uintptr) (r int32) -TEXT ·Yunlink(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xunlink(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yunlinkat(tls *TLS, fd int32, path uintptr, flag int32) (r int32) -TEXT ·Yunlinkat(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVL flag+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xunlinkat(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yunlockpt(tls *TLS, fd int32) (r int32) -TEXT ·Yunlockpt(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xunlockpt(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yunsetenv(tls *TLS, name uintptr) (r int32) -TEXT ·Yunsetenv(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ name+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xunsetenv(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yunshare(tls *TLS, flags int32) (r int32) -TEXT ·Yunshare(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL flags+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xunshare(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yupdwtmp(tls *TLS, f uintptr, u uintptr) -TEXT ·Yupdwtmp(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ u+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xupdwtmp(SB) - RET - -// func Yupdwtmpx(tls *TLS, f uintptr, u uintptr) -TEXT ·Yupdwtmpx(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ u+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xupdwtmpx(SB) - RET - -// func Yuselocale(tls *TLS, new1 Tlocale_t) (r Tlocale_t) -TEXT ·Yuselocale(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ new1+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xuselocale(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yusleep(tls *TLS, useconds uint32) (r int32) -TEXT ·Yusleep(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL useconds+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xusleep(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yutime(tls *TLS, path uintptr, times uintptr) (r int32) -TEXT ·Yutime(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ times+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xutime(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yutimensat(tls *TLS, fd int32, path uintptr, times uintptr, flags int32) (r1 int32) -TEXT ·Yutimensat(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ path+16(FP), AX - MOVQ AX, 16(SP) - MOVQ times+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xutimensat(SB) - MOVL 40(SP), AX - MOVL AX, r1+40(FP) - RET - -// func Yutimes(tls *TLS, path uintptr, times uintptr) (r int32) -TEXT ·Yutimes(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ path+8(FP), AX - MOVQ AX, 8(SP) - MOVQ times+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xutimes(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yuuid_copy(t *TLS, dst, src uintptr) -TEXT ·Yuuid_copy(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dst+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xuuid_copy(SB) - RET - -// func Yuuid_generate_random(t *TLS, out uintptr) -TEXT ·Yuuid_generate_random(SB),$16-16 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ out+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xuuid_generate_random(SB) - RET - -// func Yuuid_parse(t *TLS, in uintptr, uu uintptr) int32 -TEXT ·Yuuid_parse(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ in+8(FP), AX - MOVQ AX, 8(SP) - MOVQ uu+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xuuid_parse(SB) - MOVL 24(SP), AX - MOVL AX, ret+24(FP) - RET - -// func Yuuid_unparse(t *TLS, uu, out uintptr) -TEXT ·Yuuid_unparse(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ t+0(FP), AX - MOVQ AX, 0(SP) - MOVQ uu+8(FP), AX - MOVQ AX, 8(SP) - MOVQ out+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xuuid_unparse(SB) - RET - -// func Yvasprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvasprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvasprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yvdprintf(tls *TLS, fd int32, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvdprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvdprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yverr(tls *TLS, status int32, fmt uintptr, ap Tva_list) -TEXT ·Yverr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL status+8(FP), AX - MOVL AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xverr(SB) - RET - -// func Yverrx(tls *TLS, status int32, fmt uintptr, ap Tva_list) -TEXT ·Yverrx(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL status+8(FP), AX - MOVL AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xverrx(SB) - RET - -// func Yversionsort(tls *TLS, a uintptr, b uintptr) (r int32) -TEXT ·Yversionsort(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ a+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xversionsort(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yvfork(tls *TLS) (r Tpid_t) -TEXT ·Yvfork(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xvfork(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yvfprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvfprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvfprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yvfscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvfscanf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvfscanf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yvfwprintf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvfwprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvfwprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yvfwscanf(tls *TLS, f uintptr, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvfwscanf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ f+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvfwscanf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yvhangup(tls *TLS) (r int32) -TEXT ·Yvhangup(SB),$16-12 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - CALL ·Xvhangup(SB) - MOVL 8(SP), AX - MOVL AX, r+8(FP) - RET - -// func Yvmsplice(tls *TLS, fd int32, iov uintptr, cnt Tsize_t, flags uint32) (r Tssize_t) -TEXT ·Yvmsplice(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ iov+16(FP), AX - MOVQ AX, 16(SP) - MOVQ cnt+24(FP), AX - MOVQ AX, 24(SP) - MOVL flags+32(FP), AX - MOVL AX, 32(SP) - CALL ·Xvmsplice(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Yvprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvprintf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ap+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xvprintf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yvscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvscanf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ap+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xvscanf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yvsnprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvsnprintf(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ fmt+24(FP), AX - MOVQ AX, 24(SP) - MOVQ ap+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xvsnprintf(SB) - MOVL 40(SP), AX - MOVL AX, r+40(FP) - RET - -// func Yvsprintf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvsprintf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvsprintf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yvsscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvsscanf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvsscanf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yvswprintf(tls *TLS, s uintptr, n Tsize_t, fmt uintptr, ap Tva_list) (r1 int32) -TEXT ·Yvswprintf(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ fmt+24(FP), AX - MOVQ AX, 24(SP) - MOVQ ap+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xvswprintf(SB) - MOVL 40(SP), AX - MOVL AX, r1+40(FP) - RET - -// func Yvswscanf(tls *TLS, s uintptr, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvswscanf(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ fmt+16(FP), AX - MOVQ AX, 16(SP) - MOVQ ap+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xvswscanf(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Yvwarn(tls *TLS, fmt uintptr, ap Tva_list) -TEXT ·Yvwarn(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ap+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xvwarn(SB) - RET - -// func Yvwarnx(tls *TLS, fmt uintptr, ap Tva_list) -TEXT ·Yvwarnx(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ap+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xvwarnx(SB) - RET - -// func Yvwprintf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvwprintf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ap+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xvwprintf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yvwscanf(tls *TLS, fmt uintptr, ap Tva_list) (r int32) -TEXT ·Yvwscanf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ap+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xvwscanf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ywait(tls *TLS, status uintptr) (r Tpid_t) -TEXT ·Ywait(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ status+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xwait(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ywait3(tls *TLS, status uintptr, options int32, usage uintptr) (r Tpid_t) -TEXT ·Ywait3(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ status+8(FP), AX - MOVQ AX, 8(SP) - MOVL options+16(FP), AX - MOVL AX, 16(SP) - MOVQ usage+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwait3(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ywait4(tls *TLS, pid Tpid_t, status uintptr, options int32, ru uintptr) (r1 Tpid_t) -TEXT ·Ywait4(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVQ status+16(FP), AX - MOVQ AX, 16(SP) - MOVL options+24(FP), AX - MOVL AX, 24(SP) - MOVQ ru+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xwait4(SB) - MOVL 40(SP), AX - MOVL AX, r1+40(FP) - RET - -// func Ywaitid(tls *TLS, type1 Tidtype_t, id Tid_t, info uintptr, options int32) (r int32) -TEXT ·Ywaitid(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL type1+8(FP), AX - MOVL AX, 8(SP) - MOVL id+12(FP), AX - MOVL AX, 12(SP) - MOVQ info+16(FP), AX - MOVQ AX, 16(SP) - MOVL options+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwaitid(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ywaitpid(tls *TLS, pid Tpid_t, status uintptr, options int32) (r Tpid_t) -TEXT ·Ywaitpid(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL pid+8(FP), AX - MOVL AX, 8(SP) - MOVQ status+16(FP), AX - MOVQ AX, 16(SP) - MOVL options+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwaitpid(SB) - MOVL 32(SP), AX - MOVL AX, r+32(FP) - RET - -// func Ywarn(tls *TLS, fmt uintptr, va uintptr) -TEXT ·Ywarn(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwarn(SB) - RET - -// func Ywarnx(tls *TLS, fmt uintptr, va uintptr) -TEXT ·Ywarnx(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwarnx(SB) - RET - -// func Ywcpcpy(tls *TLS, d uintptr, s uintptr) (r uintptr) -TEXT ·Ywcpcpy(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcpcpy(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcpncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ywcpncpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcpncpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcrtomb(tls *TLS, s uintptr, wc Twchar_t, st uintptr) (r Tsize_t) -TEXT ·Ywcrtomb(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL wc+16(FP), AX - MOVL AX, 16(SP) - MOVQ st+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcrtomb(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcscasecmp(tls *TLS, l uintptr, r uintptr) (r1 int32) -TEXT ·Ywcscasecmp(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcscasecmp(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ywcscasecmp_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) -TEXT ·Ywcscasecmp_l(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ locale+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcscasecmp_l(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ywcscat(tls *TLS, dest uintptr, src uintptr) (r uintptr) -TEXT ·Ywcscat(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcscat(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcschr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) -TEXT ·Ywcschr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xwcschr(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcscmp(tls *TLS, l uintptr, r uintptr) (r1 int32) -TEXT ·Ywcscmp(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcscmp(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ywcscoll(tls *TLS, l uintptr, r uintptr) (r1 int32) -TEXT ·Ywcscoll(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcscoll(SB) - MOVL 24(SP), AX - MOVL AX, r1+24(FP) - RET - -// func Ywcscoll_l(tls *TLS, l uintptr, r uintptr, locale Tlocale_t) (r1 int32) -TEXT ·Ywcscoll_l(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ locale+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcscoll_l(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ywcscpy(tls *TLS, d uintptr, s uintptr) (r uintptr) -TEXT ·Ywcscpy(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcscpy(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcscspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) -TEXT ·Ywcscspn(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ c+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcscspn(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcsdup(tls *TLS, s uintptr) (r uintptr) -TEXT ·Ywcsdup(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xwcsdup(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ywcsftime(tls *TLS, wcs uintptr, n Tsize_t, f uintptr, tm uintptr) (r Tsize_t) -TEXT ·Ywcsftime(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ wcs+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - MOVQ tm+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xwcsftime(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ywcsftime_l(tls *TLS, s uintptr, n Tsize_t, f uintptr, tm uintptr, loc Tlocale_t) (r Tsize_t) -TEXT ·Ywcsftime_l(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - MOVQ f+24(FP), AX - MOVQ AX, 24(SP) - MOVQ tm+32(FP), AX - MOVQ AX, 32(SP) - MOVQ loc+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xwcsftime_l(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ywcslen(tls *TLS, s uintptr) (r Tsize_t) -TEXT ·Ywcslen(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xwcslen(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ywcsncasecmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) -TEXT ·Ywcsncasecmp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcsncasecmp(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ywcsncasecmp_l(tls *TLS, l uintptr, r uintptr, n Tsize_t, locale Tlocale_t) (r1 int32) -TEXT ·Ywcsncasecmp_l(SB),$48-44 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ locale+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xwcsncasecmp_l(SB) - MOVL 40(SP), AX - MOVL AX, r1+40(FP) - RET - -// func Ywcsncat(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ywcsncat(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcsncat(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcsncmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) -TEXT ·Ywcsncmp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcsncmp(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ywcsncpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ywcsncpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcsncpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcsnlen(tls *TLS, s uintptr, n Tsize_t) (r Tsize_t) -TEXT ·Ywcsnlen(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcsnlen(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcsnrtombs(tls *TLS, dst uintptr, wcs uintptr, wn Tsize_t, n Tsize_t, st uintptr) (r Tsize_t) -TEXT ·Ywcsnrtombs(SB),$56-56 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dst+8(FP), AX - MOVQ AX, 8(SP) - MOVQ wcs+16(FP), AX - MOVQ AX, 16(SP) - MOVQ wn+24(FP), AX - MOVQ AX, 24(SP) - MOVQ n+32(FP), AX - MOVQ AX, 32(SP) - MOVQ st+40(FP), AX - MOVQ AX, 40(SP) - CALL ·Xwcsnrtombs(SB) - MOVQ 48(SP), AX - MOVQ AX, r+48(FP) - RET - -// func Ywcspbrk(tls *TLS, s uintptr, b uintptr) (r uintptr) -TEXT ·Ywcspbrk(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ b+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcspbrk(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcsrchr(tls *TLS, s uintptr, c Twchar_t) (r uintptr) -TEXT ·Ywcsrchr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xwcsrchr(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcsrtombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t, st uintptr) (r Tsize_t) -TEXT ·Ywcsrtombs(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ws+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ st+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xwcsrtombs(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ywcsspn(tls *TLS, s uintptr, c uintptr) (r Tsize_t) -TEXT ·Ywcsspn(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ c+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcsspn(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcsstr(tls *TLS, h uintptr, n uintptr) (r uintptr) -TEXT ·Ywcsstr(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ h+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcsstr(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcstod(tls *TLS, s uintptr, p uintptr) (r float64) -TEXT ·Ywcstod(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcstod(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcstof(tls *TLS, s uintptr, p uintptr) (r float32) -TEXT ·Ywcstof(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcstof(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ywcstoimax(tls *TLS, s uintptr, p uintptr, base int32) (r Tintmax_t) -TEXT ·Ywcstoimax(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwcstoimax(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcstok(tls *TLS, s uintptr, sep uintptr, p uintptr) (r uintptr) -TEXT ·Ywcstok(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ sep+16(FP), AX - MOVQ AX, 16(SP) - MOVQ p+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcstok(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcstol(tls *TLS, s uintptr, p uintptr, base int32) (r int64) -TEXT ·Ywcstol(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwcstol(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcstold(tls *TLS, s uintptr, p uintptr) (r float64) -TEXT ·Ywcstold(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcstold(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcstoll(tls *TLS, s uintptr, p uintptr, base int32) (r int64) -TEXT ·Ywcstoll(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwcstoll(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcstombs(tls *TLS, s uintptr, ws uintptr, n Tsize_t) (r Tsize_t) -TEXT ·Ywcstombs(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ ws+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcstombs(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcstoul(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) -TEXT ·Ywcstoul(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwcstoul(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcstoull(tls *TLS, s uintptr, p uintptr, base int32) (r uint64) -TEXT ·Ywcstoull(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwcstoull(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcstoumax(tls *TLS, s uintptr, p uintptr, base int32) (r Tuintmax_t) -TEXT ·Ywcstoumax(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ p+16(FP), AX - MOVQ AX, 16(SP) - MOVL base+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwcstoumax(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcswcs(tls *TLS, haystack uintptr, needle uintptr) (r uintptr) -TEXT ·Ywcswcs(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ haystack+8(FP), AX - MOVQ AX, 8(SP) - MOVQ needle+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcswcs(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcswidth(tls *TLS, wcs uintptr, n Tsize_t) (r int32) -TEXT ·Ywcswidth(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ wcs+8(FP), AX - MOVQ AX, 8(SP) - MOVQ n+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwcswidth(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ywcsxfrm(tls *TLS, dest uintptr, src uintptr, n Tsize_t) (r Tsize_t) -TEXT ·Ywcsxfrm(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwcsxfrm(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywcsxfrm_l(tls *TLS, dest uintptr, src uintptr, n Tsize_t, loc Tlocale_t) (r Tsize_t) -TEXT ·Ywcsxfrm_l(SB),$48-48 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ dest+8(FP), AX - MOVQ AX, 8(SP) - MOVQ src+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - MOVQ loc+32(FP), AX - MOVQ AX, 32(SP) - CALL ·Xwcsxfrm_l(SB) - MOVQ 40(SP), AX - MOVQ AX, r+40(FP) - RET - -// func Ywctob(tls *TLS, c Twint_t) (r int32) -TEXT ·Ywctob(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL c+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xwctob(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ywctomb(tls *TLS, s uintptr, wc Twchar_t) (r int32) -TEXT ·Ywctomb(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL wc+16(FP), AX - MOVL AX, 16(SP) - CALL ·Xwctomb(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ywctrans(tls *TLS, class uintptr) (r Twctrans_t) -TEXT ·Ywctrans(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ class+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xwctrans(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ywctrans_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctrans_t) -TEXT ·Ywctrans_l(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwctrans_l(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywctype(tls *TLS, s uintptr) (r Twctype_t) -TEXT ·Ywctype(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xwctype(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Ywctype_l(tls *TLS, s uintptr, l Tlocale_t) (r Twctype_t) -TEXT ·Ywctype_l(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVQ l+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwctype_l(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Ywcwidth(tls *TLS, wc Twchar_t) (r int32) -TEXT ·Ywcwidth(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL wc+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xwcwidth(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Ywmemchr(tls *TLS, s uintptr, c Twchar_t, n Tsize_t) (r uintptr) -TEXT ·Ywmemchr(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ s+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwmemchr(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywmemcmp(tls *TLS, l uintptr, r uintptr, n Tsize_t) (r1 int32) -TEXT ·Ywmemcmp(SB),$40-36 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ l+8(FP), AX - MOVQ AX, 8(SP) - MOVQ r+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwmemcmp(SB) - MOVL 32(SP), AX - MOVL AX, r1+32(FP) - RET - -// func Ywmemcpy(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ywmemcpy(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwmemcpy(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywmemmove(tls *TLS, d uintptr, s uintptr, n Tsize_t) (r uintptr) -TEXT ·Ywmemmove(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVQ s+16(FP), AX - MOVQ AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwmemmove(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywmemset(tls *TLS, d uintptr, c Twchar_t, n Tsize_t) (r uintptr) -TEXT ·Ywmemset(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ d+8(FP), AX - MOVQ AX, 8(SP) - MOVL c+16(FP), AX - MOVL AX, 16(SP) - MOVQ n+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwmemset(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywprintf(tls *TLS, fmt uintptr, va uintptr) (r int32) -TEXT ·Ywprintf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwprintf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Ywrite(tls *TLS, fd int32, buf uintptr, count Tsize_t) (r Tssize_t) -TEXT ·Ywrite(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ buf+16(FP), AX - MOVQ AX, 16(SP) - MOVQ count+24(FP), AX - MOVQ AX, 24(SP) - CALL ·Xwrite(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywritev(tls *TLS, fd int32, iov uintptr, count int32) (r Tssize_t) -TEXT ·Ywritev(SB),$40-40 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL fd+8(FP), AX - MOVL AX, 8(SP) - MOVQ iov+16(FP), AX - MOVQ AX, 16(SP) - MOVL count+24(FP), AX - MOVL AX, 24(SP) - CALL ·Xwritev(SB) - MOVQ 32(SP), AX - MOVQ AX, r+32(FP) - RET - -// func Ywscanf(tls *TLS, fmt uintptr, va uintptr) (r int32) -TEXT ·Ywscanf(SB),$32-28 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ fmt+8(FP), AX - MOVQ AX, 8(SP) - MOVQ va+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xwscanf(SB) - MOVL 24(SP), AX - MOVL AX, r+24(FP) - RET - -// func Yy0(tls *TLS, x float64) (r float64) -TEXT ·Yy0(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xy0(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yy0f(tls *TLS, x float32) (r float32) -TEXT ·Yy0f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xy0f(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yy1(tls *TLS, x float64) (r float64) -TEXT ·Yy1(SB),$24-24 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVQ x+8(FP), AX - MOVQ AX, 8(SP) - CALL ·Xy1(SB) - MOVQ 16(SP), AX - MOVQ AX, r+16(FP) - RET - -// func Yy1f(tls *TLS, x float32) (r float32) -TEXT ·Yy1f(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL x+8(FP), AX - MOVL AX, 8(SP) - CALL ·Xy1f(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET - -// func Yyn(tls *TLS, n int32, x float64) (r float64) -TEXT ·Yyn(SB),$32-32 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - MOVQ x+16(FP), AX - MOVQ AX, 16(SP) - CALL ·Xyn(SB) - MOVQ 24(SP), AX - MOVQ AX, r+24(FP) - RET - -// func Yynf(tls *TLS, n int32, x float32) (r float32) -TEXT ·Yynf(SB),$24-20 - GO_ARGS - NO_LOCAL_POINTERS - MOVQ tls+0(FP), AX - MOVQ AX, 0(SP) - MOVL n+8(FP), AX - MOVL AX, 8(SP) - MOVL x+12(FP), AX - MOVL AX, 12(SP) - CALL ·Xynf(SB) - MOVL 16(SP), AX - MOVL AX, r+16(FP) - RET diff --git a/vendor/modernc.org/libc/ccgo_linux_386.go b/vendor/modernc.org/libc/ccgo_linux_386.go index d3ac8f649..91ec9c90e 100644 --- a/vendor/modernc.org/libc/ccgo_linux_386.go +++ b/vendor/modernc.org/libc/ccgo_linux_386.go @@ -25041,9 +25041,13 @@ func Xrewinddir(tls *TLS, dir uintptr) { ___unlock(tls, dir+20) } -func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { +type t__ccgo_fp__Xscandir_2 = func(*TLS, uintptr) int32 + +type t__ccgo_fp__Xscandir_3 = func(*TLS, uintptr, uintptr) int32 + +func Xscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v res=%v __ccgo_fp_sel=%v __ccgo_fp_cmp=%v, (%v:)", tls, path, res, __ccgo_fp_sel, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var cnt, len1, v2, v3 Tsize_t @@ -25065,7 +25069,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r if !(v1 != 0) { break } - if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + if __ccgo_fp_sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_sel})))(tls, de) != 0) { continue } if cnt >= len1 { @@ -25103,8 +25107,8 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r return -int32(1) } *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno - if cmp != 0 { - Xqsort(tls, names, cnt, uint32(4), cmp) + if __ccgo_fp_cmp != 0 { + Xqsort(tls, names, cnt, uint32(4), __ccgo_fp_cmp) } *(*uintptr)(unsafe.Pointer(res)) = names return Int32FromUint32(cnt) @@ -25844,9 +25848,11 @@ func X__funcs_on_quick_exit(tls *TLS) { } } -func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { +type t__ccgo_fp__Xat_quick_exit_0 = func(*TLS) + +func Xat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) { if __ccgo_strace { - trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + trc("tls=%v __ccgo_fp_func=%v, (%v:)", tls, __ccgo_fp_func, origin(2)) defer func() { trc("-> %v", r1) }() } var r, v1 int32 @@ -25858,7 +25864,7 @@ func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { } else { v1 = _count _count++ - _funcs[v1] = func1 + _funcs[v1] = __ccgo_fp_func } ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) return r @@ -28457,15 +28463,17 @@ type TFTW = struct { Flevel int32 } -func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { +type t__ccgo_fp__Xftw_1 = func(*TLS, uintptr, uintptr, int32) int32 + +func Xftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v, (%v:)", tls, path, __ccgo_fp_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)) + return Xnftw(tls, path, __ccgo_fp_fn, fd_limit, int32(FTW_PHYS)) } const STATX_ALL = 4095 @@ -31556,15 +31564,6 @@ func Xfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) { return X__syscall_ret(tls, Uint32FromInt32(X__syscall2(tls, int32(SYS_fremovexattr), fd, int32(name)))) } -type Tucontext_t2 = struct { - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - F__fpregs_mem [28]uint32 -} - func _dummy4(tls *TLS, msg uintptr, lm uintptr) (r uintptr) { return msg } @@ -114504,16 +114503,7 @@ func Xgethostid(tls *TLS) (r int32) { const optpos = 0 -type Tucontext_t3 = struct { - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - F__fpregs_mem [28]uint32 -} - -type t__ucontext1 = Tucontext_t3 +type t__ucontext1 = Tucontext_t1 func X__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) { if __ccgo_strace { @@ -115661,7 +115651,7 @@ type Thistory = struct { Fbase int32 } -func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { +func _do_nftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { bp := tls.Alloc(192) defer tls.Free(192) var d, de, v10 uintptr @@ -115767,7 +115757,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } } 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+176) + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+176) r = v7 } if v8 && v7 != 0 { @@ -115808,7 +115798,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*int8)(unsafe.Pointer(path + uintptr(j))) = int8('/') Xstrcpy(tls, path+uintptr(j)+uintptr(1), de+19) - v11 = _do_nftw(tls, path, fn, fd_limit-int32(1), flags, bp+144) + v11 = _do_nftw(tls, path, __ccgo_fp_fn, fd_limit-int32(1), flags, bp+144) r = v11 if v11 != 0 { Xclosedir(tls, d) @@ -115823,7 +115813,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*int8)(unsafe.Pointer(path + uintptr(l))) = 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+176) + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+176) r = v12 } if v13 && v12 != 0 { @@ -115832,9 +115822,11 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h return 0 } -func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { +type t__ccgo_fp__Xnftw_1 = func(*TLS, uintptr, uintptr, int32, uintptr) int32 + +func Xnftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, __ccgo_fp_fn, fd_limit, flags, origin(2)) defer func() { trc("-> %v", r1) }() } bp := tls.Alloc(4112) @@ -115854,7 +115846,7 @@ func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 } Xmemcpy(tls, bp+4, path, l+uint32(1)) _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) - r = _do_nftw(tls, bp+4, fn, fd_limit, flags, UintptrFromInt32(0)) + r = _do_nftw(tls, bp+4, __ccgo_fp_fn, fd_limit, flags, UintptrFromInt32(0)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return r } @@ -116631,8 +116623,6 @@ type Tsockaddr_storage = struct { F__ss_align uint32 } -type t__ucontext2 = Tucontext_t2 - var _lock2 [1]int32 var _log_ident [32]int8 var _log_opt int32 @@ -117070,15 +117060,6 @@ const SA = 194 const SB = 244 const bittab = 0 -type Tucontext_t4 = struct { - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - F__fpregs_mem [28]uint32 -} - func Xbtowc(tls *TLS, c int32) (r Twint_t) { if __ccgo_strace { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) @@ -118890,13 +118871,6 @@ const _ns_uop_delete = 0 const _ns_uop_add = 1 const _ns_uop_max = 2 -type Tns_tsig_key1 = struct { - Fname [1025]int8 - Falg [1025]int8 - Fdata uintptr - Flen1 int32 -} - type Tns_tsig_key = struct { Fname [1025]int8 Falg [1025]int8 @@ -118904,14 +118878,6 @@ type Tns_tsig_key = struct { 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 @@ -119560,9 +119526,11 @@ type Tresolvconf = struct { Ftimeout uint32 } -func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__dns_parse_2 = func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32 + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_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)) + trc("tls=%v r=%v rlen=%v __ccgo_fp_callback=%v ctx=%v, (%v:)", tls, r, rlen, __ccgo_fp_callback, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var ancount, len1, qdcount, v1, v2 int32 @@ -119608,7 +119576,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr if len1+int32(10) > int32(r+uintptr(rlen))-int32(p) { return -int32(1) } - if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { return -int32(1) } p += uintptr(int32(10) + len1) @@ -121822,19 +121790,6 @@ func Xherror(tls *TLS, msg uintptr) { Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+987, VaList(bp+8, v1, v2, Xhstrerror(tls, *(*int32)(unsafe.Pointer(X__h_errno_location(tls)))))) } -type Tcpu_set_t1 = struct { - F__bits [32]uint32 -} - -type Tucontext_t5 = struct { - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - F__fpregs_mem [28]uint32 -} - var _msgs1 = [84]int8{'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) { @@ -123645,7 +123600,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return v22 } -func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) { bp := tls.Alloc(8192) defer tls.Free(8192) var h uintptr @@ -123735,7 +123690,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, if Int32FromUint16((*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) + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cb})))(tls, ctx, h) if ret != 0 { return ret } @@ -123748,9 +123703,11 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, return r1 } -func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__rtnetlink_enumerate_2 = func(*TLS, uintptr, uintptr) int32 + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_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)) + trc("tls=%v link_af=%v addr_af=%v __ccgo_fp_cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, __ccgo_fp_cb, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var fd, r int32 @@ -123759,9 +123716,9 @@ func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, if fd < 0 { return -int32(1) } - r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, __ccgo_fp_cb, ctx) if !(r != 0) { - r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, __ccgo_fp_cb, ctx) } X__syscall1(tls, int32(SYS_close), fd) return r @@ -129099,7 +129056,7 @@ func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r return 0 } -func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, tail uintptr) (r1 int32) { bp := tls.Alloc(144) defer tls.Free(144) var de, dir, p, p2, v11, v2, v7, v8 uintptr @@ -129208,7 +129165,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } } 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) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { return int32(GLOB_ABORTED) } return 0 @@ -129245,7 +129202,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } 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 { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { return int32(GLOB_ABORTED) } return 0 @@ -129297,7 +129254,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } else { v11 = __ccgo_ts } - r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, __ccgo_fp_errfunc, tail) if r != 0 { Xclosedir(tls, dir) return r @@ -129308,7 +129265,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag *(*int8)(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) { + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 @@ -129420,9 +129377,11 @@ func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { return 0 } -func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { +type t__ccgo_fp__Xglob_2 = func(*TLS, uintptr, int32) int32 + +func Xglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_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)) + trc("tls=%v pat=%v flags=%v __ccgo_fp_errfunc=%v g=%v, (%v:)", tls, pat, flags, __ccgo_fp_errfunc, g, origin(2)) defer func() { trc("-> %v", r) }() } bp := tls.Alloc(4112) @@ -129448,8 +129407,8 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in } offs = v1 error1 = 0 - if !(errfunc != 0) { - errfunc = __ccgo_fp(_ignore_err) + if !(__ccgo_fp_errfunc != 0) { + __ccgo_fp_errfunc = __ccgo_fp(_ignore_err) } if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs @@ -129468,7 +129427,7 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in error1 = _expand_tilde(tls, bp+4108, bp+8, bp+4104) } if !(error1 != 0) { - error1 = _do_glob(tls, bp+8, *(*Tsize_t)(unsafe.Pointer(bp + 4104)), 0, *(*uintptr)(unsafe.Pointer(bp + 4108)), flags, errfunc, bp+4) + error1 = _do_glob(tls, bp+8, *(*Tsize_t)(unsafe.Pointer(bp + 4104)), 0, *(*uintptr)(unsafe.Pointer(bp + 4108)), flags, __ccgo_fp_errfunc, bp+4) } Xfree(tls, p) } @@ -134693,9 +134652,11 @@ func Xremque(tls *TLS, element uintptr) { } } -func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { +type t__ccgo_fp__Xlsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -134711,7 +134672,7 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -134723,9 +134684,11 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, 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) { +type t__ccgo_fp__Xlfind_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -134741,7 +134704,7 @@ func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, co if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -134760,9 +134723,11 @@ type Tnode1 = struct { Fh int32 } -func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtdelete_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var a [49]uintptr @@ -134786,7 +134751,7 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { return uintptr(0) } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134831,9 +134796,11 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { return parent } -func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { +type t__ccgo_fp__Xtdestroy_1 = func(*TLS, uintptr) + +func Xtdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) { if __ccgo_strace { - trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + trc("tls=%v root=%v __ccgo_fp_freekey=%v, (%v:)", tls, root, __ccgo_fp_freekey, origin(2)) } var r uintptr _ = r @@ -134841,17 +134808,19 @@ func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { if r == uintptr(0) { return } - Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 4)), freekey) - Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 4 + 1*4)), freekey) - if freekey != 0 { - (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 4)), __ccgo_fp_freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 4 + 1*4)), __ccgo_fp_freekey) + if __ccgo_fp_freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) } Xfree(tls, r) } -func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtfind_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var c int32 @@ -134865,7 +134834,7 @@ func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134953,9 +134922,11 @@ func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { return _rot(tls, p, n, BoolInt32(h0 < h1)) } -func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { +type t__ccgo_fp__Xtsearch_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r1) }() } var a [48]uintptr @@ -134975,7 +134946,7 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { return n } @@ -135011,26 +134982,28 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { return r } -func _walk(tls *TLS, r uintptr, action uintptr, d int32) { +func _walk(tls *TLS, r uintptr, __ccgo_fp_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, int32(_leaf), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_leaf), d) } else { - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_preorder), d) - _walk(tls, *(*uintptr)(unsafe.Pointer(r + 4)), action, d+int32(1)) - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_postorder), d) - _walk(tls, *(*uintptr)(unsafe.Pointer(r + 4 + 1*4)), action, d+int32(1)) - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_endorder), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_preorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 4)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_postorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 4 + 1*4)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_endorder), d) } } -func Xtwalk(tls *TLS, root uintptr, action uintptr) { +type t__ccgo_fp__Xtwalk_1 = func(*TLS, uintptr, int32, int32) + +func Xtwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) { if __ccgo_strace { - trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + trc("tls=%v root=%v __ccgo_fp_action=%v, (%v:)", tls, root, __ccgo_fp_action, origin(2)) } - _walk(tls, root, action, 0) + _walk(tls, root, __ccgo_fp_action, 0) } func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { @@ -135041,8 +135014,6 @@ func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { return X__syscall_ret(tls, Uint32FromInt32(___syscall_cp(tls, int32(SYS_poll), int32(fds), Int32FromUint32(n), timeout, 0, 0, 0))) } -type t__ucontext3 = Tucontext_t5 - func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r1 int32) { if __ccgo_strace { trc("tls=%v fds=%v n=%v to=%v mask=%v, (%v:)", tls, fds, n, to, mask, origin(2)) @@ -135102,8 +135073,6 @@ func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r1 int3 return X__syscall_ret(tls, Uint32FromInt32(___syscall_cp(tls, int32(SYS_ppoll), int32(fds), Int32FromUint32(n), int32(v5), int32(mask), int32(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) (r1 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)) @@ -135168,15 +135137,6 @@ func Xpselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts ui return X__syscall_ret(tls, Uint32FromInt32(___syscall_cp(tls, int32(SYS_pselect6), n, int32(rfds), int32(wfds), int32(efds), int32(v5), int32(bp+24)))) } -type Tucontext_t6 = struct { - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - F__fpregs_mem [28]uint32 -} - func Xselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, tv uintptr) (r1 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)) @@ -135623,15 +135583,6 @@ func Xsigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) { const SST_SIZE = 8 -type Tucontext_t7 = struct { - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - F__fpregs_mem [28]uint32 -} - 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)) @@ -144658,9 +144609,11 @@ func Xatoll(tls *TLS, s uintptr) (r int64) { return v5 } -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xbsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, base, nel, width, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var sign int32 @@ -144668,7 +144621,7 @@ func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, c _, _ = sign, try for nel > uint32(0) { try = base + uintptr(width*(nel/uint32(2))) - sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, try) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, try) if sign < 0 { nel /= uint32(2) } else { @@ -144938,7 +144891,7 @@ func _shr(tls *TLS, p uintptr, n int32) { *(*Tsize_t)(unsafe.Pointer(p + 1*4)) >>= Uint32FromInt32(n) } -func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { +func _sift(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { bp := tls.Alloc(240) defer tls.Free(240) var i, v1, v2 int32 @@ -144950,10 +144903,10 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi for pshift > int32(1) { rt = head - uintptr(width) lf = head - uintptr(width) - uintptr(*(*Tsize_t)(unsafe.Pointer(lp + uintptr(pshift-int32(2))*4))) - if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, (*(*[57]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, (*(*[57]uintptr)(unsafe.Pointer(bp)))[0], rt, arg) >= 0 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[57]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[57]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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, rt, arg) >= 0 { v1 = i i++ (*(*[57]uintptr)(unsafe.Pointer(bp)))[v1] = lf @@ -144970,7 +144923,7 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi _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) { +func _trinkle(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pp uintptr, pshift int32, trusty int32, lp uintptr) { bp := tls.Alloc(240) defer tls.Free(240) var i, trail, v1 int32 @@ -144984,13 +144937,13 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p (*(*[57]uintptr)(unsafe.Pointer(bp + 8)))[0] = head for (*(*[2]Tsize_t)(unsafe.Pointer(bp)))[0] != uint32(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp)))[int32(1)] != uint32(0) { stepson = head - uintptr(*(*Tsize_t)(unsafe.Pointer(lp + uintptr(pshift)*4))) - if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, stepson, (*(*[57]uintptr)(unsafe.Pointer(bp + 8)))[0], arg) <= 0 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, stepson, (*(*[57]uintptr)(unsafe.Pointer(bp + 8)))[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))*4))) - 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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, stepson, arg) >= 0 { break } } @@ -145005,13 +144958,15 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p } if !(trusty != 0) { _cycle(tls, width, bp+8, i) - _sift(tls, head, width, cmp, arg, pshift, lp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, lp) } } -func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__X__qsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } bp := tls.Alloc(208) defer tls.Free(208) @@ -145049,14 +145004,14 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, } for head < high { if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 192)))[0]&uint32(3) == uint32(3) { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) _shr(tls, bp+192, int32(2)) pshift += int32(2) } else { if (*(*[48]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= Uint32FromInt32(int32(high)-int32(head)) { - _trinkle(tls, head, width, cmp, arg, bp+192, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+192, pshift, 0, bp) } else { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) } if pshift == int32(1) { _shl(tls, bp+192, int32(1)) @@ -145069,7 +145024,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, *(*Tsize_t)(unsafe.Pointer(bp + 192)) |= uint32(1) head += uintptr(width) } - _trinkle(tls, head, width, cmp, arg, bp+192, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+192, pshift, 0, bp) for pshift != int32(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp + 192)))[0] != uint32(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp + 192)))[int32(1)] != uint32(0) { if pshift <= int32(1) { trail = _pntz(tls, bp+192) @@ -145080,31 +145035,35 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, pshift -= int32(2) *(*Tsize_t)(unsafe.Pointer(bp + 192)) ^= uint32(7) _shr(tls, bp+192, int32(1)) - _trinkle(tls, head-uintptr((*(*[48]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, cmp, arg, bp+192, pshift+int32(1), int32(1), bp) + _trinkle(tls, head-uintptr((*(*[48]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, __ccgo_fp_cmp, arg, bp+192, pshift+int32(1), int32(1), bp) _shl(tls, bp+192, int32(1)) *(*Tsize_t)(unsafe.Pointer(bp + 192)) |= uint32(1) - _trinkle(tls, head-uintptr(width), width, cmp, arg, bp+192, pshift, int32(1), bp) + _trinkle(tls, head-uintptr(width), width, __ccgo_fp_cmp, arg, bp+192, pshift, int32(1), bp) } head -= uintptr(width) } } -func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__Xqsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } - X__qsort_r(tls, base, nel, width, cmp, arg) + X__qsort_r(tls, base, nel, width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_3 = func(*TLS, uintptr, uintptr) int32 + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) { if __ccgo_strace { - trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, origin(2)) } - X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), __ccgo_fp_cmp) } func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { @@ -153810,8 +153769,6 @@ func X__utimes_time32(tls *TLS, path uintptr, times32 uintptr) (r int32) { return Xutimes(tls, path, v1) } -type t__ucontext5 = Tucontext_t7 - func X__wait3_time32(tls *TLS, status uintptr, options int32, usage uintptr) (r1 Tpid_t) { if __ccgo_strace { trc("tls=%v status=%v options=%v usage=%v, (%v:)", tls, status, options, usage, origin(2)) diff --git a/vendor/modernc.org/libc/ccgo_linux_amd64.go b/vendor/modernc.org/libc/ccgo_linux_amd64.go index 15c013442..a93029e55 100644 --- a/vendor/modernc.org/libc/ccgo_linux_amd64.go +++ b/vendor/modernc.org/libc/ccgo_linux_amd64.go @@ -24913,9 +24913,13 @@ func Xrewinddir(tls *TLS, dir uintptr) { ___unlock(tls, dir+20) } -func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { +type t__ccgo_fp__Xscandir_2 = func(*TLS, uintptr) int32 + +type t__ccgo_fp__Xscandir_3 = func(*TLS, uintptr, uintptr) int32 + +func Xscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v res=%v __ccgo_fp_sel=%v __ccgo_fp_cmp=%v, (%v:)", tls, path, res, __ccgo_fp_sel, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var cnt, len1, v2, v3 Tsize_t @@ -24937,7 +24941,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r if !(v1 != 0) { break } - if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + if __ccgo_fp_sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_sel})))(tls, de) != 0) { continue } if cnt >= len1 { @@ -24975,8 +24979,8 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r return -int32(1) } *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno - if cmp != 0 { - Xqsort(tls, names, cnt, uint64(8), cmp) + if __ccgo_fp_cmp != 0 { + Xqsort(tls, names, cnt, uint64(8), __ccgo_fp_cmp) } *(*uintptr)(unsafe.Pointer(res)) = names return Int32FromUint64(cnt) @@ -25723,9 +25727,11 @@ func X__funcs_on_quick_exit(tls *TLS) { } } -func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { +type t__ccgo_fp__Xat_quick_exit_0 = func(*TLS) + +func Xat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) { if __ccgo_strace { - trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + trc("tls=%v __ccgo_fp_func=%v, (%v:)", tls, __ccgo_fp_func, origin(2)) defer func() { trc("-> %v", r1) }() } var r, v1 int32 @@ -25737,7 +25743,7 @@ func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { } else { v1 = _count _count++ - _funcs[v1] = func1 + _funcs[v1] = __ccgo_fp_func } ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) return r @@ -28206,15 +28212,17 @@ type TFTW = struct { Flevel int32 } -func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { +type t__ccgo_fp__Xftw_1 = func(*TLS, uintptr, uintptr, int32) int32 + +func Xftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v, (%v:)", tls, path, __ccgo_fp_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)) + return Xnftw(tls, path, __ccgo_fp_fn, fd_limit, int32(FTW_PHYS)) } const STATX_ALL = 4095 @@ -31199,15 +31207,6 @@ func Xfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) { return int32(X__syscall_ret(tls, Uint64FromInt64(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_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - F__fpregs_mem [64]uint64 -} - func _dummy4(tls *TLS, msg uintptr, lm uintptr) (r uintptr) { return msg } @@ -114152,16 +114151,7 @@ func Xgethostid(tls *TLS) (r int64) { const optpos = 0 -type Tucontext_t3 = struct { - Fuc_flags uint64 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - F__fpregs_mem [64]uint64 -} - -type t__ucontext1 = Tucontext_t3 +type t__ucontext1 = Tucontext_t1 func X__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) { if __ccgo_strace { @@ -115309,7 +115299,7 @@ type Thistory = struct { Fbase int32 } -func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { +func _do_nftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { bp := tls.Alloc(192) defer tls.Free(192) var d, de, v10 uintptr @@ -115415,7 +115405,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } } 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+176) + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+176) r = v7 } if v8 && v7 != 0 { @@ -115456,7 +115446,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*int8)(unsafe.Pointer(path + uintptr(j))) = int8('/') Xstrcpy(tls, path+uintptr(j)+uintptr(1), de+19) - v11 = _do_nftw(tls, path, fn, fd_limit-int32(1), flags, bp+144) + v11 = _do_nftw(tls, path, __ccgo_fp_fn, fd_limit-int32(1), flags, bp+144) r = v11 if v11 != 0 { Xclosedir(tls, d) @@ -115471,7 +115461,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*int8)(unsafe.Pointer(path + uintptr(l))) = 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+176) + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+176) r = v12 } if v13 && v12 != 0 { @@ -115480,9 +115470,11 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h return 0 } -func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { +type t__ccgo_fp__Xnftw_1 = func(*TLS, uintptr, uintptr, int32, uintptr) int32 + +func Xnftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, __ccgo_fp_fn, fd_limit, flags, origin(2)) defer func() { trc("-> %v", r1) }() } bp := tls.Alloc(4112) @@ -115502,7 +115494,7 @@ func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 } 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)) + r = _do_nftw(tls, bp+4, __ccgo_fp_fn, fd_limit, flags, UintptrFromInt32(0)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return r } @@ -116282,8 +116274,6 @@ type Tsockaddr_storage = struct { F__ss_align uint64 } -type t__ucontext2 = Tucontext_t2 - var _lock2 [1]int32 var _log_ident [32]int8 var _log_opt int32 @@ -116721,15 +116711,6 @@ const SA = 194 const SB = 244 const bittab = 0 -type Tucontext_t4 = struct { - Fuc_flags uint64 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - F__fpregs_mem [64]uint64 -} - func Xbtowc(tls *TLS, c int32) (r Twint_t) { if __ccgo_strace { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) @@ -118449,13 +118430,6 @@ const _ns_uop_delete = 0 const _ns_uop_add = 1 const _ns_uop_max = 2 -type Tns_tsig_key1 = struct { - Fname [1025]int8 - Falg [1025]int8 - Fdata uintptr - Flen1 int32 -} - type Tns_tsig_key = struct { Fname [1025]int8 Falg [1025]int8 @@ -118463,14 +118437,6 @@ type Tns_tsig_key = struct { 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 @@ -119120,9 +119086,11 @@ type Tresolvconf = struct { Ftimeout uint32 } -func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__dns_parse_2 = func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32 + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_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)) + trc("tls=%v r=%v rlen=%v __ccgo_fp_callback=%v ctx=%v, (%v:)", tls, r, rlen, __ccgo_fp_callback, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var ancount, len1, qdcount, v1, v2 int32 @@ -119168,7 +119136,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr 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, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { return -int32(1) } p += uintptr(int32(10) + len1) @@ -121272,19 +121240,6 @@ func Xherror(tls *TLS, msg uintptr) { Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+1089, 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_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - F__fpregs_mem [64]uint64 -} - var _msgs1 = [84]int8{'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) { @@ -123072,7 +123027,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return v22 } -func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) { bp := tls.Alloc(8192) defer tls.Free(8192) var h uintptr @@ -123162,7 +123117,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, if Int32FromUint16((*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) + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cb})))(tls, ctx, h) if ret != 0 { return ret } @@ -123175,9 +123130,11 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, return r1 } -func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__rtnetlink_enumerate_2 = func(*TLS, uintptr, uintptr) int32 + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_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)) + trc("tls=%v link_af=%v addr_af=%v __ccgo_fp_cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, __ccgo_fp_cb, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var fd, r int32 @@ -123186,9 +123143,9 @@ func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, if fd < 0 { return -int32(1) } - r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, __ccgo_fp_cb, ctx) if !(r != 0) { - r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, __ccgo_fp_cb, ctx) } X__syscall1(tls, int64(SYS_close), int64(fd)) return r @@ -128295,7 +128252,7 @@ func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r return 0 } -func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, tail uintptr) (r1 int32) { bp := tls.Alloc(144) defer tls.Free(144) var de, dir, p, p2, v11, v2, v7, v8 uintptr @@ -128404,7 +128361,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } } 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) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { return int32(GLOB_ABORTED) } return 0 @@ -128441,7 +128398,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } 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 { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { return int32(GLOB_ABORTED) } return 0 @@ -128493,7 +128450,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } else { v11 = __ccgo_ts } - r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, __ccgo_fp_errfunc, tail) if r != 0 { Xclosedir(tls, dir) return r @@ -128504,7 +128461,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag *(*int8)(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) { + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 @@ -128616,9 +128573,11 @@ func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { return 0 } -func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { +type t__ccgo_fp__Xglob_2 = func(*TLS, uintptr, int32) int32 + +func Xglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_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)) + trc("tls=%v pat=%v flags=%v __ccgo_fp_errfunc=%v g=%v, (%v:)", tls, pat, flags, __ccgo_fp_errfunc, g, origin(2)) defer func() { trc("-> %v", r) }() } bp := tls.Alloc(4128) @@ -128644,8 +128603,8 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in } offs = v1 error1 = 0 - if !(errfunc != 0) { - errfunc = __ccgo_fp(_ignore_err) + if !(__ccgo_fp_errfunc != 0) { + __ccgo_fp_errfunc = __ccgo_fp(_ignore_err) } if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs @@ -128664,7 +128623,7 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in 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) + error1 = _do_glob(tls, bp+16, *(*Tsize_t)(unsafe.Pointer(bp + 4112)), 0, *(*uintptr)(unsafe.Pointer(bp + 4120)), flags, __ccgo_fp_errfunc, bp+8) } Xfree(tls, p) } @@ -133888,9 +133847,11 @@ func Xremque(tls *TLS, element uintptr) { } } -func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { +type t__ccgo_fp__Xlsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -133906,7 +133867,7 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -133918,9 +133879,11 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, 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) { +type t__ccgo_fp__Xlfind_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -133936,7 +133899,7 @@ func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, co if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -133955,9 +133918,11 @@ type Tnode1 = struct { Fh int32 } -func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtdelete_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var a [97]uintptr @@ -133981,7 +133946,7 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { return uintptr(0) } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134026,9 +133991,11 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { return parent } -func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { +type t__ccgo_fp__Xtdestroy_1 = func(*TLS, uintptr) + +func Xtdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) { if __ccgo_strace { - trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + trc("tls=%v root=%v __ccgo_fp_freekey=%v, (%v:)", tls, root, __ccgo_fp_freekey, origin(2)) } var r uintptr _ = r @@ -134036,17 +134003,19 @@ func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { 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) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_freekey) + if __ccgo_fp_freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) } Xfree(tls, r) } -func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtfind_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var c int32 @@ -134060,7 +134029,7 @@ func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134148,9 +134117,11 @@ func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { return _rot(tls, p, n, BoolInt32(h0 < h1)) } -func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { +type t__ccgo_fp__Xtsearch_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r1) }() } var a [96]uintptr @@ -134170,7 +134141,7 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { return n } @@ -134206,26 +134177,28 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { return r } -func _walk(tls *TLS, r uintptr, action uintptr, d int32) { +func _walk(tls *TLS, r uintptr, __ccgo_fp_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, int32(_leaf), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_leaf), d) } else { - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_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, int32(_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, int32(_endorder), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_preorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_postorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_endorder), d) } } -func Xtwalk(tls *TLS, root uintptr, action uintptr) { +type t__ccgo_fp__Xtwalk_1 = func(*TLS, uintptr, int32, int32) + +func Xtwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) { if __ccgo_strace { - trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + trc("tls=%v root=%v __ccgo_fp_action=%v, (%v:)", tls, root, __ccgo_fp_action, origin(2)) } - _walk(tls, root, action, 0) + _walk(tls, root, __ccgo_fp_action, 0) } func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { @@ -134236,8 +134209,6 @@ func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { return int32(X__syscall_ret(tls, Uint64FromInt64(___syscall_cp(tls, int64(SYS_poll), int64(fds), Int64FromUint64(n), int64(timeout), 0, 0, 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)) @@ -134273,8 +134244,6 @@ func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32 return int32(X__syscall_ret(tls, Uint64FromInt64(___syscall_cp(tls, int64(SYS_ppoll), int64(fds), Int64FromUint64(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)) @@ -134315,15 +134284,6 @@ func Xpselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts ui return int32(X__syscall_ret(tls, Uint64FromInt64(___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_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - F__fpregs_mem [64]uint64 -} - 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)) @@ -134739,15 +134699,6 @@ func Xsigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) { const SST_SIZE = 8 -type Tucontext_t7 = struct { - Fuc_flags uint64 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - F__fpregs_mem [64]uint64 -} - 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)) @@ -143794,9 +143745,11 @@ func Xatoll(tls *TLS, s uintptr) (r int64) { return v5 } -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xbsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, base, nel, width, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var sign int32 @@ -143804,7 +143757,7 @@ func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, c _, _ = 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) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, try) if sign < 0 { nel /= uint64(2) } else { @@ -144065,7 +144018,7 @@ func _shr(tls *TLS, p uintptr, n int32) { *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= Uint64FromInt32(n) } -func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { +func _sift(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { bp := tls.Alloc(912) defer tls.Free(912) var i, v1, v2 int32 @@ -144077,10 +144030,10 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi 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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[113]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, rt, arg) >= 0 { v1 = i i++ (*(*[113]uintptr)(unsafe.Pointer(bp)))[v1] = lf @@ -144097,7 +144050,7 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi _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) { +func _trinkle(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_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 @@ -144111,13 +144064,13 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p (*(*[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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, stepson, arg) >= 0 { break } } @@ -144132,13 +144085,15 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p } if !(trusty != 0) { _cycle(tls, width, bp+16, i) - _sift(tls, head, width, cmp, arg, pshift, lp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, lp) } } -func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__X__qsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } bp := tls.Alloc(784) defer tls.Free(784) @@ -144176,14 +144131,14 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, } for head < high { if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[0]&uint64(3) == uint64(3) { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) _shr(tls, bp+768, int32(2)) pshift += int32(2) } else { if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= Uint64FromInt64(int64(high)-int64(head)) { - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+768, pshift, 0, bp) } else { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) } if pshift == int32(1) { _shl(tls, bp+768, int32(1)) @@ -144196,7 +144151,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, *(*Tsize_t)(unsafe.Pointer(bp + 768)) |= uint64(1) head += uintptr(width) } - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_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) @@ -144207,31 +144162,35 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, 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) + _trinkle(tls, head-uintptr((*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, __ccgo_fp_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) + _trinkle(tls, head-uintptr(width), width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } - X__qsort_r(tls, base, nel, width, cmp, arg) + X__qsort_r(tls, base, nel, width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_3 = func(*TLS, uintptr, uintptr) int32 + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) { if __ccgo_strace { - trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, origin(2)) } - X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), __ccgo_fp_cmp) } func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { diff --git a/vendor/modernc.org/libc/ccgo_linux_arm.go b/vendor/modernc.org/libc/ccgo_linux_arm.go index e62167633..311fbccf0 100644 --- a/vendor/modernc.org/libc/ccgo_linux_arm.go +++ b/vendor/modernc.org/libc/ccgo_linux_arm.go @@ -25135,9 +25135,13 @@ func Xrewinddir(tls *TLS, dir uintptr) { ___unlock(tls, dir+20) } -func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { +type t__ccgo_fp__Xscandir_2 = func(*TLS, uintptr) int32 + +type t__ccgo_fp__Xscandir_3 = func(*TLS, uintptr, uintptr) int32 + +func Xscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v res=%v __ccgo_fp_sel=%v __ccgo_fp_cmp=%v, (%v:)", tls, path, res, __ccgo_fp_sel, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var cnt, len1, v2, v3 Tsize_t @@ -25159,7 +25163,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r if !(v1 != 0) { break } - if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + if __ccgo_fp_sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_sel})))(tls, de) != 0) { continue } if cnt >= len1 { @@ -25197,8 +25201,8 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r return -int32(1) } *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno - if cmp != 0 { - Xqsort(tls, names, cnt, uint32(4), cmp) + if __ccgo_fp_cmp != 0 { + Xqsort(tls, names, cnt, uint32(4), __ccgo_fp_cmp) } *(*uintptr)(unsafe.Pointer(res)) = names return Int32FromUint32(cnt) @@ -25938,9 +25942,11 @@ func X__funcs_on_quick_exit(tls *TLS) { } } -func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { +type t__ccgo_fp__Xat_quick_exit_0 = func(*TLS) + +func Xat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) { if __ccgo_strace { - trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + trc("tls=%v __ccgo_fp_func=%v, (%v:)", tls, __ccgo_fp_func, origin(2)) defer func() { trc("-> %v", r1) }() } var r, v1 int32 @@ -25952,7 +25958,7 @@ func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { } else { v1 = _count _count++ - _funcs[v1] = func1 + _funcs[v1] = __ccgo_fp_func } ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) return r @@ -28457,15 +28463,17 @@ type TFTW = struct { Flevel int32 } -func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { +type t__ccgo_fp__Xftw_1 = func(*TLS, uintptr, uintptr, int32) int32 + +func Xftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v, (%v:)", tls, path, __ccgo_fp_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)) + return Xnftw(tls, path, __ccgo_fp_fn, fd_limit, int32(FTW_PHYS)) } const STATX_ALL = 4095 @@ -31529,16 +31537,6 @@ func Xfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) { return X__syscall_ret(tls, Uint32FromInt32(X__syscall2(tls, int32(SYS_fremovexattr), fd, int32(name)))) } -type Tucontext_t2 = struct { - F__ccgo_align [0]uint32 - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - Fuc_regspace [64]uint64 -} - func _dummy4(tls *TLS, msg uintptr, lm uintptr) (r uintptr) { return msg } @@ -114778,17 +114776,7 @@ func Xgethostid(tls *TLS) (r int32) { const optpos = 0 -type Tucontext_t3 = struct { - F__ccgo_align [0]uint32 - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - Fuc_regspace [64]uint64 -} - -type t__ucontext1 = Tucontext_t3 +type t__ucontext1 = Tucontext_t1 func X__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) { if __ccgo_strace { @@ -115943,7 +115931,7 @@ type Thistory = struct { Fbase int32 } -func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { +func _do_nftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { bp := tls.Alloc(192) defer tls.Free(192) var d, de, v10 uintptr @@ -116049,7 +116037,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } } 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+184) + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+184) r = v7 } if v8 && v7 != 0 { @@ -116090,7 +116078,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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+152) + v11 = _do_nftw(tls, path, __ccgo_fp_fn, fd_limit-int32(1), flags, bp+152) r = v11 if v11 != 0 { Xclosedir(tls, d) @@ -116105,7 +116093,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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+184) + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+184) r = v12 } if v13 && v12 != 0 { @@ -116114,9 +116102,11 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h return 0 } -func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { +type t__ccgo_fp__Xnftw_1 = func(*TLS, uintptr, uintptr, int32, uintptr) int32 + +func Xnftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, __ccgo_fp_fn, fd_limit, flags, origin(2)) defer func() { trc("-> %v", r1) }() } bp := tls.Alloc(4112) @@ -116136,7 +116126,7 @@ func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 } _memcpy(tls, bp+4, path, l+uint32(1)) _pthread_setcancelstate(tls, int32(PTHREAD_CANCEL_DISABLE), bp) - r = _do_nftw(tls, bp+4, fn, fd_limit, flags, UintptrFromInt32(0)) + r = _do_nftw(tls, bp+4, __ccgo_fp_fn, fd_limit, flags, UintptrFromInt32(0)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return r } @@ -116913,8 +116903,6 @@ type Tsockaddr_storage = struct { F__ss_align uint32 } -type t__ucontext2 = Tucontext_t2 - var _lock2 [1]int32 var _log_ident [32]uint8 var _log_opt int32 @@ -117352,16 +117340,6 @@ const SA = 194 const SB = 244 const bittab = 0 -type Tucontext_t4 = struct { - F__ccgo_align [0]uint32 - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - Fuc_regspace [64]uint64 -} - func Xbtowc(tls *TLS, c int32) (r Twint_t) { if __ccgo_strace { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) @@ -119077,13 +119055,6 @@ 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 @@ -119091,14 +119062,6 @@ type Tns_tsig_key = struct { 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 @@ -119748,9 +119711,11 @@ type Tresolvconf = struct { Ftimeout uint32 } -func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__dns_parse_2 = func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32 + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_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)) + trc("tls=%v r=%v rlen=%v __ccgo_fp_callback=%v ctx=%v, (%v:)", tls, r, rlen, __ccgo_fp_callback, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var ancount, len1, qdcount, v1, v2 int32 @@ -119796,7 +119761,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr if len1+int32(10) > int32(r+uintptr(rlen))-int32(p) { return -int32(1) } - if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { return -int32(1) } p += uintptr(int32(10) + len1) @@ -121896,20 +121861,6 @@ func Xherror(tls *TLS, msg uintptr) { Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+987, VaList(bp+8, v1, v2, Xhstrerror(tls, *(*int32)(unsafe.Pointer(X__h_errno_location(tls)))))) } -type Tcpu_set_t1 = struct { - F__bits [32]uint32 -} - -type Tucontext_t5 = struct { - F__ccgo_align [0]uint32 - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - Fuc_regspace [64]uint64 -} - 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) { @@ -123696,7 +123647,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return v22 } -func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) { bp := tls.Alloc(8192) defer tls.Free(8192) var h uintptr @@ -123786,7 +123737,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, if Int32FromUint16((*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) + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cb})))(tls, ctx, h) if ret != 0 { return ret } @@ -123799,9 +123750,11 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, return r1 } -func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__rtnetlink_enumerate_2 = func(*TLS, uintptr, uintptr) int32 + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_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)) + trc("tls=%v link_af=%v addr_af=%v __ccgo_fp_cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, __ccgo_fp_cb, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var fd, r int32 @@ -123810,9 +123763,9 @@ func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, if fd < 0 { return -int32(1) } - r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, __ccgo_fp_cb, ctx) if !(r != 0) { - r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, __ccgo_fp_cb, ctx) } X__syscall1(tls, int32(SYS_close), fd) return r @@ -128875,7 +128828,7 @@ func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r return 0 } -func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, tail uintptr) (r1 int32) { bp := tls.Alloc(160) defer tls.Free(160) var de, dir, p, p2, v11, v2, v7, v8 uintptr @@ -128984,7 +128937,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } } 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) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { return int32(GLOB_ABORTED) } return 0 @@ -129021,7 +128974,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } 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 { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { return int32(GLOB_ABORTED) } return 0 @@ -129073,7 +129026,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } else { v11 = __ccgo_ts } - r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, __ccgo_fp_errfunc, tail) if r != 0 { Xclosedir(tls, dir) return r @@ -129084,7 +129037,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag *(*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) { + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 @@ -129196,9 +129149,11 @@ func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { return 0 } -func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { +type t__ccgo_fp__Xglob_2 = func(*TLS, uintptr, int32) int32 + +func Xglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_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)) + trc("tls=%v pat=%v flags=%v __ccgo_fp_errfunc=%v g=%v, (%v:)", tls, pat, flags, __ccgo_fp_errfunc, g, origin(2)) defer func() { trc("-> %v", r) }() } bp := tls.Alloc(4112) @@ -129224,8 +129179,8 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in } offs = v1 error1 = 0 - if !(errfunc != 0) { - errfunc = __ccgo_fp(_ignore_err) + if !(__ccgo_fp_errfunc != 0) { + __ccgo_fp_errfunc = __ccgo_fp(_ignore_err) } if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs @@ -129244,7 +129199,7 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in error1 = _expand_tilde(tls, bp+4108, bp+8, bp+4104) } if !(error1 != 0) { - error1 = _do_glob(tls, bp+8, *(*Tsize_t)(unsafe.Pointer(bp + 4104)), 0, *(*uintptr)(unsafe.Pointer(bp + 4108)), flags, errfunc, bp+4) + error1 = _do_glob(tls, bp+8, *(*Tsize_t)(unsafe.Pointer(bp + 4104)), 0, *(*uintptr)(unsafe.Pointer(bp + 4108)), flags, __ccgo_fp_errfunc, bp+4) } Xfree(tls, p) } @@ -134469,9 +134424,11 @@ func Xremque(tls *TLS, element uintptr) { } } -func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { +type t__ccgo_fp__Xlsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -134487,7 +134444,7 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -134499,9 +134456,11 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, return _memcpy(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) { +type t__ccgo_fp__Xlfind_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -134517,7 +134476,7 @@ func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, co if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -134536,9 +134495,11 @@ type Tnode1 = struct { Fh int32 } -func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtdelete_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var a [49]uintptr @@ -134562,7 +134523,7 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { return uintptr(0) } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134607,9 +134568,11 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { return parent } -func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { +type t__ccgo_fp__Xtdestroy_1 = func(*TLS, uintptr) + +func Xtdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) { if __ccgo_strace { - trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + trc("tls=%v root=%v __ccgo_fp_freekey=%v, (%v:)", tls, root, __ccgo_fp_freekey, origin(2)) } var r uintptr _ = r @@ -134617,17 +134580,19 @@ func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { if r == uintptr(0) { return } - Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 4)), freekey) - Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 4 + 1*4)), freekey) - if freekey != 0 { - (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 4)), __ccgo_fp_freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 4 + 1*4)), __ccgo_fp_freekey) + if __ccgo_fp_freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) } Xfree(tls, r) } -func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtfind_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var c int32 @@ -134641,7 +134606,7 @@ func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134729,9 +134694,11 @@ func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { return _rot(tls, p, n, BoolInt32(h0 < h1)) } -func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { +type t__ccgo_fp__Xtsearch_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r1) }() } var a [48]uintptr @@ -134751,7 +134718,7 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { return n } @@ -134787,26 +134754,28 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { return r } -func _walk(tls *TLS, r uintptr, action uintptr, d int32) { +func _walk(tls *TLS, r uintptr, __ccgo_fp_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, int32(_leaf), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_leaf), d) } else { - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_preorder), d) - _walk(tls, *(*uintptr)(unsafe.Pointer(r + 4)), action, d+int32(1)) - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_postorder), d) - _walk(tls, *(*uintptr)(unsafe.Pointer(r + 4 + 1*4)), action, d+int32(1)) - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_endorder), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_preorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 4)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_postorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 4 + 1*4)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_endorder), d) } } -func Xtwalk(tls *TLS, root uintptr, action uintptr) { +type t__ccgo_fp__Xtwalk_1 = func(*TLS, uintptr, int32, int32) + +func Xtwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) { if __ccgo_strace { - trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + trc("tls=%v root=%v __ccgo_fp_action=%v, (%v:)", tls, root, __ccgo_fp_action, origin(2)) } - _walk(tls, root, action, 0) + _walk(tls, root, __ccgo_fp_action, 0) } func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { @@ -134817,8 +134786,6 @@ func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { return X__syscall_ret(tls, Uint32FromInt32(___syscall_cp(tls, int32(SYS_poll), int32(fds), Int32FromUint32(n), timeout, 0, 0, 0))) } -type t__ucontext3 = Tucontext_t5 - func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r1 int32) { if __ccgo_strace { trc("tls=%v fds=%v n=%v to=%v mask=%v, (%v:)", tls, fds, n, to, mask, origin(2)) @@ -134878,8 +134845,6 @@ func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r1 int3 return X__syscall_ret(tls, Uint32FromInt32(___syscall_cp(tls, int32(SYS_ppoll), int32(fds), Int32FromUint32(n), int32(v5), int32(mask), int32(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) (r1 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)) @@ -134944,16 +134909,6 @@ func Xpselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts ui return X__syscall_ret(tls, Uint32FromInt32(___syscall_cp(tls, int32(SYS_pselect6), n, int32(rfds), int32(wfds), int32(efds), int32(v5), int32(bp+24)))) } -type Tucontext_t6 = struct { - F__ccgo_align [0]uint32 - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t - Fuc_regspace [64]uint64 -} - func Xselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, tv uintptr) (r1 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)) @@ -135429,16 +135384,6 @@ func Xsigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) { const SST_SIZE = 8 -type Tucontext_t7 = struct { - F__ccgo_align [0]uint32 - Fuc_flags uint32 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t - Fuc_regspace [64]uint64 -} - 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)) @@ -144607,9 +144552,11 @@ func Xatoll(tls *TLS, s uintptr) (r int64) { return v5 } -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xbsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, base, nel, width, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var sign int32 @@ -144617,7 +144564,7 @@ func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, c _, _ = sign, try for nel > uint32(0) { try = base + uintptr(width*(nel/uint32(2))) - sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, try) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, try) if sign < 0 { nel /= uint32(2) } else { @@ -144896,7 +144843,7 @@ func _shr(tls *TLS, p uintptr, n int32) { *(*Tsize_t)(unsafe.Pointer(p + 1*4)) >>= Uint32FromInt32(n) } -func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { +func _sift(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { bp := tls.Alloc(240) defer tls.Free(240) var i, v1, v2 int32 @@ -144908,10 +144855,10 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi for pshift > int32(1) { rt = head - uintptr(width) lf = head - uintptr(width) - uintptr(*(*Tsize_t)(unsafe.Pointer(lp + uintptr(pshift-int32(2))*4))) - if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, (*(*[57]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, (*(*[57]uintptr)(unsafe.Pointer(bp)))[0], rt, arg) >= 0 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[57]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[57]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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, rt, arg) >= 0 { v1 = i i++ (*(*[57]uintptr)(unsafe.Pointer(bp)))[v1] = lf @@ -144928,7 +144875,7 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi _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) { +func _trinkle(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pp uintptr, pshift int32, trusty int32, lp uintptr) { bp := tls.Alloc(240) defer tls.Free(240) var i, trail, v1 int32 @@ -144942,13 +144889,13 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p (*(*[57]uintptr)(unsafe.Pointer(bp + 8)))[0] = head for (*(*[2]Tsize_t)(unsafe.Pointer(bp)))[0] != uint32(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp)))[int32(1)] != uint32(0) { stepson = head - uintptr(*(*Tsize_t)(unsafe.Pointer(lp + uintptr(pshift)*4))) - if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, stepson, (*(*[57]uintptr)(unsafe.Pointer(bp + 8)))[0], arg) <= 0 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, stepson, (*(*[57]uintptr)(unsafe.Pointer(bp + 8)))[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))*4))) - 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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, stepson, arg) >= 0 { break } } @@ -144963,13 +144910,15 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p } if !(trusty != 0) { _cycle(tls, width, bp+8, i) - _sift(tls, head, width, cmp, arg, pshift, lp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, lp) } } -func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__X__qsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } bp := tls.Alloc(208) defer tls.Free(208) @@ -145007,14 +144956,14 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, } for head < high { if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 192)))[0]&uint32(3) == uint32(3) { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) _shr(tls, bp+192, int32(2)) pshift += int32(2) } else { if (*(*[48]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= Uint32FromInt32(int32(high)-int32(head)) { - _trinkle(tls, head, width, cmp, arg, bp+192, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+192, pshift, 0, bp) } else { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) } if pshift == int32(1) { _shl(tls, bp+192, int32(1)) @@ -145027,7 +144976,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, *(*Tsize_t)(unsafe.Pointer(bp + 192)) |= uint32(1) head += uintptr(width) } - _trinkle(tls, head, width, cmp, arg, bp+192, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+192, pshift, 0, bp) for pshift != int32(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp + 192)))[0] != uint32(1) || (*(*[2]Tsize_t)(unsafe.Pointer(bp + 192)))[int32(1)] != uint32(0) { if pshift <= int32(1) { trail = _pntz(tls, bp+192) @@ -145038,31 +144987,35 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, pshift -= int32(2) *(*Tsize_t)(unsafe.Pointer(bp + 192)) ^= uint32(7) _shr(tls, bp+192, int32(1)) - _trinkle(tls, head-uintptr((*(*[48]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, cmp, arg, bp+192, pshift+int32(1), int32(1), bp) + _trinkle(tls, head-uintptr((*(*[48]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, __ccgo_fp_cmp, arg, bp+192, pshift+int32(1), int32(1), bp) _shl(tls, bp+192, int32(1)) *(*Tsize_t)(unsafe.Pointer(bp + 192)) |= uint32(1) - _trinkle(tls, head-uintptr(width), width, cmp, arg, bp+192, pshift, int32(1), bp) + _trinkle(tls, head-uintptr(width), width, __ccgo_fp_cmp, arg, bp+192, pshift, int32(1), bp) } head -= uintptr(width) } } -func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__Xqsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } - X__qsort_r(tls, base, nel, width, cmp, arg) + X__qsort_r(tls, base, nel, width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_3 = func(*TLS, uintptr, uintptr) int32 + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) { if __ccgo_strace { - trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, origin(2)) } - X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), __ccgo_fp_cmp) } func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { @@ -153422,8 +153375,6 @@ func X__utimes_time32(tls *TLS, path uintptr, times32 uintptr) (r int32) { return Xutimes(tls, path, v1) } -type t__ucontext5 = Tucontext_t7 - func X__wait3_time32(tls *TLS, status uintptr, options int32, usage uintptr) (r1 Tpid_t) { if __ccgo_strace { trc("tls=%v status=%v options=%v usage=%v, (%v:)", tls, status, options, usage, origin(2)) diff --git a/vendor/modernc.org/libc/ccgo_linux_arm64.go b/vendor/modernc.org/libc/ccgo_linux_arm64.go index cd1f7cb31..aef720a69 100644 --- a/vendor/modernc.org/libc/ccgo_linux_arm64.go +++ b/vendor/modernc.org/libc/ccgo_linux_arm64.go @@ -24841,9 +24841,13 @@ func Xrewinddir(tls *TLS, dir uintptr) { ___unlock(tls, dir+20) } -func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { +type t__ccgo_fp__Xscandir_2 = func(*TLS, uintptr) int32 + +type t__ccgo_fp__Xscandir_3 = func(*TLS, uintptr, uintptr) int32 + +func Xscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v res=%v __ccgo_fp_sel=%v __ccgo_fp_cmp=%v, (%v:)", tls, path, res, __ccgo_fp_sel, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var cnt, len1, v2, v3 Tsize_t @@ -24865,7 +24869,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r if !(v1 != 0) { break } - if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + if __ccgo_fp_sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_sel})))(tls, de) != 0) { continue } if cnt >= len1 { @@ -24903,8 +24907,8 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r return -int32(1) } *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno - if cmp != 0 { - Xqsort(tls, names, cnt, uint64(8), cmp) + if __ccgo_fp_cmp != 0 { + Xqsort(tls, names, cnt, uint64(8), __ccgo_fp_cmp) } *(*uintptr)(unsafe.Pointer(res)) = names return Int32FromUint64(cnt) @@ -25650,9 +25654,11 @@ func X__funcs_on_quick_exit(tls *TLS) { } } -func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { +type t__ccgo_fp__Xat_quick_exit_0 = func(*TLS) + +func Xat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) { if __ccgo_strace { - trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + trc("tls=%v __ccgo_fp_func=%v, (%v:)", tls, __ccgo_fp_func, origin(2)) defer func() { trc("-> %v", r1) }() } var r, v1 int32 @@ -25664,7 +25670,7 @@ func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { } else { v1 = _count _count++ - _funcs[v1] = func1 + _funcs[v1] = __ccgo_fp_func } ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) return r @@ -28116,15 +28122,17 @@ type TFTW = struct { Flevel int32 } -func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { +type t__ccgo_fp__Xftw_1 = func(*TLS, uintptr, uintptr, int32) int32 + +func Xftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v, (%v:)", tls, path, __ccgo_fp_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)) + return Xnftw(tls, path, __ccgo_fp_fn, fd_limit, int32(FTW_PHYS)) } const STATX_ALL = 4095 @@ -31028,14 +31036,6 @@ func Xfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) { return int32(X__syscall_ret(tls, Uint64FromInt64(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 } @@ -113983,15 +113983,7 @@ func Xgethostid(tls *TLS) (r int64) { 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 +type t__ucontext1 = Tucontext_t1 func X__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) { if __ccgo_strace { @@ -115139,7 +115131,7 @@ type Thistory = struct { Fbase int32 } -func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { +func _do_nftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { bp := tls.Alloc(176) defer tls.Free(176) var d, de, v10 uintptr @@ -115245,7 +115237,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } } 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) + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+160) r = v7 } if v8 && v7 != 0 { @@ -115286,7 +115278,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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) + v11 = _do_nftw(tls, path, __ccgo_fp_fn, fd_limit-int32(1), flags, bp+128) r = v11 if v11 != 0 { Xclosedir(tls, d) @@ -115301,7 +115293,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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) + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+160) r = v12 } if v13 && v12 != 0 { @@ -115310,9 +115302,11 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h return 0 } -func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { +type t__ccgo_fp__Xnftw_1 = func(*TLS, uintptr, uintptr, int32, uintptr) int32 + +func Xnftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, __ccgo_fp_fn, fd_limit, flags, origin(2)) defer func() { trc("-> %v", r1) }() } bp := tls.Alloc(4112) @@ -115332,7 +115326,7 @@ func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 } 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)) + r = _do_nftw(tls, bp+4, __ccgo_fp_fn, fd_limit, flags, UintptrFromInt32(0)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return r } @@ -116112,8 +116106,6 @@ type Tsockaddr_storage = struct { F__ss_align uint64 } -type t__ucontext2 = Tucontext_t2 - var _lock2 [1]int32 var _log_ident [32]uint8 var _log_opt int32 @@ -116551,14 +116543,6 @@ 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)) @@ -118278,13 +118262,6 @@ 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 @@ -118292,14 +118269,6 @@ type Tns_tsig_key = struct { 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 @@ -118949,9 +118918,11 @@ type Tresolvconf = struct { Ftimeout uint32 } -func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__dns_parse_2 = func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32 + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_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)) + trc("tls=%v r=%v rlen=%v __ccgo_fp_callback=%v ctx=%v, (%v:)", tls, r, rlen, __ccgo_fp_callback, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var ancount, len1, qdcount, v1, v2 int32 @@ -118997,7 +118968,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr 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, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { return -int32(1) } p += uintptr(int32(10) + len1) @@ -121101,18 +121072,6 @@ func Xherror(tls *TLS, msg uintptr) { 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) { @@ -122900,7 +122859,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return v22 } -func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) { bp := tls.Alloc(8192) defer tls.Free(8192) var h uintptr @@ -122990,7 +122949,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, if Int32FromUint16((*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) + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cb})))(tls, ctx, h) if ret != 0 { return ret } @@ -123003,9 +122962,11 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, return r1 } -func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__rtnetlink_enumerate_2 = func(*TLS, uintptr, uintptr) int32 + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_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)) + trc("tls=%v link_af=%v addr_af=%v __ccgo_fp_cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, __ccgo_fp_cb, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var fd, r int32 @@ -123014,9 +122975,9 @@ func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, if fd < 0 { return -int32(1) } - r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, __ccgo_fp_cb, ctx) if !(r != 0) { - r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, __ccgo_fp_cb, ctx) } X__syscall1(tls, int64(SYS_close), int64(fd)) return r @@ -128123,7 +128084,7 @@ func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r return 0 } -func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, tail uintptr) (r1 int32) { bp := tls.Alloc(128) defer tls.Free(128) var de, dir, p, p2, v11, v2, v7, v8 uintptr @@ -128232,7 +128193,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } } 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) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { return int32(GLOB_ABORTED) } return 0 @@ -128269,7 +128230,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } 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 { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { return int32(GLOB_ABORTED) } return 0 @@ -128321,7 +128282,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } else { v11 = __ccgo_ts } - r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, __ccgo_fp_errfunc, tail) if r != 0 { Xclosedir(tls, dir) return r @@ -128332,7 +128293,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag *(*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) { + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 @@ -128444,9 +128405,11 @@ func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { return 0 } -func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { +type t__ccgo_fp__Xglob_2 = func(*TLS, uintptr, int32) int32 + +func Xglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_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)) + trc("tls=%v pat=%v flags=%v __ccgo_fp_errfunc=%v g=%v, (%v:)", tls, pat, flags, __ccgo_fp_errfunc, g, origin(2)) defer func() { trc("-> %v", r) }() } bp := tls.Alloc(4128) @@ -128472,8 +128435,8 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in } offs = v1 error1 = 0 - if !(errfunc != 0) { - errfunc = __ccgo_fp(_ignore_err) + if !(__ccgo_fp_errfunc != 0) { + __ccgo_fp_errfunc = __ccgo_fp(_ignore_err) } if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs @@ -128492,7 +128455,7 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in 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) + error1 = _do_glob(tls, bp+16, *(*Tsize_t)(unsafe.Pointer(bp + 4112)), 0, *(*uintptr)(unsafe.Pointer(bp + 4120)), flags, __ccgo_fp_errfunc, bp+8) } Xfree(tls, p) } @@ -133716,9 +133679,11 @@ func Xremque(tls *TLS, element uintptr) { } } -func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { +type t__ccgo_fp__Xlsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -133734,7 +133699,7 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -133746,9 +133711,11 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, 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) { +type t__ccgo_fp__Xlfind_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -133764,7 +133731,7 @@ func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, co if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -133783,9 +133750,11 @@ type Tnode1 = struct { Fh int32 } -func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtdelete_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var a [97]uintptr @@ -133809,7 +133778,7 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { return uintptr(0) } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -133854,9 +133823,11 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { return parent } -func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { +type t__ccgo_fp__Xtdestroy_1 = func(*TLS, uintptr) + +func Xtdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) { if __ccgo_strace { - trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + trc("tls=%v root=%v __ccgo_fp_freekey=%v, (%v:)", tls, root, __ccgo_fp_freekey, origin(2)) } var r uintptr _ = r @@ -133864,17 +133835,19 @@ func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { 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) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_freekey) + if __ccgo_fp_freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) } Xfree(tls, r) } -func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtfind_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var c int32 @@ -133888,7 +133861,7 @@ func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -133976,9 +133949,11 @@ func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { return _rot(tls, p, n, BoolInt32(h0 < h1)) } -func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { +type t__ccgo_fp__Xtsearch_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r1) }() } var a [96]uintptr @@ -133998,7 +133973,7 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { return n } @@ -134034,26 +134009,28 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { return r } -func _walk(tls *TLS, r uintptr, action uintptr, d int32) { +func _walk(tls *TLS, r uintptr, __ccgo_fp_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, int32(_leaf), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_leaf), d) } else { - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_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, int32(_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, int32(_endorder), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_preorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_postorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_endorder), d) } } -func Xtwalk(tls *TLS, root uintptr, action uintptr) { +type t__ccgo_fp__Xtwalk_1 = func(*TLS, uintptr, int32, int32) + +func Xtwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) { if __ccgo_strace { - trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + trc("tls=%v root=%v __ccgo_fp_action=%v, (%v:)", tls, root, __ccgo_fp_action, origin(2)) } - _walk(tls, root, action, 0) + _walk(tls, root, __ccgo_fp_action, 0) } func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { @@ -134077,8 +134054,6 @@ func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { return int32(X__syscall_ret(tls, Uint64FromInt64(___syscall_cp(tls, int64(SYS_ppoll), int64(fds), Int64FromUint64(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)) @@ -134114,8 +134089,6 @@ func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32 return int32(X__syscall_ret(tls, Uint64FromInt64(___syscall_cp(tls, int64(SYS_ppoll), int64(fds), Int64FromUint64(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)) @@ -134156,14 +134129,6 @@ func Xpselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts ui return int32(X__syscall_ret(tls, Uint64FromInt64(___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)) @@ -134659,14 +134624,6 @@ func Xsigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) { 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)) @@ -143903,9 +143860,11 @@ func Xatoll(tls *TLS, s uintptr) (r int64) { return v5 } -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xbsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, base, nel, width, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var sign int32 @@ -143913,7 +143872,7 @@ func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, c _, _ = 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) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, try) if sign < 0 { nel /= uint64(2) } else { @@ -144174,7 +144133,7 @@ func _shr(tls *TLS, p uintptr, n int32) { *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= Uint64FromInt32(n) } -func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { +func _sift(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { bp := tls.Alloc(912) defer tls.Free(912) var i, v1, v2 int32 @@ -144186,10 +144145,10 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi 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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[113]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, rt, arg) >= 0 { v1 = i i++ (*(*[113]uintptr)(unsafe.Pointer(bp)))[v1] = lf @@ -144206,7 +144165,7 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi _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) { +func _trinkle(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_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 @@ -144220,13 +144179,13 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p (*(*[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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, stepson, arg) >= 0 { break } } @@ -144241,13 +144200,15 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p } if !(trusty != 0) { _cycle(tls, width, bp+16, i) - _sift(tls, head, width, cmp, arg, pshift, lp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, lp) } } -func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__X__qsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } bp := tls.Alloc(784) defer tls.Free(784) @@ -144285,14 +144246,14 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, } for head < high { if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[0]&uint64(3) == uint64(3) { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) _shr(tls, bp+768, int32(2)) pshift += int32(2) } else { if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= Uint64FromInt64(int64(high)-int64(head)) { - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+768, pshift, 0, bp) } else { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) } if pshift == int32(1) { _shl(tls, bp+768, int32(1)) @@ -144305,7 +144266,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, *(*Tsize_t)(unsafe.Pointer(bp + 768)) |= uint64(1) head += uintptr(width) } - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_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) @@ -144316,31 +144277,35 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, 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) + _trinkle(tls, head-uintptr((*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, __ccgo_fp_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) + _trinkle(tls, head-uintptr(width), width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } - X__qsort_r(tls, base, nel, width, cmp, arg) + X__qsort_r(tls, base, nel, width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_3 = func(*TLS, uintptr, uintptr) int32 + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) { if __ccgo_strace { - trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, origin(2)) } - X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), __ccgo_fp_cmp) } func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { diff --git a/vendor/modernc.org/libc/ccgo_linux_loong64.go b/vendor/modernc.org/libc/ccgo_linux_loong64.go index 48b0b26f8..73ee111eb 100644 --- a/vendor/modernc.org/libc/ccgo_linux_loong64.go +++ b/vendor/modernc.org/libc/ccgo_linux_loong64.go @@ -24905,9 +24905,13 @@ func Xrewinddir(tls *TLS, dir uintptr) { ___unlock(tls, dir+20) } -func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { +type t__ccgo_fp__Xscandir_2 = func(*TLS, uintptr) int32 + +type t__ccgo_fp__Xscandir_3 = func(*TLS, uintptr, uintptr) int32 + +func Xscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v res=%v __ccgo_fp_sel=%v __ccgo_fp_cmp=%v, (%v:)", tls, path, res, __ccgo_fp_sel, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var cnt, len1, v2, v3 Tsize_t @@ -24929,7 +24933,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r if !(v1 != 0) { break } - if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + if __ccgo_fp_sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_sel})))(tls, de) != 0) { continue } if cnt >= len1 { @@ -24967,8 +24971,8 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r return -int32(1) } *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno - if cmp != 0 { - Xqsort(tls, names, cnt, uint64(8), cmp) + if __ccgo_fp_cmp != 0 { + Xqsort(tls, names, cnt, uint64(8), __ccgo_fp_cmp) } *(*uintptr)(unsafe.Pointer(res)) = names return Int32FromUint64(cnt) @@ -25714,9 +25718,11 @@ func X__funcs_on_quick_exit(tls *TLS) { } } -func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { +type t__ccgo_fp__Xat_quick_exit_0 = func(*TLS) + +func Xat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) { if __ccgo_strace { - trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + trc("tls=%v __ccgo_fp_func=%v, (%v:)", tls, __ccgo_fp_func, origin(2)) defer func() { trc("-> %v", r1) }() } var r, v1 int32 @@ -25728,7 +25734,7 @@ func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { } else { v1 = _count _count++ - _funcs[v1] = func1 + _funcs[v1] = __ccgo_fp_func } ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) return r @@ -28104,15 +28110,17 @@ type TFTW = struct { Flevel int32 } -func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { +type t__ccgo_fp__Xftw_1 = func(*TLS, uintptr, uintptr, int32) int32 + +func Xftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v, (%v:)", tls, path, __ccgo_fp_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)) + return Xnftw(tls, path, __ccgo_fp_fn, fd_limit, int32(FTW_PHYS)) } const STATX_ALL = 4095 @@ -115115,7 +115123,7 @@ type Thistory = struct { Fbase int32 } -func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { +func _do_nftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { bp := tls.Alloc(176) defer tls.Free(176) var d, de, v10 uintptr @@ -115221,7 +115229,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } } 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) + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+160) r = v7 } if v8 && v7 != 0 { @@ -115262,7 +115270,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*int8)(unsafe.Pointer(path + uintptr(j))) = int8('/') Xstrcpy(tls, path+uintptr(j)+uintptr(1), de+19) - v11 = _do_nftw(tls, path, fn, fd_limit-int32(1), flags, bp+128) + v11 = _do_nftw(tls, path, __ccgo_fp_fn, fd_limit-int32(1), flags, bp+128) r = v11 if v11 != 0 { Xclosedir(tls, d) @@ -115277,7 +115285,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*int8)(unsafe.Pointer(path + uintptr(l))) = 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) + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+160) r = v12 } if v13 && v12 != 0 { @@ -115286,9 +115294,11 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h return 0 } -func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { +type t__ccgo_fp__Xnftw_1 = func(*TLS, uintptr, uintptr, int32, uintptr) int32 + +func Xnftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, __ccgo_fp_fn, fd_limit, flags, origin(2)) defer func() { trc("-> %v", r1) }() } bp := tls.Alloc(4112) @@ -115308,7 +115318,7 @@ func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 } 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)) + r = _do_nftw(tls, bp+4, __ccgo_fp_fn, fd_limit, flags, UintptrFromInt32(0)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return r } @@ -118204,13 +118214,6 @@ const _ns_uop_delete = 0 const _ns_uop_add = 1 const _ns_uop_max = 2 -type Tns_tsig_key1 = struct { - Fname [1025]int8 - Falg [1025]int8 - Fdata uintptr - Flen1 int32 -} - type Tns_tsig_key = struct { Fname [1025]int8 Falg [1025]int8 @@ -118218,14 +118221,6 @@ type Tns_tsig_key = struct { 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 @@ -118875,9 +118870,11 @@ type Tresolvconf = struct { Ftimeout uint32 } -func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__dns_parse_2 = func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32 + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_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)) + trc("tls=%v r=%v rlen=%v __ccgo_fp_callback=%v ctx=%v, (%v:)", tls, r, rlen, __ccgo_fp_callback, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var ancount, len1, qdcount, v1, v2 int32 @@ -118923,7 +118920,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr 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, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { return -int32(1) } p += uintptr(int32(10) + len1) @@ -121027,10 +121024,6 @@ func Xherror(tls *TLS, msg uintptr) { Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+1062, VaList(bp+8, v1, v2, Xhstrerror(tls, *(*int32)(unsafe.Pointer(X__h_errno_location(tls)))))) } -type Tcpu_set_t1 = struct { - F__bits [16]uint64 -} - var _msgs1 = [84]int8{'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) { @@ -122818,7 +122811,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return v22 } -func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) { bp := tls.Alloc(8192) defer tls.Free(8192) var h uintptr @@ -122908,7 +122901,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, if Int32FromUint16((*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) + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cb})))(tls, ctx, h) if ret != 0 { return ret } @@ -122921,9 +122914,11 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, return r1 } -func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__rtnetlink_enumerate_2 = func(*TLS, uintptr, uintptr) int32 + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_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)) + trc("tls=%v link_af=%v addr_af=%v __ccgo_fp_cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, __ccgo_fp_cb, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var fd, r int32 @@ -122932,9 +122927,9 @@ func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, if fd < 0 { return -int32(1) } - r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, __ccgo_fp_cb, ctx) if !(r != 0) { - r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, __ccgo_fp_cb, ctx) } X__syscall1(tls, int64(SYS_close), int64(fd)) return r @@ -128041,7 +128036,7 @@ func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r return 0 } -func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, tail uintptr) (r1 int32) { bp := tls.Alloc(128) defer tls.Free(128) var de, dir, p, p2, v11, v2, v7, v8 uintptr @@ -128150,7 +128145,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } } 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) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { return int32(GLOB_ABORTED) } return 0 @@ -128187,7 +128182,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } 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 { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { return int32(GLOB_ABORTED) } return 0 @@ -128239,7 +128234,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } else { v11 = __ccgo_ts } - r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, __ccgo_fp_errfunc, tail) if r != 0 { Xclosedir(tls, dir) return r @@ -128250,7 +128245,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag *(*int8)(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) { + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 @@ -128362,9 +128357,11 @@ func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { return 0 } -func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { +type t__ccgo_fp__Xglob_2 = func(*TLS, uintptr, int32) int32 + +func Xglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_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)) + trc("tls=%v pat=%v flags=%v __ccgo_fp_errfunc=%v g=%v, (%v:)", tls, pat, flags, __ccgo_fp_errfunc, g, origin(2)) defer func() { trc("-> %v", r) }() } bp := tls.Alloc(4128) @@ -128390,8 +128387,8 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in } offs = v1 error1 = 0 - if !(errfunc != 0) { - errfunc = __ccgo_fp(_ignore_err) + if !(__ccgo_fp_errfunc != 0) { + __ccgo_fp_errfunc = __ccgo_fp(_ignore_err) } if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs @@ -128410,7 +128407,7 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in 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) + error1 = _do_glob(tls, bp+16, *(*Tsize_t)(unsafe.Pointer(bp + 4112)), 0, *(*uintptr)(unsafe.Pointer(bp + 4120)), flags, __ccgo_fp_errfunc, bp+8) } Xfree(tls, p) } @@ -133634,9 +133631,11 @@ func Xremque(tls *TLS, element uintptr) { } } -func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { +type t__ccgo_fp__Xlsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -133652,7 +133651,7 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -133664,9 +133663,11 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, 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) { +type t__ccgo_fp__Xlfind_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -133682,7 +133683,7 @@ func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, co if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -133701,9 +133702,11 @@ type Tnode1 = struct { Fh int32 } -func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtdelete_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var a [97]uintptr @@ -133727,7 +133730,7 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { return uintptr(0) } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -133772,9 +133775,11 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { return parent } -func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { +type t__ccgo_fp__Xtdestroy_1 = func(*TLS, uintptr) + +func Xtdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) { if __ccgo_strace { - trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + trc("tls=%v root=%v __ccgo_fp_freekey=%v, (%v:)", tls, root, __ccgo_fp_freekey, origin(2)) } var r uintptr _ = r @@ -133782,17 +133787,19 @@ func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { 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) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_freekey) + if __ccgo_fp_freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) } Xfree(tls, r) } -func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtfind_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var c int32 @@ -133806,7 +133813,7 @@ func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -133894,9 +133901,11 @@ func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { return _rot(tls, p, n, BoolInt32(h0 < h1)) } -func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { +type t__ccgo_fp__Xtsearch_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r1) }() } var a [96]uintptr @@ -133916,7 +133925,7 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { return n } @@ -133952,26 +133961,28 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { return r } -func _walk(tls *TLS, r uintptr, action uintptr, d int32) { +func _walk(tls *TLS, r uintptr, __ccgo_fp_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, int32(_leaf), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_leaf), d) } else { - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_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, int32(_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, int32(_endorder), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_preorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_postorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_endorder), d) } } -func Xtwalk(tls *TLS, root uintptr, action uintptr) { +type t__ccgo_fp__Xtwalk_1 = func(*TLS, uintptr, int32, int32) + +func Xtwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) { if __ccgo_strace { - trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + trc("tls=%v root=%v __ccgo_fp_action=%v, (%v:)", tls, root, __ccgo_fp_action, origin(2)) } - _walk(tls, root, action, 0) + _walk(tls, root, __ccgo_fp_action, 0) } func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { @@ -143887,9 +143898,11 @@ func Xatoll(tls *TLS, s uintptr) (r int64) { return v5 } -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xbsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, base, nel, width, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var sign int32 @@ -143897,7 +143910,7 @@ func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, c _, _ = 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) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, try) if sign < 0 { nel /= uint64(2) } else { @@ -144167,7 +144180,7 @@ func _shr(tls *TLS, p uintptr, n int32) { *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= Uint64FromInt32(n) } -func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { +func _sift(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { bp := tls.Alloc(912) defer tls.Free(912) var i, v1, v2 int32 @@ -144179,10 +144192,10 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi 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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[113]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, rt, arg) >= 0 { v1 = i i++ (*(*[113]uintptr)(unsafe.Pointer(bp)))[v1] = lf @@ -144199,7 +144212,7 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi _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) { +func _trinkle(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_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 @@ -144213,13 +144226,13 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p (*(*[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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, stepson, arg) >= 0 { break } } @@ -144234,13 +144247,15 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p } if !(trusty != 0) { _cycle(tls, width, bp+16, i) - _sift(tls, head, width, cmp, arg, pshift, lp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, lp) } } -func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__X__qsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } bp := tls.Alloc(784) defer tls.Free(784) @@ -144278,14 +144293,14 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, } for head < high { if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[0]&uint64(3) == uint64(3) { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) _shr(tls, bp+768, int32(2)) pshift += int32(2) } else { if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= Uint64FromInt64(int64(high)-int64(head)) { - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+768, pshift, 0, bp) } else { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) } if pshift == int32(1) { _shl(tls, bp+768, int32(1)) @@ -144298,7 +144313,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, *(*Tsize_t)(unsafe.Pointer(bp + 768)) |= uint64(1) head += uintptr(width) } - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_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) @@ -144309,31 +144324,35 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, 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) + _trinkle(tls, head-uintptr((*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, __ccgo_fp_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) + _trinkle(tls, head-uintptr(width), width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } - X__qsort_r(tls, base, nel, width, cmp, arg) + X__qsort_r(tls, base, nel, width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_3 = func(*TLS, uintptr, uintptr) int32 + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) { if __ccgo_strace { - trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, origin(2)) } - X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), __ccgo_fp_cmp) } func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { diff --git a/vendor/modernc.org/libc/ccgo_linux_ppc64le.go b/vendor/modernc.org/libc/ccgo_linux_ppc64le.go index 9244f4445..594b075ab 100644 --- a/vendor/modernc.org/libc/ccgo_linux_ppc64le.go +++ b/vendor/modernc.org/libc/ccgo_linux_ppc64le.go @@ -178,6 +178,7 @@ 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__ = 1 const __DBL_MANT_DIG__ = 53 const __DBL_MAX_10_EXP__ = 308 const __DBL_MAX_EXP__ = 1024 @@ -218,6 +219,7 @@ 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__ = 1 const __FLT128_MANT_DIG__ = 113 const __FLT128_MAX_10_EXP__ = 4932 const __FLT128_MAX_EXP__ = 16384 @@ -233,6 +235,7 @@ 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__ = 1 const __FLT32X_MANT_DIG__ = 53 const __FLT32X_MAX_10_EXP__ = 308 const __FLT32X_MAX_EXP__ = 1024 @@ -248,6 +251,7 @@ 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__ = 1 const __FLT32_MANT_DIG__ = 24 const __FLT32_MAX_10_EXP__ = 38 const __FLT32_MAX_EXP__ = 128 @@ -263,6 +267,7 @@ 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__ = 1 const __FLT64X_MANT_DIG__ = 113 const __FLT64X_MAX_10_EXP__ = 4932 const __FLT64X_MAX_EXP__ = 16384 @@ -278,6 +283,7 @@ 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__ = 1 const __FLT64_MANT_DIG__ = 53 const __FLT64_MAX_10_EXP__ = 308 const __FLT64_MAX_EXP__ = 1024 @@ -295,6 +301,7 @@ 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__ = 1 const __FLT_MANT_DIG__ = 24 const __FLT_MAX_10_EXP__ = 38 const __FLT_MAX_EXP__ = 128 @@ -330,14 +337,15 @@ 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__ = 1 +const __GNUC_PATCHLEVEL__ = 0 const __GNUC_STDC_INLINE__ = 1 -const __GNUC__ = 10 -const __GXX_ABI_VERSION = 1014 +const __GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-32LE" +const __GNUC__ = 14 +const __GXX_ABI_VERSION = 1019 const __HAVE_BSWAP__ = 1 const __HAVE_SPECULATION_SAFE_VALUE = 1 -const __HTM__ = 1 const __INT16_MAX__ = 32767 const __INT32_MAX__ = 2147483647 const __INT32_TYPE__ = 0 @@ -373,6 +381,7 @@ 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__ = 1 const __LDBL_MANT_DIG__ = 53 const __LDBL_MAX_10_EXP__ = 308 const __LDBL_MAX_EXP__ = 1024 @@ -411,6 +420,7 @@ const __RSQRTEF__ = 1 const __RSQRTE__ = 1 const __SCHAR_MAX__ = 127 const __SCHAR_WIDTH__ = 8 +const __SET_FPSCR_RN_RETURNS_FPSCR__ = 1 const __SHRT_MAX__ = 32767 const __SHRT_WIDTH__ = 16 const __SIG_ATOMIC_MAX__ = 2147483647 @@ -418,7 +428,9 @@ const __SIG_ATOMIC_MIN__ = -2147483648 const __SIG_ATOMIC_TYPE__ = 0 const __SIG_ATOMIC_WIDTH__ = 32 const __SIZEOF_DOUBLE__ = 8 +const __SIZEOF_FLOAT128__ = 16 const __SIZEOF_FLOAT__ = 4 +const __SIZEOF_IEEE128__ = 16 const __SIZEOF_INT128__ = 16 const __SIZEOF_INT__ = 4 const __SIZEOF_LONG_DOUBLE__ = 8 @@ -437,7 +449,6 @@ const __STDC_VERSION__ = 199901 const __STDC__ = 1 const __STRICT_ANSI__ = 1 const __STRUCT_PARM_ALIGN__ = 16 -const __TM_FENCE__ = 1 const __UINT16_MAX__ = 65535 const __UINT32_MAX__ = 4294967295 const __UINT64_MAX__ = 18446744073709551615 @@ -455,7 +466,7 @@ const __UINT_LEAST8_MAX__ = 255 const __USE_TIME_BITS64 = 1 const __VEC_ELEMENT_REG_ORDER__ = 1234 const __VEC__ = 10206 -const __VERSION__ = "10.2.1 20210110" +const __VERSION__ = "14.2.0" const __VSX__ = 1 const __WCHAR_MAX__ = 2147483647 const __WCHAR_MIN__ = -2147483648 @@ -25053,9 +25064,13 @@ func Xrewinddir(tls *TLS, dir uintptr) { ___unlock(tls, dir+20) } -func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { +type t__ccgo_fp__Xscandir_2 = func(*TLS, uintptr) int32 + +type t__ccgo_fp__Xscandir_3 = func(*TLS, uintptr, uintptr) int32 + +func Xscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v res=%v __ccgo_fp_sel=%v __ccgo_fp_cmp=%v, (%v:)", tls, path, res, __ccgo_fp_sel, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var cnt, len1, v2, v3 Tsize_t @@ -25077,7 +25092,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r if !(v1 != 0) { break } - if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + if __ccgo_fp_sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_sel})))(tls, de) != 0) { continue } if cnt >= len1 { @@ -25115,8 +25130,8 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r return -int32(1) } *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno - if cmp != 0 { - Xqsort(tls, names, cnt, uint64(8), cmp) + if __ccgo_fp_cmp != 0 { + Xqsort(tls, names, cnt, uint64(8), __ccgo_fp_cmp) } *(*uintptr)(unsafe.Pointer(res)) = names return Int32FromUint64(cnt) @@ -25863,9 +25878,11 @@ func X__funcs_on_quick_exit(tls *TLS) { } } -func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { +type t__ccgo_fp__Xat_quick_exit_0 = func(*TLS) + +func Xat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) { if __ccgo_strace { - trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + trc("tls=%v __ccgo_fp_func=%v, (%v:)", tls, __ccgo_fp_func, origin(2)) defer func() { trc("-> %v", r1) }() } var r, v1 int32 @@ -25877,7 +25894,7 @@ func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { } else { v1 = _count _count++ - _funcs[v1] = func1 + _funcs[v1] = __ccgo_fp_func } ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) return r @@ -28398,15 +28415,17 @@ type TFTW = struct { Flevel int32 } -func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { +type t__ccgo_fp__Xftw_1 = func(*TLS, uintptr, uintptr, int32) int32 + +func Xftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v, (%v:)", tls, path, __ccgo_fp_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)) + return Xnftw(tls, path, __ccgo_fp_fn, fd_limit, int32(FTW_PHYS)) } const STATX_ALL = 4095 @@ -31343,14 +31362,6 @@ func Xfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) { return int32(X__syscall_ret(tls, Uint64FromInt64(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 } @@ -114310,15 +114321,7 @@ func Xgethostid(tls *TLS) (r int64) { 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 +type t__ucontext1 = Tucontext_t1 func X__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) { if __ccgo_strace { @@ -115466,7 +115469,7 @@ type Thistory = struct { Fbase int32 } -func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { +func _do_nftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { bp := tls.Alloc(192) defer tls.Free(192) var d, de, v10 uintptr @@ -115572,7 +115575,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } } 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+176) + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+176) r = v7 } if v8 && v7 != 0 { @@ -115613,7 +115616,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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+144) + v11 = _do_nftw(tls, path, __ccgo_fp_fn, fd_limit-int32(1), flags, bp+144) r = v11 if v11 != 0 { Xclosedir(tls, d) @@ -115628,7 +115631,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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+176) + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+176) r = v12 } if v13 && v12 != 0 { @@ -115637,9 +115640,11 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h return 0 } -func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { +type t__ccgo_fp__Xnftw_1 = func(*TLS, uintptr, uintptr, int32, uintptr) int32 + +func Xnftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, __ccgo_fp_fn, fd_limit, flags, origin(2)) defer func() { trc("-> %v", r1) }() } bp := tls.Alloc(4112) @@ -115659,7 +115664,7 @@ func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 } 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)) + r = _do_nftw(tls, bp+4, __ccgo_fp_fn, fd_limit, flags, UintptrFromInt32(0)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return r } @@ -116439,8 +116444,6 @@ type Tsockaddr_storage = struct { F__ss_align uint64 } -type t__ucontext2 = Tucontext_t2 - var _lock2 [1]int32 var _log_ident [32]uint8 var _log_opt int32 @@ -116878,14 +116881,6 @@ 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)) @@ -118701,13 +118696,6 @@ 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 @@ -118715,14 +118703,6 @@ type Tns_tsig_key = struct { 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 @@ -119372,9 +119352,11 @@ type Tresolvconf = struct { Ftimeout uint32 } -func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__dns_parse_2 = func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32 + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_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)) + trc("tls=%v r=%v rlen=%v __ccgo_fp_callback=%v ctx=%v, (%v:)", tls, r, rlen, __ccgo_fp_callback, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var ancount, len1, qdcount, v1, v2 int32 @@ -119420,7 +119402,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr 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, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { return -int32(1) } p += uintptr(int32(10) + len1) @@ -121638,18 +121620,6 @@ func Xherror(tls *TLS, msg uintptr) { Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+1114, 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) { @@ -123461,7 +123431,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return v22 } -func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) { bp := tls.Alloc(8192) defer tls.Free(8192) var h uintptr @@ -123551,7 +123521,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, if Int32FromUint16((*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) + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cb})))(tls, ctx, h) if ret != 0 { return ret } @@ -123564,9 +123534,11 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, return r1 } -func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__rtnetlink_enumerate_2 = func(*TLS, uintptr, uintptr) int32 + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_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)) + trc("tls=%v link_af=%v addr_af=%v __ccgo_fp_cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, __ccgo_fp_cb, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var fd, r int32 @@ -123575,9 +123547,9 @@ func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, if fd < 0 { return -int32(1) } - r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, __ccgo_fp_cb, ctx) if !(r != 0) { - r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, __ccgo_fp_cb, ctx) } X__syscall1(tls, int64(SYS_close), int64(fd)) return r @@ -128958,7 +128930,7 @@ func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r return 0 } -func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, tail uintptr) (r1 int32) { bp := tls.Alloc(144) defer tls.Free(144) var de, dir, p, p2, v11, v2, v7, v8 uintptr @@ -129067,7 +129039,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } } 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) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { return int32(GLOB_ABORTED) } return 0 @@ -129104,7 +129076,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } 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 { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { return int32(GLOB_ABORTED) } return 0 @@ -129156,7 +129128,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } else { v11 = __ccgo_ts } - r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, __ccgo_fp_errfunc, tail) if r != 0 { Xclosedir(tls, dir) return r @@ -129167,7 +129139,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag *(*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) { + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 @@ -129279,9 +129251,11 @@ func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { return 0 } -func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { +type t__ccgo_fp__Xglob_2 = func(*TLS, uintptr, int32) int32 + +func Xglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_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)) + trc("tls=%v pat=%v flags=%v __ccgo_fp_errfunc=%v g=%v, (%v:)", tls, pat, flags, __ccgo_fp_errfunc, g, origin(2)) defer func() { trc("-> %v", r) }() } bp := tls.Alloc(4128) @@ -129307,8 +129281,8 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in } offs = v1 error1 = 0 - if !(errfunc != 0) { - errfunc = __ccgo_fp(_ignore_err) + if !(__ccgo_fp_errfunc != 0) { + __ccgo_fp_errfunc = __ccgo_fp(_ignore_err) } if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs @@ -129327,7 +129301,7 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in 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) + error1 = _do_glob(tls, bp+16, *(*Tsize_t)(unsafe.Pointer(bp + 4112)), 0, *(*uintptr)(unsafe.Pointer(bp + 4120)), flags, __ccgo_fp_errfunc, bp+8) } Xfree(tls, p) } @@ -134551,9 +134525,11 @@ func Xremque(tls *TLS, element uintptr) { } } -func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { +type t__ccgo_fp__Xlsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -134569,7 +134545,7 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -134581,9 +134557,11 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, 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) { +type t__ccgo_fp__Xlfind_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -134599,7 +134577,7 @@ func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, co if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -134618,9 +134596,11 @@ type Tnode1 = struct { Fh int32 } -func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtdelete_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var a [97]uintptr @@ -134644,7 +134624,7 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { return uintptr(0) } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134689,9 +134669,11 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { return parent } -func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { +type t__ccgo_fp__Xtdestroy_1 = func(*TLS, uintptr) + +func Xtdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) { if __ccgo_strace { - trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + trc("tls=%v root=%v __ccgo_fp_freekey=%v, (%v:)", tls, root, __ccgo_fp_freekey, origin(2)) } var r uintptr _ = r @@ -134699,17 +134681,19 @@ func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { 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) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_freekey) + if __ccgo_fp_freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) } Xfree(tls, r) } -func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtfind_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var c int32 @@ -134723,7 +134707,7 @@ func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134811,9 +134795,11 @@ func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { return _rot(tls, p, n, BoolInt32(h0 < h1)) } -func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { +type t__ccgo_fp__Xtsearch_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r1) }() } var a [96]uintptr @@ -134833,7 +134819,7 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { return n } @@ -134869,26 +134855,28 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { return r } -func _walk(tls *TLS, r uintptr, action uintptr, d int32) { +func _walk(tls *TLS, r uintptr, __ccgo_fp_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, int32(_leaf), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_leaf), d) } else { - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_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, int32(_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, int32(_endorder), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_preorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_postorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_endorder), d) } } -func Xtwalk(tls *TLS, root uintptr, action uintptr) { +type t__ccgo_fp__Xtwalk_1 = func(*TLS, uintptr, int32, int32) + +func Xtwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) { if __ccgo_strace { - trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + trc("tls=%v root=%v __ccgo_fp_action=%v, (%v:)", tls, root, __ccgo_fp_action, origin(2)) } - _walk(tls, root, action, 0) + _walk(tls, root, __ccgo_fp_action, 0) } func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { @@ -134899,8 +134887,6 @@ func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { return int32(X__syscall_ret(tls, Uint64FromInt64(___syscall_cp(tls, int64(SYS_poll), int64(fds), Int64FromUint64(n), int64(timeout), 0, 0, 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)) @@ -134936,8 +134922,6 @@ func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32 return int32(X__syscall_ret(tls, Uint64FromInt64(___syscall_cp(tls, int64(SYS_ppoll), int64(fds), Int64FromUint64(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)) @@ -134978,14 +134962,6 @@ func Xpselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts ui return int32(X__syscall_ret(tls, Uint64FromInt64(___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)) @@ -135505,14 +135481,6 @@ func Xsigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) { 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)) @@ -144886,9 +144854,11 @@ func Xatoll(tls *TLS, s uintptr) (r int64) { return v5 } -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xbsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, base, nel, width, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var sign int32 @@ -144896,7 +144866,7 @@ func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, c _, _ = 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) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, try) if sign < 0 { nel /= uint64(2) } else { @@ -145166,7 +145136,7 @@ func _shr(tls *TLS, p uintptr, n int32) { *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= Uint64FromInt32(n) } -func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { +func _sift(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { bp := tls.Alloc(912) defer tls.Free(912) var i, v1, v2 int32 @@ -145178,10 +145148,10 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi 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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[113]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, rt, arg) >= 0 { v1 = i i++ (*(*[113]uintptr)(unsafe.Pointer(bp)))[v1] = lf @@ -145198,7 +145168,7 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi _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) { +func _trinkle(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_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 @@ -145212,13 +145182,13 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p (*(*[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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, stepson, arg) >= 0 { break } } @@ -145233,13 +145203,15 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p } if !(trusty != 0) { _cycle(tls, width, bp+16, i) - _sift(tls, head, width, cmp, arg, pshift, lp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, lp) } } -func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__X__qsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } bp := tls.Alloc(784) defer tls.Free(784) @@ -145277,14 +145249,14 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, } for head < high { if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[0]&uint64(3) == uint64(3) { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) _shr(tls, bp+768, int32(2)) pshift += int32(2) } else { if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= Uint64FromInt64(int64(high)-int64(head)) { - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+768, pshift, 0, bp) } else { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) } if pshift == int32(1) { _shl(tls, bp+768, int32(1)) @@ -145297,7 +145269,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, *(*Tsize_t)(unsafe.Pointer(bp + 768)) |= uint64(1) head += uintptr(width) } - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_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) @@ -145308,31 +145280,35 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, 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) + _trinkle(tls, head-uintptr((*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, __ccgo_fp_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) + _trinkle(tls, head-uintptr(width), width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } - X__qsort_r(tls, base, nel, width, cmp, arg) + X__qsort_r(tls, base, nel, width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_3 = func(*TLS, uintptr, uintptr) int32 + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) { if __ccgo_strace { - trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, origin(2)) } - X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), __ccgo_fp_cmp) } func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { diff --git a/vendor/modernc.org/libc/ccgo_linux_riscv64.go b/vendor/modernc.org/libc/ccgo_linux_riscv64.go index 7a0edb178..5d28c7f72 100644 --- a/vendor/modernc.org/libc/ccgo_linux_riscv64.go +++ b/vendor/modernc.org/libc/ccgo_linux_riscv64.go @@ -24811,9 +24811,13 @@ func Xrewinddir(tls *TLS, dir uintptr) { ___unlock(tls, dir+20) } -func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { +type t__ccgo_fp__Xscandir_2 = func(*TLS, uintptr) int32 + +type t__ccgo_fp__Xscandir_3 = func(*TLS, uintptr, uintptr) int32 + +func Xscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v res=%v __ccgo_fp_sel=%v __ccgo_fp_cmp=%v, (%v:)", tls, path, res, __ccgo_fp_sel, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var cnt, len1, v2, v3 Tsize_t @@ -24835,7 +24839,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r if !(v1 != 0) { break } - if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + if __ccgo_fp_sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_sel})))(tls, de) != 0) { continue } if cnt >= len1 { @@ -24873,8 +24877,8 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r return -int32(1) } *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno - if cmp != 0 { - Xqsort(tls, names, cnt, uint64(8), cmp) + if __ccgo_fp_cmp != 0 { + Xqsort(tls, names, cnt, uint64(8), __ccgo_fp_cmp) } *(*uintptr)(unsafe.Pointer(res)) = names return Int32FromUint64(cnt) @@ -25620,9 +25624,11 @@ func X__funcs_on_quick_exit(tls *TLS) { } } -func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { +type t__ccgo_fp__Xat_quick_exit_0 = func(*TLS) + +func Xat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) { if __ccgo_strace { - trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + trc("tls=%v __ccgo_fp_func=%v, (%v:)", tls, __ccgo_fp_func, origin(2)) defer func() { trc("-> %v", r1) }() } var r, v1 int32 @@ -25634,7 +25640,7 @@ func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { } else { v1 = _count _count++ - _funcs[v1] = func1 + _funcs[v1] = __ccgo_fp_func } ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) return r @@ -28198,15 +28204,17 @@ type TFTW = struct { Flevel int32 } -func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { +type t__ccgo_fp__Xftw_1 = func(*TLS, uintptr, uintptr, int32) int32 + +func Xftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v, (%v:)", tls, path, __ccgo_fp_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)) + return Xnftw(tls, path, __ccgo_fp_fn, fd_limit, int32(FTW_PHYS)) } const STATX_ALL = 4095 @@ -115234,7 +115242,7 @@ type Thistory = struct { Fbase int32 } -func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { +func _do_nftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { bp := tls.Alloc(176) defer tls.Free(176) var d, de, v10 uintptr @@ -115340,7 +115348,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } } 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) + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+160) r = v7 } if v8 && v7 != 0 { @@ -115381,7 +115389,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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) + v11 = _do_nftw(tls, path, __ccgo_fp_fn, fd_limit-int32(1), flags, bp+128) r = v11 if v11 != 0 { Xclosedir(tls, d) @@ -115396,7 +115404,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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) + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+160) r = v12 } if v13 && v12 != 0 { @@ -115405,9 +115413,11 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h return 0 } -func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { +type t__ccgo_fp__Xnftw_1 = func(*TLS, uintptr, uintptr, int32, uintptr) int32 + +func Xnftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, __ccgo_fp_fn, fd_limit, flags, origin(2)) defer func() { trc("-> %v", r1) }() } bp := tls.Alloc(4112) @@ -115427,7 +115437,7 @@ func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 } 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)) + r = _do_nftw(tls, bp+4, __ccgo_fp_fn, fd_limit, flags, UintptrFromInt32(0)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return r } @@ -118363,13 +118373,6 @@ 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 @@ -118377,14 +118380,6 @@ type Tns_tsig_key = struct { 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 @@ -119034,9 +119029,11 @@ type Tresolvconf = struct { Ftimeout uint32 } -func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__dns_parse_2 = func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32 + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_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)) + trc("tls=%v r=%v rlen=%v __ccgo_fp_callback=%v ctx=%v, (%v:)", tls, r, rlen, __ccgo_fp_callback, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var ancount, len1, qdcount, v1, v2 int32 @@ -119082,7 +119079,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr 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, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { return -int32(1) } p += uintptr(int32(10) + len1) @@ -121186,10 +121183,6 @@ func Xherror(tls *TLS, msg uintptr) { Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+1111, VaList(bp+8, v1, v2, Xhstrerror(tls, *(*int32)(unsafe.Pointer(X__h_errno_location(tls)))))) } -type Tcpu_set_t1 = struct { - F__bits [16]uint64 -} - 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) { @@ -122977,7 +122970,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return v22 } -func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) { bp := tls.Alloc(8192) defer tls.Free(8192) var h uintptr @@ -123067,7 +123060,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, if Int32FromUint16((*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) + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cb})))(tls, ctx, h) if ret != 0 { return ret } @@ -123080,9 +123073,11 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, return r1 } -func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__rtnetlink_enumerate_2 = func(*TLS, uintptr, uintptr) int32 + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_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)) + trc("tls=%v link_af=%v addr_af=%v __ccgo_fp_cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, __ccgo_fp_cb, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var fd, r int32 @@ -123091,9 +123086,9 @@ func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, if fd < 0 { return -int32(1) } - r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, __ccgo_fp_cb, ctx) if !(r != 0) { - r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, __ccgo_fp_cb, ctx) } X__syscall1(tls, int64(SYS_close), int64(fd)) return r @@ -128200,7 +128195,7 @@ func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r return 0 } -func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, tail uintptr) (r1 int32) { bp := tls.Alloc(128) defer tls.Free(128) var de, dir, p, p2, v11, v2, v7, v8 uintptr @@ -128309,7 +128304,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } } 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) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { return int32(GLOB_ABORTED) } return 0 @@ -128346,7 +128341,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } 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 { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { return int32(GLOB_ABORTED) } return 0 @@ -128398,7 +128393,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } else { v11 = __ccgo_ts } - r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, __ccgo_fp_errfunc, tail) if r != 0 { Xclosedir(tls, dir) return r @@ -128409,7 +128404,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag *(*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) { + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 @@ -128521,9 +128516,11 @@ func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { return 0 } -func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { +type t__ccgo_fp__Xglob_2 = func(*TLS, uintptr, int32) int32 + +func Xglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_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)) + trc("tls=%v pat=%v flags=%v __ccgo_fp_errfunc=%v g=%v, (%v:)", tls, pat, flags, __ccgo_fp_errfunc, g, origin(2)) defer func() { trc("-> %v", r) }() } bp := tls.Alloc(4128) @@ -128549,8 +128546,8 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in } offs = v1 error1 = 0 - if !(errfunc != 0) { - errfunc = __ccgo_fp(_ignore_err) + if !(__ccgo_fp_errfunc != 0) { + __ccgo_fp_errfunc = __ccgo_fp(_ignore_err) } if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs @@ -128569,7 +128566,7 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in 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) + error1 = _do_glob(tls, bp+16, *(*Tsize_t)(unsafe.Pointer(bp + 4112)), 0, *(*uintptr)(unsafe.Pointer(bp + 4120)), flags, __ccgo_fp_errfunc, bp+8) } Xfree(tls, p) } @@ -133793,9 +133790,11 @@ func Xremque(tls *TLS, element uintptr) { } } -func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { +type t__ccgo_fp__Xlsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -133811,7 +133810,7 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -133823,9 +133822,11 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, 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) { +type t__ccgo_fp__Xlfind_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -133841,7 +133842,7 @@ func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, co if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -133860,9 +133861,11 @@ type Tnode1 = struct { Fh int32 } -func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtdelete_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var a [97]uintptr @@ -133886,7 +133889,7 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { return uintptr(0) } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -133931,9 +133934,11 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { return parent } -func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { +type t__ccgo_fp__Xtdestroy_1 = func(*TLS, uintptr) + +func Xtdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) { if __ccgo_strace { - trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + trc("tls=%v root=%v __ccgo_fp_freekey=%v, (%v:)", tls, root, __ccgo_fp_freekey, origin(2)) } var r uintptr _ = r @@ -133941,17 +133946,19 @@ func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { 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) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_freekey) + if __ccgo_fp_freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) } Xfree(tls, r) } -func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtfind_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var c int32 @@ -133965,7 +133972,7 @@ func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134053,9 +134060,11 @@ func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { return _rot(tls, p, n, BoolInt32(h0 < h1)) } -func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { +type t__ccgo_fp__Xtsearch_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r1) }() } var a [96]uintptr @@ -134075,7 +134084,7 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { return n } @@ -134111,26 +134120,28 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { return r } -func _walk(tls *TLS, r uintptr, action uintptr, d int32) { +func _walk(tls *TLS, r uintptr, __ccgo_fp_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, int32(_leaf), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_leaf), d) } else { - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_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, int32(_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, int32(_endorder), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_preorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_postorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_endorder), d) } } -func Xtwalk(tls *TLS, root uintptr, action uintptr) { +type t__ccgo_fp__Xtwalk_1 = func(*TLS, uintptr, int32, int32) + +func Xtwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) { if __ccgo_strace { - trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + trc("tls=%v root=%v __ccgo_fp_action=%v, (%v:)", tls, root, __ccgo_fp_action, origin(2)) } - _walk(tls, root, action, 0) + _walk(tls, root, __ccgo_fp_action, 0) } func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { @@ -143819,9 +143830,11 @@ func Xatoll(tls *TLS, s uintptr) (r int64) { return v5 } -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xbsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, base, nel, width, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var sign int32 @@ -143829,7 +143842,7 @@ func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, c _, _ = 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) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, try) if sign < 0 { nel /= uint64(2) } else { @@ -144090,7 +144103,7 @@ func _shr(tls *TLS, p uintptr, n int32) { *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= Uint64FromInt32(n) } -func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { +func _sift(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { bp := tls.Alloc(912) defer tls.Free(912) var i, v1, v2 int32 @@ -144102,10 +144115,10 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi 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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[113]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, rt, arg) >= 0 { v1 = i i++ (*(*[113]uintptr)(unsafe.Pointer(bp)))[v1] = lf @@ -144122,7 +144135,7 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi _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) { +func _trinkle(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_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 @@ -144136,13 +144149,13 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p (*(*[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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, stepson, arg) >= 0 { break } } @@ -144157,13 +144170,15 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p } if !(trusty != 0) { _cycle(tls, width, bp+16, i) - _sift(tls, head, width, cmp, arg, pshift, lp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, lp) } } -func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__X__qsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } bp := tls.Alloc(784) defer tls.Free(784) @@ -144201,14 +144216,14 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, } for head < high { if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[0]&uint64(3) == uint64(3) { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) _shr(tls, bp+768, int32(2)) pshift += int32(2) } else { if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= Uint64FromInt64(int64(high)-int64(head)) { - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+768, pshift, 0, bp) } else { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) } if pshift == int32(1) { _shl(tls, bp+768, int32(1)) @@ -144221,7 +144236,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, *(*Tsize_t)(unsafe.Pointer(bp + 768)) |= uint64(1) head += uintptr(width) } - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_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) @@ -144232,31 +144247,35 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, 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) + _trinkle(tls, head-uintptr((*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, __ccgo_fp_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) + _trinkle(tls, head-uintptr(width), width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } - X__qsort_r(tls, base, nel, width, cmp, arg) + X__qsort_r(tls, base, nel, width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_3 = func(*TLS, uintptr, uintptr) int32 + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) { if __ccgo_strace { - trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, origin(2)) } - X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), __ccgo_fp_cmp) } func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { diff --git a/vendor/modernc.org/libc/ccgo_linux_s390x.go b/vendor/modernc.org/libc/ccgo_linux_s390x.go index 9adb2e4c8..994152718 100644 --- a/vendor/modernc.org/libc/ccgo_linux_s390x.go +++ b/vendor/modernc.org/libc/ccgo_linux_s390x.go @@ -24882,9 +24882,13 @@ func Xrewinddir(tls *TLS, dir uintptr) { ___unlock(tls, dir+20) } -func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r int32) { +type t__ccgo_fp__Xscandir_2 = func(*TLS, uintptr) int32 + +type t__ccgo_fp__Xscandir_3 = func(*TLS, uintptr, uintptr) int32 + +func Xscandir(tls *TLS, path uintptr, res uintptr, __ccgo_fp_sel uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v res=%v __ccgo_fp_sel=%v __ccgo_fp_cmp=%v, (%v:)", tls, path, res, __ccgo_fp_sel, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var cnt, len1, v2, v3 Tsize_t @@ -24906,7 +24910,7 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r if !(v1 != 0) { break } - if sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{sel})))(tls, de) != 0) { + if __ccgo_fp_sel != 0 && !((*(*func(*TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_sel})))(tls, de) != 0) { continue } if cnt >= len1 { @@ -24944,8 +24948,8 @@ func Xscandir(tls *TLS, path uintptr, res uintptr, sel uintptr, cmp uintptr) (r return -int32(1) } *(*int32)(unsafe.Pointer(X__errno_location(tls))) = old_errno - if cmp != 0 { - Xqsort(tls, names, cnt, uint64(8), cmp) + if __ccgo_fp_cmp != 0 { + Xqsort(tls, names, cnt, uint64(8), __ccgo_fp_cmp) } *(*uintptr)(unsafe.Pointer(res)) = names return Int32FromUint64(cnt) @@ -25692,9 +25696,11 @@ func X__funcs_on_quick_exit(tls *TLS) { } } -func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { +type t__ccgo_fp__Xat_quick_exit_0 = func(*TLS) + +func Xat_quick_exit(tls *TLS, __ccgo_fp_func uintptr) (r1 int32) { if __ccgo_strace { - trc("tls=%v func1=%v, (%v:)", tls, func1, origin(2)) + trc("tls=%v __ccgo_fp_func=%v, (%v:)", tls, __ccgo_fp_func, origin(2)) defer func() { trc("-> %v", r1) }() } var r, v1 int32 @@ -25706,7 +25712,7 @@ func Xat_quick_exit(tls *TLS, func1 uintptr) (r1 int32) { } else { v1 = _count _count++ - _funcs[v1] = func1 + _funcs[v1] = __ccgo_fp_func } ___unlock(tls, uintptr(unsafe.Pointer(&_lock))) return r @@ -28199,15 +28205,17 @@ type TFTW = struct { Flevel int32 } -func Xftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32) (r int32) { +type t__ccgo_fp__Xftw_1 = func(*TLS, uintptr, uintptr, int32) int32 + +func Xftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v, (%v:)", tls, path, __ccgo_fp_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)) + return Xnftw(tls, path, __ccgo_fp_fn, fd_limit, int32(FTW_PHYS)) } const STATX_ALL = 4095 @@ -31109,14 +31117,6 @@ func Xfremovexattr(tls *TLS, fd int32, name uintptr) (r int32) { return int32(X__syscall_ret(tls, Uint64FromInt64(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_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t -} - func _dummy4(tls *TLS, msg uintptr, lm uintptr) (r uintptr) { return msg } @@ -114017,15 +114017,7 @@ func Xgethostid(tls *TLS) (r int64) { const optpos = 0 -type Tucontext_t3 = struct { - Fuc_flags uint64 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t -} - -type t__ucontext1 = Tucontext_t3 +type t__ucontext1 = Tucontext_t1 func X__getopt_msg(tls *TLS, a uintptr, b uintptr, c uintptr, l Tsize_t) { if __ccgo_strace { @@ -115173,7 +115165,7 @@ type Thistory = struct { Fbase int32 } -func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { +func _do_nftw(tls *TLS, path uintptr, __ccgo_fp_fn uintptr, fd_limit int32, flags int32, h uintptr) (r1 int32) { bp := tls.Alloc(192) defer tls.Free(192) var d, de, v10 uintptr @@ -115279,7 +115271,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } } 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+176) + v7 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+176) r = v7 } if v8 && v7 != 0 { @@ -115320,7 +115312,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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+144) + v11 = _do_nftw(tls, path, __ccgo_fp_fn, fd_limit-int32(1), flags, bp+144) r = v11 if v11 != 0 { Xclosedir(tls, d) @@ -115335,7 +115327,7 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h } *(*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+176) + v12 = (*(*func(*TLS, uintptr, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_fn})))(tls, path, bp, type1, bp+176) r = v12 } if v13 && v12 != 0 { @@ -115344,9 +115336,11 @@ func _do_nftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32, h return 0 } -func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 int32) { +type t__ccgo_fp__Xnftw_1 = func(*TLS, uintptr, uintptr, int32, uintptr) int32 + +func Xnftw(tls *TLS, path uintptr, __ccgo_fp_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)) + trc("tls=%v path=%v __ccgo_fp_fn=%v fd_limit=%v flags=%v, (%v:)", tls, path, __ccgo_fp_fn, fd_limit, flags, origin(2)) defer func() { trc("-> %v", r1) }() } bp := tls.Alloc(4112) @@ -115366,7 +115360,7 @@ func Xnftw(tls *TLS, path uintptr, fn uintptr, fd_limit int32, flags int32) (r1 } 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)) + r = _do_nftw(tls, bp+4, __ccgo_fp_fn, fd_limit, flags, UintptrFromInt32(0)) _pthread_setcancelstate(tls, *(*int32)(unsafe.Pointer(bp)), uintptr(0)) return r } @@ -116146,8 +116140,6 @@ type Tsockaddr_storage = struct { F__ss_align uint64 } -type t__ucontext2 = Tucontext_t2 - var _lock2 [1]int32 var _log_ident [32]uint8 var _log_opt int32 @@ -116551,14 +116543,6 @@ const SA = 194 const SB = 244 const bittab = 0 -type Tucontext_t4 = struct { - Fuc_flags uint64 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t - Fuc_sigmask Tsigset_t -} - func Xbtowc(tls *TLS, c int32) (r Twint_t) { if __ccgo_strace { trc("tls=%v c=%v, (%v:)", tls, c, origin(2)) @@ -118374,13 +118358,6 @@ 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 @@ -118388,14 +118365,6 @@ type Tns_tsig_key = struct { 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 @@ -119045,9 +119014,11 @@ type Tresolvconf = struct { Ftimeout uint32 } -func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__dns_parse_2 = func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32 + +func X__dns_parse(tls *TLS, r uintptr, rlen int32, __ccgo_fp_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)) + trc("tls=%v r=%v rlen=%v __ccgo_fp_callback=%v ctx=%v, (%v:)", tls, r, rlen, __ccgo_fp_callback, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var ancount, len1, qdcount, v1, v2 int32 @@ -119093,7 +119064,7 @@ func X__dns_parse(tls *TLS, r uintptr, rlen int32, callback uintptr, ctx uintptr 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, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { + if (*(*func(*TLS, uintptr, int32, uintptr, int32, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_callback})))(tls, ctx, Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 1))), p+uintptr(10), len1, r, rlen) < 0 { return -int32(1) } p += uintptr(int32(10) + len1) @@ -121311,18 +121282,6 @@ func Xherror(tls *TLS, msg uintptr) { Xfprintf(tls, uintptr(unsafe.Pointer(&X__stderr_FILE)), __ccgo_ts+1102, 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_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t -} - 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) { @@ -123134,7 +123093,7 @@ func X__lookup_serv(tls *TLS, buf uintptr, name uintptr, proto int32, socktype i return v22 } -func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, cb uintptr, ctx uintptr) (r1 int32) { +func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, __ccgo_fp_cb uintptr, ctx uintptr) (r1 int32) { bp := tls.Alloc(8192) defer tls.Free(8192) var h uintptr @@ -123224,7 +123183,7 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, if Int32FromUint16((*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) + ret = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cb})))(tls, ctx, h) if ret != 0 { return ret } @@ -123237,9 +123196,11 @@ func ___netlink_enumerate(tls *TLS, fd int32, seq uint32, type1 int32, af int32, return r1 } -func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, ctx uintptr) (r1 int32) { +type t__ccgo_fp__X__rtnetlink_enumerate_2 = func(*TLS, uintptr, uintptr) int32 + +func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, __ccgo_fp_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)) + trc("tls=%v link_af=%v addr_af=%v __ccgo_fp_cb=%v ctx=%v, (%v:)", tls, link_af, addr_af, __ccgo_fp_cb, ctx, origin(2)) defer func() { trc("-> %v", r1) }() } var fd, r int32 @@ -123248,9 +123209,9 @@ func X__rtnetlink_enumerate(tls *TLS, link_af int32, addr_af int32, cb uintptr, if fd < 0 { return -int32(1) } - r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(1), int32(RTM_GETLINK), link_af, __ccgo_fp_cb, ctx) if !(r != 0) { - r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, cb, ctx) + r = ___netlink_enumerate(tls, fd, uint32(2), int32(RTM_GETADDR), addr_af, __ccgo_fp_cb, ctx) } X__syscall1(tls, int64(SYS_close), int64(fd)) return r @@ -128631,7 +128592,7 @@ func _append(tls *TLS, tail uintptr, name uintptr, len1 Tsize_t, mark int32) (r return 0 } -func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, errfunc uintptr, tail uintptr) (r1 int32) { +func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flags int32, __ccgo_fp_errfunc uintptr, tail uintptr) (r1 int32) { bp := tls.Alloc(144) defer tls.Free(144) var de, dir, p, p2, v11, v2, v7, v8 uintptr @@ -128740,7 +128701,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } } 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) { + if *(*int32)(unsafe.Pointer(X__errno_location(tls))) != int32(ENOENT) && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0) { return int32(GLOB_ABORTED) } return 0 @@ -128777,7 +128738,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } 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 { + if (*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_errfunc})))(tls, buf, *(*int32)(unsafe.Pointer(X__errno_location(tls)))) != 0 || flags&int32(GLOB_ERR) != 0 { return int32(GLOB_ABORTED) } return 0 @@ -128829,7 +128790,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag } else { v11 = __ccgo_ts } - r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, errfunc, tail) + r = _do_glob(tls, buf, pos+l, Int32FromUint8((*Tdirent)(unsafe.Pointer(de)).Fd_type), v11, flags, __ccgo_fp_errfunc, tail) if r != 0 { Xclosedir(tls, dir) return r @@ -128840,7 +128801,7 @@ func _do_glob(tls *TLS, buf uintptr, pos Tsize_t, type1 int32, pat uintptr, flag *(*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) { + if readerr != 0 && ((*(*func(*TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 @@ -128952,9 +128913,11 @@ func _expand_tilde(tls *TLS, pat uintptr, buf uintptr, pos uintptr) (r int32) { return 0 } -func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r int32) { +type t__ccgo_fp__Xglob_2 = func(*TLS, uintptr, int32) int32 + +func Xglob(tls *TLS, pat uintptr, flags int32, __ccgo_fp_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)) + trc("tls=%v pat=%v flags=%v __ccgo_fp_errfunc=%v g=%v, (%v:)", tls, pat, flags, __ccgo_fp_errfunc, g, origin(2)) defer func() { trc("-> %v", r) }() } bp := tls.Alloc(4128) @@ -128980,8 +128943,8 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in } offs = v1 error1 = 0 - if !(errfunc != 0) { - errfunc = __ccgo_fp(_ignore_err) + if !(__ccgo_fp_errfunc != 0) { + __ccgo_fp_errfunc = __ccgo_fp(_ignore_err) } if !(flags&Int32FromInt32(GLOB_APPEND) != 0) { (*Tglob_t)(unsafe.Pointer(g)).Fgl_offs = offs @@ -129000,7 +128963,7 @@ func Xglob(tls *TLS, pat uintptr, flags int32, errfunc uintptr, g uintptr) (r in 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) + error1 = _do_glob(tls, bp+16, *(*Tsize_t)(unsafe.Pointer(bp + 4112)), 0, *(*uintptr)(unsafe.Pointer(bp + 4120)), flags, __ccgo_fp_errfunc, bp+8) } Xfree(tls, p) } @@ -134224,9 +134187,11 @@ func Xremque(tls *TLS, element uintptr) { } } -func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, compar uintptr) (r uintptr) { +type t__ccgo_fp__Xlsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -134242,7 +134207,7 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -134254,9 +134219,11 @@ func Xlsearch(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, 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) { +type t__ccgo_fp__Xlfind_4 = func(*TLS, uintptr, uintptr) int32 + +func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nelp=%v width=%v __ccgo_fp_compar=%v, (%v:)", tls, key, base, nelp, width, __ccgo_fp_compar, origin(2)) defer func() { trc("-> %v", r) }() } var i, n Tsize_t @@ -134272,7 +134239,7 @@ func Xlfind(tls *TLS, key uintptr, base uintptr, nelp uintptr, width Tsize_t, co if !(i < n) { break } - if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { + if (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_compar})))(tls, key, p+uintptr(i)*uintptr(v1)) == 0 { return p + uintptr(i)*uintptr(v1) } goto _2 @@ -134291,9 +134258,11 @@ type Tnode1 = struct { Fh int32 } -func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtdelete_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtdelete(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var a [97]uintptr @@ -134317,7 +134286,7 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { return uintptr(0) } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134362,9 +134331,11 @@ func Xtdelete(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { return parent } -func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { +type t__ccgo_fp__Xtdestroy_1 = func(*TLS, uintptr) + +func Xtdestroy(tls *TLS, root uintptr, __ccgo_fp_freekey uintptr) { if __ccgo_strace { - trc("tls=%v root=%v freekey=%v, (%v:)", tls, root, freekey, origin(2)) + trc("tls=%v root=%v __ccgo_fp_freekey=%v, (%v:)", tls, root, __ccgo_fp_freekey, origin(2)) } var r uintptr _ = r @@ -134372,17 +134343,19 @@ func Xtdestroy(tls *TLS, root uintptr, freekey uintptr) { 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) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_freekey) + Xtdestroy(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_freekey) + if __ccgo_fp_freekey != 0 { + (*(*func(*TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freekey})))(tls, (*Tnode1)(unsafe.Pointer(r)).Fkey) } Xfree(tls, r) } -func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xtfind_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtfind(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var c int32 @@ -134396,7 +134369,7 @@ func Xtfind(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { break } @@ -134484,9 +134457,11 @@ func X__tsearch_balance(tls *TLS, p uintptr) (r int32) { return _rot(tls, p, n, BoolInt32(h0 < h1)) } -func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { +type t__ccgo_fp__Xtsearch_2 = func(*TLS, uintptr, uintptr) int32 + +func Xtsearch(tls *TLS, key uintptr, rootp uintptr, __ccgo_fp_cmp uintptr) (r1 uintptr) { if __ccgo_strace { - trc("tls=%v key=%v rootp=%v cmp=%v, (%v:)", tls, key, rootp, cmp, origin(2)) + trc("tls=%v key=%v rootp=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, rootp, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r1) }() } var a [96]uintptr @@ -134506,7 +134481,7 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { if !(n != 0) { break } - c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) + c = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, (*Tnode1)(unsafe.Pointer(n)).Fkey) if !(c != 0) { return n } @@ -134542,26 +134517,28 @@ func Xtsearch(tls *TLS, key uintptr, rootp uintptr, cmp uintptr) (r1 uintptr) { return r } -func _walk(tls *TLS, r uintptr, action uintptr, d int32) { +func _walk(tls *TLS, r uintptr, __ccgo_fp_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, int32(_leaf), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_leaf), d) } else { - (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{action})))(tls, r, int32(_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, int32(_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, int32(_endorder), d) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_preorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_postorder), d) + _walk(tls, *(*uintptr)(unsafe.Pointer(r + 8 + 1*8)), __ccgo_fp_action, d+int32(1)) + (*(*func(*TLS, uintptr, TVISIT, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_action})))(tls, r, int32(_endorder), d) } } -func Xtwalk(tls *TLS, root uintptr, action uintptr) { +type t__ccgo_fp__Xtwalk_1 = func(*TLS, uintptr, int32, int32) + +func Xtwalk(tls *TLS, root uintptr, __ccgo_fp_action uintptr) { if __ccgo_strace { - trc("tls=%v root=%v action=%v, (%v:)", tls, root, action, origin(2)) + trc("tls=%v root=%v __ccgo_fp_action=%v, (%v:)", tls, root, __ccgo_fp_action, origin(2)) } - _walk(tls, root, action, 0) + _walk(tls, root, __ccgo_fp_action, 0) } func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { @@ -134572,8 +134549,6 @@ func Xpoll(tls *TLS, fds uintptr, n Tnfds_t, timeout int32) (r int32) { return int32(X__syscall_ret(tls, Uint64FromInt64(___syscall_cp(tls, int64(SYS_poll), int64(fds), Int64FromUint64(n), int64(timeout), 0, 0, 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)) @@ -134609,8 +134584,6 @@ func Xppoll(tls *TLS, fds uintptr, n Tnfds_t, to uintptr, mask uintptr) (r int32 return int32(X__syscall_ret(tls, Uint64FromInt64(___syscall_cp(tls, int64(SYS_ppoll), int64(fds), Int64FromUint64(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)) @@ -134651,14 +134624,6 @@ func Xpselect(tls *TLS, n int32, rfds uintptr, wfds uintptr, efds uintptr, ts ui return int32(X__syscall_ret(tls, Uint64FromInt64(___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_mcontext Tmcontext_t - Fuc_sigmask Tsigset_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)) @@ -135148,14 +135113,6 @@ func Xsigaltstack(tls *TLS, ss uintptr, old uintptr) (r int32) { const SST_SIZE = 8 -type Tucontext_t7 = struct { - Fuc_flags uint64 - Fuc_link uintptr - Fuc_stack Tstack_t - Fuc_mcontext Tmcontext_t1 - Fuc_sigmask Tsigset_t -} - 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)) @@ -144285,9 +144242,11 @@ func Xatoll(tls *TLS, s uintptr) (r int64) { return v5 } -func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, cmp uintptr) (r uintptr) { +type t__ccgo_fp__Xbsearch_4 = func(*TLS, uintptr, uintptr) int32 + +func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v key=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, key, base, nel, width, __ccgo_fp_cmp, origin(2)) defer func() { trc("-> %v", r) }() } var sign int32 @@ -144295,7 +144254,7 @@ func Xbsearch(tls *TLS, key uintptr, base uintptr, nel Tsize_t, width Tsize_t, c _, _ = 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) + sign = (*(*func(*TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, key, try) if sign < 0 { nel /= uint64(2) } else { @@ -144565,7 +144524,7 @@ func _shr(tls *TLS, p uintptr, n int32) { *(*Tsize_t)(unsafe.Pointer(p + 1*8)) >>= Uint64FromInt32(n) } -func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { +func _sift(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_cmp Tcmpfun, arg uintptr, pshift int32, lp uintptr) { bp := tls.Alloc(912) defer tls.Free(912) var i, v1, v2 int32 @@ -144577,10 +144536,10 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi 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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, (*(*[113]uintptr)(unsafe.Pointer(bp)))[0], lf, arg) >= 0 && (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, rt, arg) >= 0 { v1 = i i++ (*(*[113]uintptr)(unsafe.Pointer(bp)))[v1] = lf @@ -144597,7 +144556,7 @@ func _sift(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, pshi _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) { +func _trinkle(tls *TLS, head uintptr, width Tsize_t, __ccgo_fp_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 @@ -144611,13 +144570,13 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p (*(*[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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_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 { + if (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, rt, stepson, arg) >= 0 || (*(*func(*TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_cmp})))(tls, lf, stepson, arg) >= 0 { break } } @@ -144632,13 +144591,15 @@ func _trinkle(tls *TLS, head uintptr, width Tsize_t, cmp Tcmpfun, arg uintptr, p } if !(trusty != 0) { _cycle(tls, width, bp+16, i) - _sift(tls, head, width, cmp, arg, pshift, lp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, lp) } } -func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, arg uintptr) { +type t__ccgo_fp__X__qsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } bp := tls.Alloc(784) defer tls.Free(784) @@ -144676,14 +144637,14 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, } for head < high { if (*(*[2]Tsize_t)(unsafe.Pointer(bp + 768)))[0]&uint64(3) == uint64(3) { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) _shr(tls, bp+768, int32(2)) pshift += int32(2) } else { if (*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift-int32(1)] >= Uint64FromInt64(int64(high)-int64(head)) { - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_cmp, arg, bp+768, pshift, 0, bp) } else { - _sift(tls, head, width, cmp, arg, pshift, bp) + _sift(tls, head, width, __ccgo_fp_cmp, arg, pshift, bp) } if pshift == int32(1) { _shl(tls, bp+768, int32(1)) @@ -144696,7 +144657,7 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, *(*Tsize_t)(unsafe.Pointer(bp + 768)) |= uint64(1) head += uintptr(width) } - _trinkle(tls, head, width, cmp, arg, bp+768, pshift, 0, bp) + _trinkle(tls, head, width, __ccgo_fp_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) @@ -144707,31 +144668,35 @@ func X__qsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, cmp Tcmpfun, 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) + _trinkle(tls, head-uintptr((*(*[96]Tsize_t)(unsafe.Pointer(bp)))[pshift])-uintptr(width), width, __ccgo_fp_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) + _trinkle(tls, head-uintptr(width), width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_r_3 = func(*TLS, uintptr, uintptr, uintptr) int32 + +func Xqsort_r(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_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)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v arg=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, arg, origin(2)) } - X__qsort_r(tls, base, nel, width, cmp, arg) + X__qsort_r(tls, base, nel, width, __ccgo_fp_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) { +type t__ccgo_fp__Xqsort_3 = func(*TLS, uintptr, uintptr) int32 + +func Xqsort(tls *TLS, base uintptr, nel Tsize_t, width Tsize_t, __ccgo_fp_cmp Tcmpfun) { if __ccgo_strace { - trc("tls=%v base=%v nel=%v width=%v cmp=%v, (%v:)", tls, base, nel, width, cmp, origin(2)) + trc("tls=%v base=%v nel=%v width=%v __ccgo_fp_cmp=%v, (%v:)", tls, base, nel, width, __ccgo_fp_cmp, origin(2)) } - X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), cmp) + X__qsort_r(tls, base, nel, width, __ccgo_fp(_wrapper_cmp), __ccgo_fp_cmp) } func _strtox(tls *TLS, s uintptr, p uintptr, prec int32) (r float64) { diff --git a/vendor/modernc.org/libc/libc.go b/vendor/modernc.org/libc/libc.go index dab50ebf3..6dfcd57a0 100644 --- a/vendor/modernc.org/libc/libc.go +++ b/vendor/modernc.org/libc/libc.go @@ -4,9 +4,9 @@ //go:build !linux || mips64le -// go.generate echo package libc > ccgo.go -// -//go:generate go fmt -l -s -w ./... +///go.generate echo package libc > ccgo.go +///go:generate go fmt -l -s -w ./... + package libc // import "modernc.org/libc" //TODO use O_RDONLY etc. from fcntl header diff --git a/vendor/modernc.org/libc/libc_all.go b/vendor/modernc.org/libc/libc_all.go index 001687e3c..0e20d95e2 100644 --- a/vendor/modernc.org/libc/libc_all.go +++ b/vendor/modernc.org/libc/libc_all.go @@ -6,6 +6,7 @@ package libc // import "modernc.org/libc" import ( + "math" "sync/atomic" "unsafe" @@ -51,3 +52,28 @@ func GoString(s uintptr) string { func GoBytes(s uintptr, len int) []byte { return unsafe.Slice((*byte)(unsafe.Pointer(s)), len) } + +func X__isfinitef(tls *TLS, f float32) int32 { + d := float64(f) + if !math.IsInf(d, 0) && !math.IsNaN(d) { + return 1 + } + + return 0 +} + +func X__isfinite(tls *TLS, d float64) int32 { + if !math.IsInf(d, 0) && !math.IsNaN(d) { + return 1 + } + + return 0 +} + +func X__isfinitel(tls *TLS, d float64) int32 { + if !math.IsInf(d, 0) && !math.IsNaN(d) { + return 1 + } + + return 0 +} diff --git a/vendor/modernc.org/libc/libc_freebsd.go b/vendor/modernc.org/libc/libc_freebsd.go index d177340ce..259325ff6 100644 --- a/vendor/modernc.org/libc/libc_freebsd.go +++ b/vendor/modernc.org/libc/libc_freebsd.go @@ -2250,14 +2250,6 @@ __3: return Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(l)))) - Xtolower(tls, int32(*(*uint8)(unsafe.Pointer(r)))) } -func X__isfinite(tls *TLS, d float64) int32 { - if !math.IsInf(d, 0) && !math.IsNaN(d) { - return 1 - } - - return 0 -} - func X__signbit(tls *TLS, x float64) (r int32) { return int32(math.Float64bits(x) >> 63) } diff --git a/vendor/modernc.org/libc/tls_linux_amd64.go b/vendor/modernc.org/libc/tls_linux_amd64.go index d001bada0..cba2c4437 100644 --- a/vendor/modernc.org/libc/tls_linux_amd64.go +++ b/vendor/modernc.org/libc/tls_linux_amd64.go @@ -10,6 +10,12 @@ func TLSAlloc(p0 *TLS, p1 int) uintptr //go:noescape func TLSFree(p0 *TLS, p1 int) +//go:noescape +func TLSAllocaEntry(p0 *TLS) + +//go:noescape +func TLSAllocaExit(p0 *TLS) + func tlsAlloc(tls *TLS, n int) uintptr { return tls.Alloc(n) } @@ -17,3 +23,11 @@ func tlsAlloc(tls *TLS, n int) uintptr { func tlsFree(tls *TLS, n int) { tls.Free(n) } + +func tlsAllocaEntry(tls *TLS) { + tls.AllocaEntry() +} + +func tlsAllocaExit(tls *TLS) { + tls.AllocaExit() +} diff --git a/vendor/modernc.org/libc/tls_linux_amd64.s b/vendor/modernc.org/libc/tls_linux_amd64.s index 9d55f5f04..d72678788 100644 --- a/vendor/modernc.org/libc/tls_linux_amd64.s +++ b/vendor/modernc.org/libc/tls_linux_amd64.s @@ -22,3 +22,19 @@ TEXT ·TLSFree(SB),$16-16 MOVQ AX, 8(SP) CALL ·tlsFree(SB) RET + +TEXT ·TLSAllocaEntry(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ p0+0(FP), AX + MOVQ AX, 0(SP) + CALL ·tlsAllocaEntry(SB) + RET + +TEXT ·TLSAllocaExit(SB),$8-8 + GO_ARGS + NO_LOCAL_POINTERS + MOVQ p0+0(FP), AX + MOVQ AX, 0(SP) + CALL ·tlsAllocaExit(SB) + RET diff --git a/vendor/modernc.org/sqlite/doc.go b/vendor/modernc.org/sqlite/doc.go index af3de2cc9..34c10379e 100644 --- a/vendor/modernc.org/sqlite/doc.go +++ b/vendor/modernc.org/sqlite/doc.go @@ -27,21 +27,21 @@ // // OS Arch SQLite version // ------------------------------ -// darwin amd64 3.50.1 -// darwin arm64 3.50.1 -// freebsd amd64 3.50.1 -// freebsd arm64 3.50.1 -// linux 386 3.50.1 -// linux amd64 3.50.1 -// linux arm 3.50.1 -// linux arm64 3.50.1 -// linux loong64 3.50.1 -// linux ppc64le 3.50.1 -// linux riscv64 3.50.1 -// linux s390x 3.50.1 -// windows 386 3.50.1 -// windows amd64 3.50.1 -// windows arm64 3.50.1 +// darwin amd64 3.50.4 +// darwin arm64 3.50.4 +// freebsd amd64 3.50.4 +// freebsd arm64 3.50.4 +// linux 386 3.50.4 +// linux amd64 3.50.4 +// linux arm 3.50.4 +// linux arm64 3.50.4 +// linux loong64 3.50.4 +// linux ppc64le 3.50.4 +// linux riscv64 3.50.4 +// linux s390x 3.50.4 +// windows 386 3.50.4 +// windows amd64 3.50.4 +// windows arm64 3.50.4 // // # Benchmarks // @@ -55,6 +55,8 @@ // // # Changelog // +// - 2025-10-10 v1.39.1: Upgrade to SQLite 3.50.4. +// // - 2025-06-09 v1.38.0: Upgrade to SQLite 3.50.1. // // - 2025-02-26 v1.36.0: Upgrade to SQLite 3.49.0. diff --git a/vendor/modernc.org/sqlite/lib/sqlite_darwin_amd64.go b/vendor/modernc.org/sqlite/lib/sqlite_darwin_amd64.go index c8f5e6d91..1079f5fdd 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_darwin_amd64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_darwin_amd64.go @@ -3082,7 +3082,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -3192,8 +3192,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -5468,12 +5468,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -5602,30 +5596,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - // C documentation // // /* @@ -6138,33 +6108,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -6243,19 +6186,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -6431,223 +6361,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -6729,20 +6442,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -6792,13 +6491,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -6978,24 +6670,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -7019,22 +6693,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -7175,50 +6833,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -7615,340 +7229,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -7958,15 +7238,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -7982,14 +7253,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -8015,17 +7278,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -8469,52 +7721,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type t__int8_t = int8 type t__uint8_t = uint8 @@ -10340,14 +9546,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -10592,6 +9790,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -11077,10 +10276,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -11509,9 +10704,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -11638,53 +10833,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -11788,16 +10936,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -11821,38 +10959,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -11865,34 +10976,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -11906,90 +10993,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -12008,187 +11011,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -12198,917 +11020,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity int8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -13133,622 +11044,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr int8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -13758,318 +11053,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]int8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -14155,232 +11138,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign int8 - FisSpecial int8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]int8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -15544,72 +12301,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -15655,152 +12346,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -15831,18 +12376,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -15859,101 +12392,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]int8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -15975,13 +12413,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -16001,14 +12432,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -16087,7 +12511,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -16317,7 +12741,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -16446,24 +12870,6 @@ type TDateTime = struct { 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 - FvalidYMD int8 - FvalidHMS int8 - FnFloor int8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -18457,28 +14863,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -18486,19 +14892,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -18515,12 +14921,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -18528,7 +14934,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -18541,34 +14947,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -18881,14 +15287,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -18903,9 +15302,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -19653,6 +16052,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -19660,8 +16061,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -22969,63 +19370,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.X__builtin___memcpy_chk(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132), ^t__predefined_size_t(0)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ -/******************************** End Unix Pthreads *************************/ - -/********************************* Win32 Threads ****************************/ -/******************************** End Win32 Threads *************************/ - -/********************************* Single-Threaded **************************/ -/* -** This implementation does not actually create a new thread. It does the -** work of the thread in the main thread, when either the thread is created -** or when it is joined - */ - -/* A running thread */ -type TSQLiteThread1 = struct { - FxTask uintptr - FpIn uintptr - FpResult uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr _ = p *(*uintptr)(unsafe.Pointer(ppThread)) = uintptr(0) @@ -23034,11 +19382,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } if int32(int64(p))/int32(17)&int32(1) != 0 { - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn } else { (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = uintptr(0) - (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -28340,22 +24688,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -28388,32 +24720,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 - FopenFlags int32 - FfsFlags uint32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -28635,7 +24941,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -28673,10 +24979,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -29050,48 +25356,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr - FsharedByte uint64 -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -29192,7 +25456,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -29881,7 +26145,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -30344,13 +26608,6 @@ type TafpLockingContext = struct { type afpLockingContext = TafpLockingContext -type TafpLockingContext1 = struct { - Freserved int32 - FdbPath uintptr -} - -type afpLockingContext1 = TafpLockingContext1 - type TByteRangeLockPB2 = struct { Foffset uint64 Flength uint64 @@ -31098,7 +27355,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3603, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3603, bp, int32(42579)) } // C documentation @@ -31135,7 +27392,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -31687,7 +27855,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -31750,7 +27918,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -31983,7 +28151,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 144)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1665, int32(1), bp+144) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -33426,7 +29594,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3486, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3486, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -33462,7 +29630,7 @@ 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(45306)) + _robust_close(tls, p, fd, int32(45308)) return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(13)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3675, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3675, zIn, int32(45510)) return } (*(*[1026]int8)(unsafe.Pointer(bp + 144)))[got] = 0 @@ -33740,14 +29898,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(45566)), __ccgo_ts+3504, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3504, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= 0 { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, bp) - _robust_close(tls, pFile, fd, int32(46243)) + _robust_close(tls, pFile, fd, int32(46245)) } libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4258, libc.VaList(bp+2144, cPath, bp+2065)) } @@ -34630,14 +30774,14 @@ func _proxyTakeConch(tls *libc.TLS, pFile uintptr) (r int32) { ; 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(46496)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(46498)) } (*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(46504)) /* SQLITE_BUSY? proxyTakeConch called + rc = _sqlite3CantopenError(tls, int32(46506)) /* SQLITE_BUSY? proxyTakeConch called during locking */ } } @@ -35542,71 +31686,6 @@ type TMemStore = struct { type MemStore = TMemStore -/* Access to a lower-level VFS that (might) implement dynamic loading, -** access to randomness, etc. - */ - -/* Storage for a memdb file. -** -** An memdb object can be shared or separate. Shared memdb objects can be -** used by more than one database connection. Mutexes are used by shared -** memdb objects to coordinate access. Separate memdb objects are only -** connected to a single database connection and do not require additional -** mutexes. -** -** Shared memdb objects have .zFName!=0 and .pMutex!=0. They are created -** using "file:/name?vfs=memdb". The first character of the name must be -** "/" or else the object will be a separate memdb object. All shared -** memdb objects are stored in memdb_g.apMemStore[] in an arbitrary order. -** -** Separate memdb objects are created using a name that does not begin -** with "/" or using sqlite3_deserialize(). -** -** Access rules for shared MemStore objects: -** -** * .zFName is initialized when the object is created and afterwards -** is unchanged until the object is destroyed. So it can be accessed -** at any time as long as we know the object is not being destroyed, -** which means while either the SQLITE_MUTEX_STATIC_VFS1 or -** .pMutex is held or the object is not part of memdb_g.apMemStore[]. -** -** * Can .pMutex can only be changed while holding the -** SQLITE_MUTEX_STATIC_VFS1 mutex or while the object is not part -** of memdb_g.apMemStore[]. -** -** * Other fields can only be changed while holding the .pMutex mutex -** or when the .nRef is less than zero and the object is not part of -** memdb_g.apMemStore[]. -** -** * The .aData pointer has the added requirement that it can can only -** be changed (for resizing) when nMmap is zero. -** - */ -type TMemStore1 = struct { - Fsz Tsqlite3_int64 - FszAlloc Tsqlite3_int64 - FszMax Tsqlite3_int64 - FaData uintptr - FpMutex uintptr - FnMmap int32 - FmFlags uint32 - FnRdLock int32 - FnWrLock int32 - FnRef int32 - FzFName uintptr -} - -type MemStore1 = TMemStore1 - -/* An open file */ -type TMemFile1 = struct { - Fbase Tsqlite3_file - FpStore uintptr - FeLock int32 -} - -type MemFile1 = TMemFile1 - // C documentation // // /* @@ -36465,101 +32544,6 @@ func _sqlite3MemdbInit(tls *libc.TLS) (r int32) { return Xsqlite3_vfs_register(tls, uintptr(unsafe.Pointer(&_memdb_vfs)), 0) } -/************** End of memdb.c ***********************************************/ -/************** Begin file bitvec.c ******************************************/ -/* -** 2008 February 16 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements an object that represents a fixed-length -** bitmap. Bits are numbered starting with 1. -** -** A bitmap is used to record which pages of a database file have been -** journalled during a transaction, or which pages have the "dont-write" -** property. Usually only a few pages are meet either condition. -** So the bitmap is usually sparse and has low cardinality. -** But sometimes (for example when during a DROP of a large table) most -** or all of the pages in a database can get journalled. In those cases, -** the bitmap becomes dense with high cardinality. The algorithm needs -** to handle both cases well. -** -** The size of the bitmap is fixed when the object is created. -** -** All bits are clear when the bitmap is created. Individual bits -** may be set or cleared one at a time. -** -** Test operations are about 100 times more common that set operations. -** Clear operations are exceedingly rare. There are usually between -** 5 and 500 set operations per Bitvec object, though the number of sets can -** sometimes grow into tens of thousands or larger. The size of the -** Bitvec object is the number of pages in the database file at the -** start of a transaction, and is thus usually less than a few thousand, -** but can be as large as 2 billion for a really big database. - */ -/* #include "sqliteInt.h" */ - -/* Size of the Bitvec structure in bytes. */ - -/* Round the union size down to the nearest pointer boundary, since that's how -** it will be aligned within the Bitvec struct. */ - -/* Type of the array "element" for the bitmap representation. -** Should be a power of 2, and ideally, evenly divide into BITVEC_USIZE. -** Setting this to the "natural word" size of your CPU may improve -** performance. */ -/* Size, in bits, of the bitmap element. */ -/* Number of elements in a bitmap array. */ -/* Number of bits in the bitmap array. */ - -/* Number of u32 values in hash table. */ -/* Maximum number of entries in hash table before -** sub-dividing and re-hashing. */ -/* Hashing function for the aHash representation. -** Empirical testing showed that the *37 multiplier -** (an arbitrary prime)in the hash function provided -** no fewer collisions than the no-op *1. */ - -/* -** A bitmap is an instance of the following structure. -** -** This bitmap records the existence of zero or more bits -** with values between 1 and iSize, inclusive. -** -** There are three possible representations of the bitmap. -** If iSize<=BITVEC_NBIT, then Bitvec.u.aBitmap[] is a straight -** bitmap. The least significant bit is bit 1. -** -** If iSize>BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -36964,66 +32948,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -37197,14 +33121,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.X__builtin___memset_chk(tls, p, 0, uint64(80), ^t__predefined_size_t(0)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -38020,123 +33944,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -39333,25 +35140,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -40313,258 +36101,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]int8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -40663,7 +36199,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -43148,7 +38684,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -43339,10 +38875,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -44243,7 +39779,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -44318,7 +39854,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -44540,7 +40076,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -44796,7 +40332,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -44971,7 +40507,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -45002,7 +40538,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -45074,7 +40610,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -46431,7 +41967,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -47280,232 +42816,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -47524,29 +42834,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -47975,14 +43262,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -48149,7 +43428,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -48237,7 +43516,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -48817,10 +44096,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -48918,7 +44197,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -48957,7 +44236,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = *(*Tu32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -48970,7 +44249,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -48986,7 +44265,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -49007,7 +44286,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -49073,7 +44352,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -49371,7 +44650,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -50182,7 +45461,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -50328,7 +45607,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -50355,7 +45634,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -50683,7 +45962,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -50864,7 +46143,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -50873,7 +46152,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -50925,14 +46204,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -51478,288 +46757,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -51892,27 +46889,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -52795,11 +47771,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -52973,7 +47949,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -52986,12 +47962,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -53035,7 +48011,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -53043,7 +48019,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -53463,7 +48439,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -53503,12 +48479,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -53516,21 +48492,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.X__builtin___memmove_chk(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz)), ^t__predefined_size_t(0)) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -53577,12 +48553,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -53598,7 +48574,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -53658,7 +48634,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -53675,14 +48651,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -53725,11 +48701,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -53743,7 +48719,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -53824,12 +48800,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -53840,11 +48816,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -53865,7 +48841,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -53882,10 +48858,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -53946,7 +48922,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -53972,7 +48948,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -54011,12 +48987,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -54043,7 +49019,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -54074,11 +49050,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))< iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -54107,7 +49083,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -54120,7 +49096,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -54271,7 +49247,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -54333,7 +49309,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -55245,7 +50221,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -55686,7 +50662,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -55710,7 +50686,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -55719,7 +50695,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -55733,7 +50709,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -55763,7 +50739,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -55859,7 +50835,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -55897,7 +50873,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -55964,7 +50940,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -56007,7 +50983,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -56037,7 +51013,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -56503,7 +51479,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -56895,7 +51871,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -56905,7 +51881,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -56962,7 +51938,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -57036,7 +52012,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -57171,7 +52147,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -57183,7 +52159,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -57299,7 +52275,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -57313,7 +52289,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -57547,7 +52523,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -57631,7 +52607,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -57643,7 +52619,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -57845,7 +52821,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -57878,7 +52854,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -57887,7 +52863,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -58016,7 +52992,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -58126,7 +53102,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -58214,7 +53190,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -58269,7 +53245,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -58295,7 +53271,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -58322,7 +53298,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -58393,7 +53369,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -58531,7 +53507,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -58582,7 +53558,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -58591,7 +53567,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -58681,7 +53657,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -58699,7 +53675,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -58722,7 +53698,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -58943,7 +53919,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -59237,17 +54213,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -59337,12 +54302,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -59350,7 +54315,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.X__builtin___memmove_chk(tls, pData, pCell, uint64(sz), ^t__predefined_size_t(0)) i++ @@ -59445,7 +54410,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.X__builtin___memmove_chk(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz), ^t__predefined_size_t(0)) @@ -59593,7 +54558,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.X__builtin___memmove_chk(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2)), ^t__predefined_size_t(0)) nCell -= nShift @@ -59664,7 +54629,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -59709,7 +54674,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -60073,7 +55038,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -60096,7 +55061,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow)), ^t__predefined_size_t(0)) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -60227,7 +55192,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -60270,7 +55235,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -60329,7 +55294,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -60361,7 +55326,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -60591,7 +55556,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -60837,7 +55802,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -60910,7 +55875,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -61069,7 +56034,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -61100,7 +56065,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -61185,7 +56150,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -61277,7 +56242,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -61313,7 +56278,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -61343,10 +56308,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.X__builtin___memcpy_chk(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8))), ^t__predefined_size_t(0)) return SQLITE_OK @@ -61464,7 +56429,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -61486,7 +56451,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -61586,21 +56551,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))< _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -61845,7 +56810,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -61926,14 +56891,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -62070,7 +57035,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -63122,14 +58087,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -63340,45 +58305,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -64978,7 +59904,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -64991,8 +59917,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -65151,7 +60077,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -65193,11 +60119,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -65207,7 +60133,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -65229,12 +60155,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -65273,7 +60199,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -65385,8 +60311,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -65976,7 +60902,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -65992,7 +60918,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -66002,7 +60928,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -66053,9 +60979,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -66129,7 +61055,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.X__builtin___memset_chk(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136), ^t__predefined_size_t(0)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -68253,7 +63179,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -68261,7 +63187,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -69088,7 +64014,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -69936,7 +64862,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -70026,7 +64952,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -70061,7 +64987,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -70115,7 +65041,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -70247,7 +65173,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -70399,7 +65325,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -70430,7 +65356,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -70847,7 +65773,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -71174,12 +66100,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -71196,29 +66122,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -71248,13 +66178,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -71266,11 +66198,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -71278,23 +66214,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -71551,7 +66493,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -71681,7 +66623,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -71850,6 +66792,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -71863,7 +66807,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -71901,13 +66845,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -72407,14 +67351,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5961, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -72452,7 +67396,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -72462,7 +67406,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -72473,24 +67417,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -72538,7 +67486,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -72546,32 +67496,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -72988,7 +67944,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -73050,7 +68006,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, libc.Uint8FromInt8((*TColumn)(unsafe.Pointer(pCol)).Faffinity), bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -73151,7 +68107,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -76512,7 +71468,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -78422,7 +73378,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, int8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -78449,7 +73405,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -79341,7 +74297,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -79723,7 +74679,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -81374,7 +76330,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -82776,7 +77453,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -83267,8 +77944,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -83463,7 +78140,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -85115,57 +79792,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -85462,7 +80088,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -89926,12 +84552,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -93508,6 +88128,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -94045,6 +88670,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.X__builtin___memset_chk(tls, bp, 0, uint64(72), ^t__predefined_size_t(0)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -94251,7 +88897,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -94278,8 +88924,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -96694,31 +91340,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -96735,16 +91356,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -97047,9 +91658,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -97243,7 +91854,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11816, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -97262,7 +91873,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -98326,7 +92937,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -98880,44 +93491,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -100208,13 +94781,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -101413,6 +95979,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -101485,9 +96053,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -101667,47 +96235,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -102335,9 +96862,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -106583,7 +101110,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15073, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -112022,17 +106549,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -112246,12 +106762,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -115533,7 +110043,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -117027,33 +111537,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -118607,6 +113090,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -118640,7 +113125,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -118652,7 +113137,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1665 @@ -118676,7 +113161,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -118717,7 +113202,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -118764,330 +113249,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -119692,14 +113853,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -119714,7 +113870,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -119732,7 +113888,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -119747,7 +113903,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -119757,6 +113913,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -119768,7 +113926,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -119780,7 +113938,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -123543,25 +117701,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -123963,7 +118102,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -123976,7 +118115,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+19383, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -124570,7 +118709,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -124583,9 +118722,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -124772,7 +118911,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -124906,7 +119045,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -125028,15 +119167,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -125072,21 +119202,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -125773,13 +119888,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -129754,18 +123862,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -133358,6 +127454,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -137662,39 +131759,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -137705,7 +131769,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -137724,7 +131788,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -137749,15 +131813,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -137772,13 +131836,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -138300,7 +132366,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -138361,7 +132427,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -138645,9 +132711,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -139229,7 +133295,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -139242,7 +133308,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -139502,435 +133568,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff int8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -140275,10 +133912,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -140901,7 +134538,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -141251,7 +134888,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -142797,7 +136434,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -144936,16 +138573,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -145058,7 +138685,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -146576,10 +140203,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -148860,15 +142487,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -148900,7 +142518,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -148919,7 +142537,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -148956,7 +142574,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -148985,19 +142603,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.X__builtin___memset_chk(tls, bp+16, 0, uint64(48), ^t__predefined_size_t(0)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -149299,6 +142917,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -149841,7 +143467,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -150506,17 +144132,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -152491,7 +146106,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -152504,7 +146119,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -152683,7 +146298,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -154018,16 +147633,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -154046,17 +147651,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -154074,7 +147679,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -154098,13 +147703,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -154119,9 +147724,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -154129,13 +147734,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.X__builtin___memset_chk(tls, pExpr, 0, uint64(72), ^t__predefined_size_t(0)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -154151,13 +147756,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -154934,87 +148539,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -163263,14 +156787,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -163281,16 +156797,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -170264,7 +163770,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -171634,12 +165144,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -171657,9 +165167,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -171688,7 +165198,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -171706,15 +165216,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -171729,27 +165239,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -171760,30 +165270,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -171846,6 +165386,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -171856,43 +165398,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -171903,12 +165449,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -171920,6 +165466,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -171927,82 +165475,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -172046,18 +165604,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -172083,7 +165643,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -172215,7 +165775,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -172347,7 +165907,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -172357,7 +165917,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -172393,7 +165953,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -172406,7 +165966,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -172450,9 +166010,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -172954,7 +166514,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4629 @@ -173108,36 +166668,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -173145,7 +166713,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -173153,31 +166721,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -173211,12 +166783,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -173251,8 +166825,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -173263,7 +166837,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -174615,6 +168189,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -174638,7 +168214,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -174648,7 +168224,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -174660,7 +168236,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -174676,7 +168252,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -175892,106 +169468,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]int8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -178602,16 +172078,6 @@ type TJsonPretty = struct { 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 */ @@ -181438,16 +174904,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -181466,24 +174922,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -181491,13 +174929,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -182469,223 +175900,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -182703,33 +175920,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -182740,78 +175951,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -185772,9 +178967,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -185789,9 +178984,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -186691,23 +179886,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -187292,14 +180470,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -187324,16 +180494,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -188116,13 +181276,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -188357,36 +181510,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -189357,16 +182480,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+29063) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+29079) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -189675,12 +182798,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -189688,33 +182813,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -190332,248 +183461,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]int8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -193287,7 +186174,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -193389,7 +186276,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -193462,12 +186349,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -193492,18 +186379,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+7084, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+7084, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+7084, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+7084, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -194021,10 +186908,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -194543,7 +187430,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -194664,7 +187551,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -194709,9 +187596,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -194783,7 +187672,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -194986,7 +187875,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -195037,14 +187926,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.X__builtin___memset_chk(tls, zBuf, 0, libc.Uint64FromInt32(iAmt), ^t__predefined_size_t(0)) } 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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -196969,315 +189797,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -198683,13 +191202,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -199181,14 +191693,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -199696,15 +192200,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -200326,7 +192832,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -200340,7 +192846,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -200416,8 +192922,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -200442,13 +192948,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -200477,28 +192983,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -200637,7 +193147,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -200652,9 +193162,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.X__builtin___memset_chk(tls, pRet, 0, uint64(152), ^t__predefined_size_t(0)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -200683,20 +193193,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -200871,7 +193385,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -200895,7 +193409,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -200910,7 +193424,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -200966,7 +193480,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -201071,7 +193585,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -201177,7 +193691,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -201187,7 +193701,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -201266,7 +193780,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -201527,7 +194041,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -201676,11 +194190,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -201692,8 +194206,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -201721,12 +194235,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -201734,9 +194252,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.X__builtin___memset_chk(tls, bp, 0, uint64(72), ^t__predefined_size_t(0)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -201749,14 +194267,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -201780,29 +194290,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -202206,7 +194693,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -202224,11 +194711,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -202405,7 +194892,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -202429,7 +194916,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -202444,7 +194931,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -202495,7 +194982,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -202535,10 +195022,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -202576,11 +195063,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -202603,7 +195090,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -202622,7 +195109,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -202631,7 +195118,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -202641,7 +195128,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+35168, uintptr(0), uintptr(0), uintptr(0)) @@ -202654,7 +195141,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+35189, uintptr(0), uintptr(0), uintptr(0)) @@ -202670,7 +195157,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -202697,7 +195184,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.X__builtin___memset_chk(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte, ^t__predefined_size_t(0)) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -202725,7 +195212,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -202765,7 +195252,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -202789,7 +195276,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -202865,7 +195352,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -202874,7 +195361,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -202882,7 +195369,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.X__builtin___memset_chk(tls, bp+168, 0, uint64(152), ^t__predefined_size_t(0)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -202921,13 +195408,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -202936,11 +195427,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -202948,10 +195443,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -202959,37 +195460,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -203565,7 +196058,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -203600,8 +196093,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -203620,9 +196113,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -203733,18 +196226,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -203752,13 +196247,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -203800,12 +196297,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -203813,27 +196316,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -203988,7 +196482,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -204096,8 +196590,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -204109,9 +196603,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.X__builtin___memset_chk(tls, bp+24, 0, uint64(16), ^t__predefined_size_t(0)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -204185,21 +196679,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -204356,18 +196854,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -204427,99 +196913,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -204541,14 +196934,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -204560,29 +196945,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -204638,15 +197006,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -204668,14 +197027,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -204785,13 +197136,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -205358,14 +197702,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -205376,16 +197712,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -205437,10 +197763,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -205546,12 +197872,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -206159,18 +198485,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -206253,22 +198567,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -206446,16 +198744,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -206823,15 +199111,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -207562,21 +199841,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -207885,13 +200149,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -208547,7 +200804,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -208557,9 +200814,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -208921,115 +201178,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -209714,16 +201862,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -209748,14 +201886,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -210876,14 +203006,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -211824,14 +203946,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -211871,14 +203985,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -212242,66 +204348,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -213351,143 +205397,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -213495,191 +205404,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -216611,14 +208335,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -216628,15 +208344,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -216750,7 +208457,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -216771,7 +208478,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -218364,13 +210071,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -219491,16 +211191,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -219718,7 +211408,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -219755,7 +211445,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -219766,70 +211456,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -219998,14 +211624,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -220052,19 +211670,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -222380,87 +213985,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -222468,97 +213992,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -224526,7 +215959,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -224534,7 +215967,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -224545,8 +215978,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -224954,7 +216387,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -224984,8 +216417,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -224993,7 +216426,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -225285,7 +216718,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -225309,7 +216742,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -225596,14 +217029,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -225698,7 +217131,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -225715,8 +217148,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.X__builtin___memcpy_chk(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName), ^t__predefined_size_t(0)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -225743,7 +217176,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -225760,7 +217193,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.X__builtin___memcpy_chk(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName), ^t__predefined_size_t(0)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -225787,15 +217220,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -225855,11 +217279,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -225868,13 +217292,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -225883,7 +217307,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -225896,7 +217320,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -225913,7 +217337,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -225921,7 +217345,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -226393,60 +217817,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -226803,14 +218173,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -227541,17 +218903,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -228056,12 +219407,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -228166,7 +219511,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -228208,7 +219553,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -228242,18 +219587,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -228479,7 +219812,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -228666,7 +219999,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -228694,14 +220027,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]int8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -228779,14 +220104,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -228797,16 +220114,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -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')) } @@ -229432,14 +220739,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -229457,13 +220764,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -229545,7 +220845,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -229673,7 +220973,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -229749,11 +221049,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -235308,39 +226608,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -236454,11 +227721,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '4'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-17.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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-17.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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go b/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go index 85c3ad879..6a63273d7 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_darwin_arm64.go @@ -3077,7 +3077,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -3187,8 +3187,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -5496,12 +5496,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -5630,30 +5624,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - // C documentation // // /* @@ -6166,33 +6136,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -6271,19 +6214,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -6459,223 +6389,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -6757,20 +6470,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -6820,13 +6519,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -7006,24 +6698,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -7047,22 +6721,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -7203,50 +6861,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -7643,340 +7257,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -7986,15 +7266,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -8010,14 +7281,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -8043,17 +7306,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -8497,52 +7749,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type t__int8_t = int8 type t__uint8_t = uint8 @@ -9946,14 +9152,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -10198,6 +9396,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -10683,10 +9882,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -11115,9 +10310,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -11244,53 +10439,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -11394,16 +10542,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -11427,38 +10565,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -11471,34 +10582,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -11512,90 +10599,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -11614,187 +10617,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -11804,917 +10626,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity int8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -12739,622 +10650,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr int8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -13364,318 +10659,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]int8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -13761,232 +10744,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign int8 - FisSpecial int8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]int8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -15150,72 +11907,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -15261,152 +11952,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -15437,18 +11982,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -15465,101 +11998,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]int8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -15581,13 +12019,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -15607,14 +12038,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -15693,7 +12117,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -15923,7 +12347,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -16052,24 +12476,6 @@ type TDateTime = struct { 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 - FvalidYMD int8 - FvalidHMS int8 - FnFloor int8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -18063,28 +14469,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -18092,19 +14498,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -18121,12 +14527,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -18134,7 +14540,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -18147,34 +14553,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -18487,14 +14893,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -18509,9 +14908,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -19259,6 +15658,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -19266,8 +15667,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -22575,63 +18976,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.X__builtin___memcpy_chk(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132), ^t__predefined_size_t(0)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ -/******************************** End Unix Pthreads *************************/ - -/********************************* Win32 Threads ****************************/ -/******************************** End Win32 Threads *************************/ - -/********************************* Single-Threaded **************************/ -/* -** This implementation does not actually create a new thread. It does the -** work of the thread in the main thread, when either the thread is created -** or when it is joined - */ - -/* A running thread */ -type TSQLiteThread1 = struct { - FxTask uintptr - FpIn uintptr - FpResult uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr _ = p *(*uintptr)(unsafe.Pointer(ppThread)) = uintptr(0) @@ -22640,11 +18988,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } if int32(int64(p))/int32(17)&int32(1) != 0 { - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn } else { (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = uintptr(0) - (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -27913,22 +24261,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -27961,32 +24293,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 - FopenFlags int32 - FfsFlags uint32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -28208,7 +24514,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -28246,10 +24552,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -28623,48 +24929,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr - FsharedByte uint64 -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -28765,7 +25029,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -29454,7 +25718,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -29917,13 +26181,6 @@ type TafpLockingContext = struct { type afpLockingContext = TafpLockingContext -type TafpLockingContext1 = struct { - Freserved int32 - FdbPath uintptr -} - -type afpLockingContext1 = TafpLockingContext1 - type TByteRangeLockPB2 = struct { Foffset uint64 Flength uint64 @@ -30671,7 +26928,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3603, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3603, bp, int32(42579)) } // C documentation @@ -30708,7 +26965,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -31260,7 +27428,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -31323,7 +27491,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -31556,7 +27724,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 144)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1665, int32(1), bp+144) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -32999,7 +29167,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3486, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3486, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -33035,7 +29203,7 @@ 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(45306)) + _robust_close(tls, p, fd, int32(45308)) return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(13)< int32(SQLITE_MAX_SYMLINK) { - (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3675, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3675, zIn, int32(45510)) return } (*(*[1026]int8)(unsafe.Pointer(bp + 144)))[got] = 0 @@ -33313,14 +29471,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(45566)), __ccgo_ts+3504, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3504, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<= 0 { (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(16)].FpCurrent})))(tls, bp) - _robust_close(tls, pFile, fd, int32(46243)) + _robust_close(tls, pFile, fd, int32(46245)) } libc.Xfprintf(tls, libc.X__stderrp, __ccgo_ts+4258, libc.VaList(bp+2144, cPath, bp+2065)) } @@ -34203,14 +30347,14 @@ func _proxyTakeConch(tls *libc.TLS, pFile uintptr) (r int32) { ; 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(46496)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(46498)) } (*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(46504)) /* SQLITE_BUSY? proxyTakeConch called + rc = _sqlite3CantopenError(tls, int32(46506)) /* SQLITE_BUSY? proxyTakeConch called during locking */ } } @@ -35115,71 +31259,6 @@ type TMemStore = struct { type MemStore = TMemStore -/* Access to a lower-level VFS that (might) implement dynamic loading, -** access to randomness, etc. - */ - -/* Storage for a memdb file. -** -** An memdb object can be shared or separate. Shared memdb objects can be -** used by more than one database connection. Mutexes are used by shared -** memdb objects to coordinate access. Separate memdb objects are only -** connected to a single database connection and do not require additional -** mutexes. -** -** Shared memdb objects have .zFName!=0 and .pMutex!=0. They are created -** using "file:/name?vfs=memdb". The first character of the name must be -** "/" or else the object will be a separate memdb object. All shared -** memdb objects are stored in memdb_g.apMemStore[] in an arbitrary order. -** -** Separate memdb objects are created using a name that does not begin -** with "/" or using sqlite3_deserialize(). -** -** Access rules for shared MemStore objects: -** -** * .zFName is initialized when the object is created and afterwards -** is unchanged until the object is destroyed. So it can be accessed -** at any time as long as we know the object is not being destroyed, -** which means while either the SQLITE_MUTEX_STATIC_VFS1 or -** .pMutex is held or the object is not part of memdb_g.apMemStore[]. -** -** * Can .pMutex can only be changed while holding the -** SQLITE_MUTEX_STATIC_VFS1 mutex or while the object is not part -** of memdb_g.apMemStore[]. -** -** * Other fields can only be changed while holding the .pMutex mutex -** or when the .nRef is less than zero and the object is not part of -** memdb_g.apMemStore[]. -** -** * The .aData pointer has the added requirement that it can can only -** be changed (for resizing) when nMmap is zero. -** - */ -type TMemStore1 = struct { - Fsz Tsqlite3_int64 - FszAlloc Tsqlite3_int64 - FszMax Tsqlite3_int64 - FaData uintptr - FpMutex uintptr - FnMmap int32 - FmFlags uint32 - FnRdLock int32 - FnWrLock int32 - FnRef int32 - FzFName uintptr -} - -type MemStore1 = TMemStore1 - -/* An open file */ -type TMemFile1 = struct { - Fbase Tsqlite3_file - FpStore uintptr - FeLock int32 -} - -type MemFile1 = TMemFile1 - // C documentation // // /* @@ -36038,101 +32117,6 @@ func _sqlite3MemdbInit(tls *libc.TLS) (r int32) { return Xsqlite3_vfs_register(tls, uintptr(unsafe.Pointer(&_memdb_vfs)), 0) } -/************** End of memdb.c ***********************************************/ -/************** Begin file bitvec.c ******************************************/ -/* -** 2008 February 16 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements an object that represents a fixed-length -** bitmap. Bits are numbered starting with 1. -** -** A bitmap is used to record which pages of a database file have been -** journalled during a transaction, or which pages have the "dont-write" -** property. Usually only a few pages are meet either condition. -** So the bitmap is usually sparse and has low cardinality. -** But sometimes (for example when during a DROP of a large table) most -** or all of the pages in a database can get journalled. In those cases, -** the bitmap becomes dense with high cardinality. The algorithm needs -** to handle both cases well. -** -** The size of the bitmap is fixed when the object is created. -** -** All bits are clear when the bitmap is created. Individual bits -** may be set or cleared one at a time. -** -** Test operations are about 100 times more common that set operations. -** Clear operations are exceedingly rare. There are usually between -** 5 and 500 set operations per Bitvec object, though the number of sets can -** sometimes grow into tens of thousands or larger. The size of the -** Bitvec object is the number of pages in the database file at the -** start of a transaction, and is thus usually less than a few thousand, -** but can be as large as 2 billion for a really big database. - */ -/* #include "sqliteInt.h" */ - -/* Size of the Bitvec structure in bytes. */ - -/* Round the union size down to the nearest pointer boundary, since that's how -** it will be aligned within the Bitvec struct. */ - -/* Type of the array "element" for the bitmap representation. -** Should be a power of 2, and ideally, evenly divide into BITVEC_USIZE. -** Setting this to the "natural word" size of your CPU may improve -** performance. */ -/* Size, in bits, of the bitmap element. */ -/* Number of elements in a bitmap array. */ -/* Number of bits in the bitmap array. */ - -/* Number of u32 values in hash table. */ -/* Maximum number of entries in hash table before -** sub-dividing and re-hashing. */ -/* Hashing function for the aHash representation. -** Empirical testing showed that the *37 multiplier -** (an arbitrary prime)in the hash function provided -** no fewer collisions than the no-op *1. */ - -/* -** A bitmap is an instance of the following structure. -** -** This bitmap records the existence of zero or more bits -** with values between 1 and iSize, inclusive. -** -** There are three possible representations of the bitmap. -** If iSize<=BITVEC_NBIT, then Bitvec.u.aBitmap[] is a straight -** bitmap. The least significant bit is bit 1. -** -** If iSize>BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -36537,66 +32521,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -36770,14 +32694,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.X__builtin___memset_chk(tls, p, 0, uint64(80), ^t__predefined_size_t(0)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -37593,123 +33517,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -38906,25 +34713,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -39886,258 +35674,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]int8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -40236,7 +35772,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -42721,7 +38257,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -42912,10 +38448,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -43816,7 +39352,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -43891,7 +39427,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -44113,7 +39649,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -44369,7 +39905,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -44544,7 +40080,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -44575,7 +40111,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -44647,7 +40183,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -46004,7 +41540,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -46853,232 +42389,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -47097,29 +42407,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -47548,14 +42835,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -47722,7 +43001,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -47810,7 +43089,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -48390,10 +43669,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -48491,7 +43770,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -48530,7 +43809,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = *(*Tu32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -48543,7 +43822,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -48559,7 +43838,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -48580,7 +43859,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -48646,7 +43925,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -48944,7 +44223,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -49755,7 +45034,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -49901,7 +45180,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -49928,7 +45207,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -50256,7 +45535,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -50437,7 +45716,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -50446,7 +45725,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -50498,14 +45777,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -51051,288 +46330,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -51465,27 +46462,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -52368,11 +47344,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -52546,7 +47522,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -52559,12 +47535,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -52608,7 +47584,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -52616,7 +47592,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -53036,7 +48012,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -53076,12 +48052,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -53089,21 +48065,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.X__builtin___memmove_chk(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz)), ^t__predefined_size_t(0)) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -53150,12 +48126,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -53171,7 +48147,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -53231,7 +48207,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -53248,14 +48224,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -53298,11 +48274,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -53316,7 +48292,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -53397,12 +48373,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -53413,11 +48389,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -53438,7 +48414,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -53455,10 +48431,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -53519,7 +48495,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -53545,7 +48521,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -53584,12 +48560,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -53616,7 +48592,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -53647,11 +48623,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))< iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -53680,7 +48656,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -53693,7 +48669,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -53844,7 +48820,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -53906,7 +48882,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -54818,7 +49794,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -55259,7 +50235,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -55283,7 +50259,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -55292,7 +50268,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -55306,7 +50282,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -55336,7 +50312,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -55432,7 +50408,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -55470,7 +50446,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -55537,7 +50513,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -55580,7 +50556,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -55610,7 +50586,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -56076,7 +51052,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -56468,7 +51444,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -56478,7 +51454,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -56535,7 +51511,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -56609,7 +51585,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -56744,7 +51720,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -56756,7 +51732,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -56872,7 +51848,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -56886,7 +51862,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -57120,7 +52096,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -57204,7 +52180,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -57216,7 +52192,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -57418,7 +52394,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -57451,7 +52427,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -57460,7 +52436,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -57589,7 +52565,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -57699,7 +52675,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -57787,7 +52763,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -57842,7 +52818,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -57868,7 +52844,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -57895,7 +52871,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -57966,7 +52942,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -58104,7 +53080,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -58155,7 +53131,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -58164,7 +53140,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -58254,7 +53230,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -58272,7 +53248,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -58295,7 +53271,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -58516,7 +53492,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -58810,17 +53786,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -58910,12 +53875,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -58923,7 +53888,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.X__builtin___memmove_chk(tls, pData, pCell, uint64(sz), ^t__predefined_size_t(0)) i++ @@ -59018,7 +53983,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.X__builtin___memmove_chk(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz), ^t__predefined_size_t(0)) @@ -59166,7 +54131,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.X__builtin___memmove_chk(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2)), ^t__predefined_size_t(0)) nCell -= nShift @@ -59237,7 +54202,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -59282,7 +54247,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -59646,7 +54611,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -59669,7 +54634,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow)), ^t__predefined_size_t(0)) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -59800,7 +54765,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -59843,7 +54808,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -59902,7 +54867,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -59934,7 +54899,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -60164,7 +55129,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -60410,7 +55375,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -60483,7 +55448,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -60642,7 +55607,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -60673,7 +55638,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -60758,7 +55723,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -60850,7 +55815,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -60886,7 +55851,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -60916,10 +55881,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.X__builtin___memcpy_chk(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8))), ^t__predefined_size_t(0)) return SQLITE_OK @@ -61037,7 +56002,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -61059,7 +56024,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -61159,21 +56124,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))< _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -61418,7 +56383,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -61499,14 +56464,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -61643,7 +56608,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -62695,14 +57660,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -62913,45 +57878,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -64551,7 +59477,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -64564,8 +59490,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -64724,7 +59650,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -64766,11 +59692,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -64780,7 +59706,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -64802,12 +59728,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -64846,7 +59772,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -64958,8 +59884,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -65549,7 +60475,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -65565,7 +60491,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -65575,7 +60501,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -65626,9 +60552,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -65702,7 +60628,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.X__builtin___memset_chk(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136), ^t__predefined_size_t(0)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -67826,7 +62752,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -67834,7 +62760,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -68661,7 +63587,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -69509,7 +64435,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -69599,7 +64525,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -69634,7 +64560,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -69688,7 +64614,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -69820,7 +64746,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -69972,7 +64898,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -70003,7 +64929,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -70420,7 +65346,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -70747,12 +65673,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -70769,29 +65695,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -70821,13 +65751,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -70839,11 +65771,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -70851,23 +65787,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -71124,7 +66066,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -71254,7 +66196,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -71423,6 +66365,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -71436,7 +66380,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -71474,13 +66418,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -71980,14 +66924,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5961, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -72025,7 +66969,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -72035,7 +66979,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -72046,24 +66990,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -72111,7 +67059,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -72119,32 +67069,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -72561,7 +67517,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -72623,7 +67579,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, libc.Uint8FromInt8((*TColumn)(unsafe.Pointer(pCol)).Faffinity), bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -72724,7 +67680,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -76085,7 +71041,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -77995,7 +72951,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, int8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -78022,7 +72978,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -78914,7 +73870,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -79296,7 +74252,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -80947,7 +75903,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -82349,7 +77026,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -82840,8 +77517,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -83036,7 +77713,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -84688,57 +79365,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -85035,7 +79661,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -89499,12 +84125,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -93081,6 +87701,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -93618,6 +88243,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.X__builtin___memset_chk(tls, bp, 0, uint64(72), ^t__predefined_size_t(0)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -93824,7 +88470,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -93851,8 +88497,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -96267,31 +90913,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -96308,16 +90929,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -96620,9 +91231,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -96816,7 +91427,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11816, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -96835,7 +91446,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -97899,7 +92510,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -98453,44 +93064,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -99781,13 +94354,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -100986,6 +95552,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -101058,9 +95626,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -101240,47 +95808,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -101908,9 +96435,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -106156,7 +100683,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15073, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -111595,17 +106122,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -111819,12 +106335,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -115106,7 +109616,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -116600,33 +111110,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -118180,6 +112663,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -118213,7 +112698,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -118225,7 +112710,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1665 @@ -118249,7 +112734,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -118290,7 +112775,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -118337,330 +112822,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -119265,14 +113426,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -119287,7 +113443,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -119305,7 +113461,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -119320,7 +113476,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -119330,6 +113486,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -119341,7 +113499,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -119353,7 +113511,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -123116,25 +117274,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -123536,7 +117675,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -123549,7 +117688,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+19383, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -124143,7 +118282,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -124156,9 +118295,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -124345,7 +118484,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -124479,7 +118618,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -124601,15 +118740,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -124645,21 +118775,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -125346,13 +119461,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -129327,18 +123435,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -132931,6 +127027,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -137235,39 +131332,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -137278,7 +131342,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -137297,7 +131361,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -137322,15 +131386,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -137345,13 +131409,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -137873,7 +131939,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -137934,7 +132000,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -138218,9 +132284,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -138802,7 +132868,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -138815,7 +132881,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -139075,435 +133141,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff int8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -139848,10 +133485,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -140474,7 +134111,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -140824,7 +134461,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -142370,7 +136007,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -144509,16 +138146,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -144631,7 +138258,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -146149,10 +139776,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -148433,15 +142060,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -148473,7 +142091,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -148492,7 +142110,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -148529,7 +142147,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -148558,19 +142176,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.X__builtin___memset_chk(tls, bp+16, 0, uint64(48), ^t__predefined_size_t(0)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -148872,6 +142490,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -149414,7 +143040,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -150079,17 +143705,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -152064,7 +145679,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -152077,7 +145692,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -152256,7 +145871,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -153591,16 +147206,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -153619,17 +147224,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -153647,7 +147252,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -153671,13 +147276,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -153692,9 +147297,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -153702,13 +147307,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.X__builtin___memset_chk(tls, pExpr, 0, uint64(72), ^t__predefined_size_t(0)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -153724,13 +147329,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -154507,87 +148112,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -162836,14 +156360,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -162854,16 +156370,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -169837,7 +163343,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -171207,12 +164717,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -171230,9 +164740,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -171261,7 +164771,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -171279,15 +164789,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -171302,27 +164812,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -171333,30 +164843,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -171419,6 +164959,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -171429,43 +164971,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -171476,12 +165022,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -171493,6 +165039,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -171500,82 +165048,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -171619,18 +165177,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -171656,7 +165216,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -171788,7 +165348,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -171920,7 +165480,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -171930,7 +165490,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -171966,7 +165526,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -171979,7 +165539,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -172023,9 +165583,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -172527,7 +166087,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4629 @@ -172681,36 +166241,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -172718,7 +166286,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -172726,31 +166294,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -172784,12 +166356,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -172824,8 +166398,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -172836,7 +166410,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -174188,6 +167762,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -174211,7 +167787,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -174221,7 +167797,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -174233,7 +167809,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -174249,7 +167825,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -175465,106 +169041,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]int8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -178175,16 +171651,6 @@ type TJsonPretty = struct { 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 */ @@ -181011,16 +174477,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -181039,24 +174495,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -181064,13 +174502,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -182042,223 +175473,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -182276,33 +175493,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -182313,78 +175524,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -185345,9 +178540,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -185362,9 +178557,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -186264,23 +179459,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -186865,14 +180043,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -186897,16 +180067,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -187689,13 +180849,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -187930,36 +181083,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -188930,16 +182053,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+29063) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+29079) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -189248,12 +182371,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -189261,33 +182386,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -189905,248 +183034,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]int8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -192860,7 +185747,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -192962,7 +185849,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -193035,12 +185922,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -193065,18 +185952,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+7084, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+7084, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+7084, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+7084, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -193594,10 +186481,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -194116,7 +187003,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -194237,7 +187124,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -194282,9 +187169,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -194356,7 +187245,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -194559,7 +187448,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -194610,14 +187499,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.X__builtin___memset_chk(tls, zBuf, 0, libc.Uint64FromInt32(iAmt), ^t__predefined_size_t(0)) } 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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -196542,315 +189370,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -198256,13 +190775,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -198754,14 +191266,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -199269,15 +191773,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -199899,7 +192405,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -199913,7 +192419,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -199989,8 +192495,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -200015,13 +192521,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -200050,28 +192556,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -200210,7 +192720,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -200225,9 +192735,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.X__builtin___memset_chk(tls, pRet, 0, uint64(152), ^t__predefined_size_t(0)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -200256,20 +192766,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -200444,7 +192958,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -200468,7 +192982,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -200483,7 +192997,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -200539,7 +193053,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -200644,7 +193158,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -200750,7 +193264,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -200760,7 +193274,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -200839,7 +193353,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -201100,7 +193614,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -201249,11 +193763,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -201265,8 +193779,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -201294,12 +193808,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -201307,9 +193825,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.X__builtin___memset_chk(tls, bp, 0, uint64(72), ^t__predefined_size_t(0)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -201322,14 +193840,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -201353,29 +193863,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -201779,7 +194266,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -201797,11 +194284,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -201978,7 +194465,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -202002,7 +194489,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -202017,7 +194504,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -202068,7 +194555,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -202108,10 +194595,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -202149,11 +194636,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -202176,7 +194663,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -202195,7 +194682,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -202204,7 +194691,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -202214,7 +194701,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+35168, uintptr(0), uintptr(0), uintptr(0)) @@ -202227,7 +194714,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+35189, uintptr(0), uintptr(0), uintptr(0)) @@ -202243,7 +194730,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -202270,7 +194757,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.X__builtin___memset_chk(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte, ^t__predefined_size_t(0)) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -202298,7 +194785,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -202338,7 +194825,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -202362,7 +194849,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -202438,7 +194925,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -202447,7 +194934,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -202455,7 +194942,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.X__builtin___memset_chk(tls, bp+168, 0, uint64(152), ^t__predefined_size_t(0)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -202494,13 +194981,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -202509,11 +195000,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -202521,10 +195016,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -202532,37 +195033,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -203138,7 +195631,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -203173,8 +195666,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -203193,9 +195686,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -203306,18 +195799,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -203325,13 +195820,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -203373,12 +195870,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -203386,27 +195889,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -203561,7 +196055,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -203669,8 +196163,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -203682,9 +196176,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.X__builtin___memset_chk(tls, bp+24, 0, uint64(16), ^t__predefined_size_t(0)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -203758,21 +196252,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -203929,18 +196427,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -204000,99 +196486,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -204114,14 +196507,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -204133,29 +196518,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -204211,15 +196579,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -204241,14 +196600,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -204358,13 +196709,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -204931,14 +197275,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -204949,16 +197285,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -205010,10 +197336,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -205119,12 +197445,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -205732,18 +198058,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -205826,22 +198140,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -206019,16 +198317,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -206396,15 +198684,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -207135,21 +199414,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -207458,13 +199722,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -208120,7 +200377,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -208130,9 +200387,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -208494,115 +200751,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -209287,16 +201435,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -209321,14 +201459,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -210449,14 +202579,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -211397,14 +203519,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -211444,14 +203558,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -211815,66 +203921,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -212924,143 +204970,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -213068,191 +204977,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -216184,14 +207908,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -216201,15 +207917,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -216323,7 +208030,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -216344,7 +208051,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -217937,13 +209644,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -219064,16 +210764,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -219291,7 +210981,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -219328,7 +211018,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -219339,70 +211029,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -219571,14 +211197,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -219625,19 +211243,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -221953,87 +213558,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -222041,97 +213565,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -224099,7 +215532,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -224107,7 +215540,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -224118,8 +215551,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -224527,7 +215960,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -224557,8 +215990,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -224566,7 +215999,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -224858,7 +216291,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -224882,7 +216315,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -225169,14 +216602,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -225271,7 +216704,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -225288,8 +216721,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.X__builtin___memcpy_chk(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName), ^t__predefined_size_t(0)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -225316,7 +216749,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -225333,7 +216766,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.X__builtin___memcpy_chk(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName), ^t__predefined_size_t(0)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -225360,15 +216793,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -225428,11 +216852,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -225441,13 +216865,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -225456,7 +216880,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -225469,7 +216893,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -225486,7 +216910,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -225494,7 +216918,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -225966,60 +217390,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -226376,14 +217746,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -227114,17 +218476,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -227629,12 +218980,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -227739,7 +219084,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -227781,7 +219126,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -227815,18 +219160,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -228052,7 +219385,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -228239,7 +219572,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -228267,14 +219600,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]int8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -228352,14 +219677,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -228370,16 +219687,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -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')) } @@ -229005,14 +220312,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -229030,13 +220337,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -229118,7 +220418,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -229246,7 +220546,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -229322,11 +220622,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -234881,39 +226181,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -236027,11 +227294,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '4'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-17.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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-17.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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_freebsd_amd64.go b/vendor/modernc.org/sqlite/lib/sqlite_freebsd_amd64.go index af4f8252f..ffb049e2e 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_freebsd_amd64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_freebsd_amd64.go @@ -2047,7 +2047,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2157,8 +2157,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -4001,12 +4001,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4135,30 +4129,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - // C documentation // // /* @@ -4671,33 +4641,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -4776,19 +4719,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -4964,223 +4894,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5262,20 +4975,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5325,13 +5024,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5511,24 +5203,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5552,22 +5226,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -5708,50 +5366,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6148,340 +5762,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6491,15 +5771,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6515,14 +5786,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6548,17 +5811,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7002,52 +6254,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tfpos_t = int64 type fpos_t = Tfpos_t @@ -7498,14 +6704,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -7750,6 +6948,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -8235,10 +7434,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8667,9 +7862,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -8796,53 +7991,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -8946,16 +8094,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -8979,38 +8117,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9023,34 +8134,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9064,90 +8151,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9166,187 +8169,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9356,917 +8178,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity int8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10291,622 +8202,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr int8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -10916,318 +8211,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]int8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11313,232 +8296,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign int8 - FisSpecial int8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]int8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -12702,72 +9459,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -12813,152 +9504,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -12989,18 +9534,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13017,101 +9550,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]int8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13133,13 +9571,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13159,14 +9590,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13245,7 +9669,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13475,7 +9899,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13610,24 +10034,6 @@ type TDateTime = struct { 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 - FvalidYMD int8 - FvalidHMS int8 - FnFloor int8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15621,28 +12027,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15650,19 +12056,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15679,12 +12085,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15692,7 +12098,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15705,34 +12111,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16045,14 +12451,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16067,9 +12466,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -16817,6 +13216,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -16824,8 +13225,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20133,63 +16534,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ -/******************************** End Unix Pthreads *************************/ - -/********************************* Win32 Threads ****************************/ -/******************************** End Win32 Threads *************************/ - -/********************************* Single-Threaded **************************/ -/* -** This implementation does not actually create a new thread. It does the -** work of the thread in the main thread, when either the thread is created -** or when it is joined - */ - -/* A running thread */ -type TSQLiteThread1 = struct { - FxTask uintptr - FpIn uintptr - FpResult uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr _ = p *(*uintptr)(unsafe.Pointer(ppThread)) = uintptr(0) @@ -20198,11 +16546,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } if int32(int64(p))/int32(17)&int32(1) != 0 { - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn } else { (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = uintptr(0) - (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24275,22 +20623,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24321,30 +20653,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24564,7 +20872,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24602,10 +20910,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -24979,47 +21287,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25120,7 +21387,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -25750,7 +22017,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26393,7 +22660,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3603, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3603, bp, int32(42579)) } // C documentation @@ -26430,7 +22697,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -26978,7 +23156,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27041,7 +23219,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27274,7 +23452,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 224)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1665, int32(1), bp+224) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28451,7 +24629,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3486, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3486, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28528,7 +24706,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3675, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3675, zIn, int32(45510)) return } (*(*[1026]int8)(unsafe.Pointer(bp + 224)))[got] = 0 @@ -28726,14 +24894,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(45566)), __ccgo_ts+3504, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3504, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -30840,66 +26848,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31073,14 +27021,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -31896,123 +27844,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33209,25 +29040,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34189,258 +30001,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]int8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34539,7 +30099,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37024,7 +32584,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37215,10 +32775,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38119,7 +33679,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38194,7 +33754,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38416,7 +33976,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38672,7 +34232,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -38847,7 +34407,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -38878,7 +34438,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -38950,7 +34510,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -40307,7 +35867,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41156,232 +36716,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41400,29 +36734,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -41851,14 +37162,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42025,7 +37328,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42113,7 +37416,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42693,10 +37996,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -42794,7 +38097,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -42833,7 +38136,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = *(*Tu32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -42846,7 +38149,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -42862,7 +38165,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -42883,7 +38186,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -42949,7 +38252,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43247,7 +38550,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44058,7 +39361,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44204,7 +39507,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44231,7 +39534,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44559,7 +39862,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44740,7 +40043,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -44749,7 +40052,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -44801,14 +40104,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45354,288 +40657,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -45768,27 +40789,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46671,11 +41671,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -46849,7 +41849,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -46862,12 +41862,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46911,7 +41911,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -46919,7 +41919,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47339,7 +42339,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47379,12 +42379,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47392,21 +42392,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47453,12 +42453,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47474,7 +42474,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47534,7 +42534,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47551,14 +42551,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47601,11 +42601,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47619,7 +42619,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47700,12 +42700,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47716,11 +42716,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -47741,7 +42741,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -47758,10 +42758,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -47822,7 +42822,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -47848,7 +42848,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -47887,12 +42887,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -47919,7 +42919,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -47950,11 +42950,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))< iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -47983,7 +42983,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -47996,7 +42996,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48147,7 +43147,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48209,7 +43209,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49121,7 +44121,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -49562,7 +44562,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49586,7 +44586,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49595,7 +44595,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49609,7 +44609,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49639,7 +44639,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -49735,7 +44735,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49773,7 +44773,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -49840,7 +44840,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49883,7 +44883,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -49913,7 +44913,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50379,7 +45379,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50771,7 +45771,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50781,7 +45781,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -50838,7 +45838,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -50912,7 +45912,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51047,7 +46047,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51059,7 +46059,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -51175,7 +46175,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51189,7 +46189,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51423,7 +46423,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51507,7 +46507,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51519,7 +46519,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -51721,7 +46721,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -51754,7 +46754,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51763,7 +46763,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -51892,7 +46892,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52002,7 +47002,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52090,7 +47090,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52145,7 +47145,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52171,7 +47171,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52198,7 +47198,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -52269,7 +47269,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52407,7 +47407,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52458,7 +47458,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52467,7 +47467,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52557,7 +47557,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52575,7 +47575,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52598,7 +47598,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -52819,7 +47819,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53113,17 +48113,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53213,12 +48202,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53226,7 +48215,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -53321,7 +48310,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz)) @@ -53469,7 +48458,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2))) nCell -= nShift @@ -53540,7 +48529,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53585,7 +48574,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -53949,7 +48938,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -53972,7 +48961,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54103,7 +49092,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -54146,7 +49135,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54205,7 +49194,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54237,7 +49226,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54467,7 +49456,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54713,7 +49702,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -54786,7 +49775,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -54945,7 +49934,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -54976,7 +49965,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55061,7 +50050,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55153,7 +50142,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55189,7 +50178,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55219,10 +50208,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55340,7 +50329,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55362,7 +50351,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55462,21 +50451,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))< _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55721,7 +50710,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55802,14 +50791,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -55946,7 +50935,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -56998,14 +51987,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57216,45 +52205,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -58854,7 +53804,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -58867,8 +53817,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59027,7 +53977,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59069,11 +54019,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59083,7 +54033,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59105,12 +54055,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59149,7 +54099,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59261,8 +54211,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -59852,7 +54802,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -59868,7 +54818,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -59878,7 +54828,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -59929,9 +54879,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60005,7 +54955,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -62129,7 +57079,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62137,7 +57087,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -62964,7 +57914,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -63812,7 +58762,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -63902,7 +58852,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -63937,7 +58887,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -63991,7 +58941,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64123,7 +59073,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64275,7 +59225,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64306,7 +59256,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -64723,7 +59673,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65050,12 +60000,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65072,29 +60022,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65124,13 +60078,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65142,11 +60098,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65154,23 +60114,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65427,7 +60393,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65557,7 +60523,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65726,6 +60692,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -65739,7 +60707,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -65777,13 +60745,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66283,14 +61251,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5615, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66328,7 +61296,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66338,7 +61306,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66349,24 +61317,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66414,7 +61386,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66422,32 +61396,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -66864,7 +61844,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -66926,7 +61906,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, libc.Uint8FromInt8((*TColumn)(unsafe.Pointer(pCol)).Faffinity), bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67027,7 +62007,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70388,7 +65368,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72298,7 +67278,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, int8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72325,7 +67305,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73217,7 +68197,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -73599,7 +68579,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75250,7 +70230,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76652,7 +71353,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77143,8 +71844,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77339,7 +72040,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -78991,57 +73692,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79338,7 +73988,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -83802,12 +78452,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87384,6 +82028,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -87921,6 +82570,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88127,7 +82797,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -88154,8 +82824,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -90570,31 +85240,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90611,16 +85256,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -90923,9 +85558,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91119,7 +85754,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11470, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91138,7 +85773,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92202,7 +86837,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -92756,44 +87391,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94084,13 +88681,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95289,6 +89879,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95361,9 +89953,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95543,47 +90135,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96211,9 +90762,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100459,7 +95010,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14727, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -105898,17 +100449,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106122,12 +100662,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109409,7 +103943,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -110903,33 +105437,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112483,6 +106990,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112516,7 +107025,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112528,7 +107037,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1665 @@ -112552,7 +107061,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -112593,7 +107102,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -112640,330 +107149,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -113568,14 +107753,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113590,7 +107770,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113608,7 +107788,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -113623,7 +107803,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113633,6 +107813,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113644,7 +107826,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113656,7 +107838,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -117383,25 +111565,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -117803,7 +111966,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -117816,7 +111979,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+18988, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118410,7 +112573,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118423,9 +112586,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118612,7 +112775,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -118746,7 +112909,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -118868,15 +113031,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -118912,21 +113066,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119613,13 +113752,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -123594,18 +117726,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127198,6 +121318,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131502,39 +125623,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131545,7 +125633,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131564,7 +125652,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131589,15 +125677,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131612,13 +125700,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132140,7 +126230,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132201,7 +126291,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132485,9 +126575,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133069,7 +127159,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133082,7 +127172,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133342,435 +127432,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff int8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134115,10 +127776,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -134741,7 +128402,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135091,7 +128752,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136637,7 +130298,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -138776,16 +132437,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -138898,7 +132549,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140416,10 +134067,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -142700,15 +136351,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -142740,7 +136382,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -142759,7 +136401,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -142796,7 +136438,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -142825,19 +136467,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143139,6 +136781,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143681,7 +137331,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144346,17 +137996,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146331,7 +139970,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146344,7 +139983,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146523,7 +140162,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -147858,16 +141497,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -147886,17 +141515,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -147914,7 +141543,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -147938,13 +141567,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -147959,9 +141588,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -147969,13 +141598,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -147991,13 +141620,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -148774,87 +142403,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157103,14 +150651,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157121,16 +150661,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164104,7 +157634,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165474,12 +159008,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165497,9 +159031,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165528,7 +159062,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165546,15 +159080,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165569,27 +159103,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165600,30 +159134,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165686,6 +159250,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165696,43 +159262,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -165743,12 +159313,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -165760,6 +159330,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165767,82 +159339,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -165886,18 +159468,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -165923,7 +159507,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -166055,7 +159639,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166187,7 +159771,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166197,7 +159781,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166233,7 +159817,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166246,7 +159830,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166290,9 +159874,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -166794,7 +160378,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4283 @@ -166948,36 +160532,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -166985,7 +160577,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -166993,31 +160585,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167051,12 +160647,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167091,8 +160689,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167103,7 +160701,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168455,6 +162053,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168478,7 +162078,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168488,7 +162088,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168500,7 +162100,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168516,7 +162116,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -169732,106 +163332,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]int8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172442,16 +165942,6 @@ type TJsonPretty = struct { 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 */ @@ -175278,16 +168768,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175306,24 +168786,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175331,13 +168793,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176309,223 +169764,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176543,33 +169784,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176580,78 +169815,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -179613,9 +172832,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179630,9 +172849,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -180532,23 +173751,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181133,14 +174335,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181165,16 +174359,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -181957,13 +175141,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182198,36 +175375,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183198,16 +176345,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28670) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28686) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183516,12 +176663,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183529,33 +176678,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184173,248 +177326,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]int8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187128,7 +180039,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187230,7 +180141,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187303,12 +180214,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187333,18 +180244,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6738, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6738, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6738, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6738, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -187862,10 +180773,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188384,7 +181295,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -188505,7 +181416,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -188550,9 +181461,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188624,7 +181537,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -188827,7 +181740,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -188878,14 +181791,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint64FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -190810,315 +183662,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192524,13 +185067,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193022,14 +185558,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193537,15 +186065,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194167,7 +186697,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194181,7 +186711,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194257,8 +186787,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194283,13 +186813,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194318,28 +186848,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194478,7 +187012,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194493,9 +187027,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194524,20 +187058,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194712,7 +187250,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194736,7 +187274,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194751,7 +187289,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -194807,7 +187345,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -194912,7 +187450,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195018,7 +187556,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195028,7 +187566,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195107,7 +187645,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195368,7 +187906,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195517,11 +188055,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195533,8 +188071,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -195562,12 +188100,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -195575,9 +188117,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195590,14 +188132,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195621,29 +188155,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196047,7 +188558,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196065,11 +188576,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196246,7 +188757,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -196270,7 +188781,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196285,7 +188796,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196336,7 +188847,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -196376,10 +188887,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196417,11 +188928,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196444,7 +188955,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196463,7 +188974,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196472,7 +188983,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196482,7 +188993,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34777, uintptr(0), uintptr(0), uintptr(0)) @@ -196495,7 +189006,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34798, uintptr(0), uintptr(0), uintptr(0)) @@ -196511,7 +189022,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196538,7 +189049,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196566,7 +189077,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196606,7 +189117,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196630,7 +189141,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3888, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -196706,7 +189217,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196715,7 +189226,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -196723,7 +189234,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -196762,13 +189273,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -196777,11 +189292,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196789,10 +189308,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196800,37 +189325,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197406,7 +189923,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -197441,8 +189958,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -197461,9 +189978,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -197574,18 +190091,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197593,13 +190112,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197641,12 +190162,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197654,27 +190181,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -197829,7 +190347,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -197937,8 +190455,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -197950,9 +190468,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -198026,21 +190544,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198197,18 +190719,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198268,99 +190778,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198382,14 +190799,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198401,29 +190810,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198479,15 +190871,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198509,14 +190892,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198626,13 +191001,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199199,14 +191567,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199217,16 +191577,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199278,10 +191628,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199387,12 +191737,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -199993,18 +192343,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200087,22 +192425,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200280,16 +192602,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200657,15 +192969,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201396,21 +193699,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201719,13 +194007,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202381,7 +194662,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202391,9 +194672,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -202755,115 +195036,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203548,16 +195720,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -203582,14 +195744,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204710,14 +196864,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205658,14 +197804,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205705,14 +197843,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206076,66 +198206,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207185,143 +199255,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207329,191 +199262,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -210445,14 +202193,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210462,15 +202202,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210584,7 +202315,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210605,7 +202336,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212198,13 +203929,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213325,16 +205049,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213552,7 +205266,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213589,7 +205303,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213600,70 +205314,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -213832,14 +205482,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -213886,19 +205528,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216214,87 +207843,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216302,97 +207850,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -218360,7 +209817,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -218368,7 +209825,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -218379,8 +209836,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -218788,7 +210245,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -218818,8 +210275,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -218827,7 +210284,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219119,7 +210576,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219143,7 +210600,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -219430,14 +210887,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -219532,7 +210989,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -219549,8 +211006,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -219577,7 +211034,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -219594,7 +211051,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -219621,15 +211078,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -219689,11 +211137,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -219702,13 +211150,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -219717,7 +211165,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -219730,7 +211178,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -219747,7 +211195,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -219755,7 +211203,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220227,60 +211675,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -220637,14 +212031,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221375,17 +212761,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -221890,12 +213265,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222000,7 +213369,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222042,7 +213411,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222076,18 +213445,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222313,7 +213670,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -222500,7 +213857,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -222528,14 +213885,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]int8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -222613,14 +213962,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222631,16 +213972,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -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')) } @@ -223266,14 +214597,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223291,13 +214622,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223379,7 +214703,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223507,7 +214831,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223583,11 +214907,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229142,39 +220466,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230259,11 +221550,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '4'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-19.1.7\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-19.1.7\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 3db81cd19..e32db26d7 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_freebsd_arm64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_freebsd_arm64.go @@ -2047,7 +2047,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2157,8 +2157,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -4014,12 +4014,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4148,30 +4142,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - // C documentation // // /* @@ -4684,33 +4654,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -4789,19 +4732,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -4977,223 +4907,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5275,20 +4988,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5338,13 +5037,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5524,24 +5216,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5565,22 +5239,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -5721,50 +5379,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6161,340 +5775,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6504,15 +5784,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6528,14 +5799,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6561,17 +5824,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7015,52 +6267,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tfpos_t = int64 type fpos_t = Tfpos_t @@ -7511,14 +6717,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -7763,6 +6961,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -8248,10 +7447,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8680,9 +7875,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -8809,53 +8004,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -8959,16 +8107,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -8992,38 +8130,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9036,34 +8147,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9077,90 +8164,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9179,187 +8182,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9369,917 +8191,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity uint8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10304,622 +8215,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr uint8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -10929,318 +8224,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]uint8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11326,232 +8309,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign uint8 - FisSpecial uint8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]uint8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -12715,72 +9472,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -12826,152 +9517,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13002,18 +9547,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13030,101 +9563,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]uint8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13146,13 +9584,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13172,14 +9603,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13258,7 +9682,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13488,7 +9912,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13623,24 +10047,6 @@ type TDateTime = struct { 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 - FvalidYMD uint8 - FvalidHMS uint8 - FnFloor uint8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15634,28 +12040,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15663,19 +12069,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15692,12 +12098,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15705,7 +12111,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15718,34 +12124,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16058,14 +12464,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16080,9 +12479,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -16830,6 +13229,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -16837,8 +13238,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20146,63 +16547,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ -/******************************** End Unix Pthreads *************************/ - -/********************************* Win32 Threads ****************************/ -/******************************** End Win32 Threads *************************/ - -/********************************* Single-Threaded **************************/ -/* -** This implementation does not actually create a new thread. It does the -** work of the thread in the main thread, when either the thread is created -** or when it is joined - */ - -/* A running thread */ -type TSQLiteThread1 = struct { - FxTask uintptr - FpIn uintptr - FpResult uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr _ = p *(*uintptr)(unsafe.Pointer(ppThread)) = uintptr(0) @@ -20211,11 +16559,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } if int32(int64(p))/int32(17)&int32(1) != 0 { - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn } else { (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = uintptr(0) - (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24288,22 +20636,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24334,30 +20666,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24577,7 +20885,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24615,10 +20923,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -24992,47 +21300,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25133,7 +21400,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -25763,7 +22030,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26406,7 +22673,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3603, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3603, bp, int32(42579)) } // C documentation @@ -26443,7 +22710,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -26991,7 +23169,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27054,7 +23232,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27287,7 +23465,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 224)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1665, int32(1), bp+224) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28464,7 +24642,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3486, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3486, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28541,7 +24719,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3675, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3675, zIn, int32(45510)) return } (*(*[1026]uint8)(unsafe.Pointer(bp + 224)))[got] = uint8(0) @@ -28739,14 +24907,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if libc.Int32FromUint8(*(*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(45566)), __ccgo_ts+3504, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3504, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -30853,66 +26861,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31086,14 +27034,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -31909,123 +27857,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33222,25 +29053,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34202,258 +30014,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]uint8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34552,7 +30112,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37037,7 +32597,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37228,10 +32788,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38132,7 +33692,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38207,7 +33767,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38429,7 +33989,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38685,7 +34245,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -38860,7 +34420,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -38891,7 +34451,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -38963,7 +34523,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -40320,7 +35880,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41169,232 +36729,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41413,29 +36747,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -41864,14 +37175,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42038,7 +37341,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42126,7 +37429,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42706,10 +38009,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -42807,7 +38110,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -42846,7 +38149,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = *(*Tu32)(unsafe.Pointer(pInfo + 4 + uintptr(i)*4)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -42859,7 +38162,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -42875,7 +38178,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -42896,7 +38199,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -42962,7 +38265,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43260,7 +38563,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44071,7 +39374,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44217,7 +39520,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44244,7 +39547,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44572,7 +39875,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44753,7 +40056,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -44762,7 +40065,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -44814,14 +40117,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45367,288 +40670,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -45781,27 +40802,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46684,11 +41684,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -46862,7 +41862,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -46875,12 +41875,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -46924,7 +41924,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -46932,7 +41932,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47352,7 +42352,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47392,12 +42392,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47405,21 +42405,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47466,12 +42466,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47487,7 +42487,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47547,7 +42547,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47564,14 +42564,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47614,11 +42614,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47632,7 +42632,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47713,12 +42713,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47729,11 +42729,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -47754,7 +42754,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -47771,10 +42771,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -47835,7 +42835,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -47861,7 +42861,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -47900,12 +42900,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -47932,7 +42932,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -47963,11 +42963,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))< iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -47996,7 +42996,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48009,7 +43009,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48160,7 +43160,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48222,7 +43222,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49134,7 +44134,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -49575,7 +44575,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49599,7 +44599,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49608,7 +44608,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49622,7 +44622,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49652,7 +44652,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -49748,7 +44748,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49786,7 +44786,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -49853,7 +44853,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -49896,7 +44896,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -49926,7 +44926,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50392,7 +45392,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50784,7 +45784,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50794,7 +45794,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -50851,7 +45851,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -50925,7 +45925,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51060,7 +46060,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51072,7 +46072,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -51188,7 +46188,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51202,7 +46202,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51436,7 +46436,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51520,7 +46520,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51532,7 +46532,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -51734,7 +46734,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -51767,7 +46767,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51776,7 +46776,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -51905,7 +46905,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52015,7 +47015,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52103,7 +47103,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52158,7 +47158,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52184,7 +47184,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52211,7 +47211,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -52282,7 +47282,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52420,7 +47420,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52471,7 +47471,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52480,7 +47480,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52570,7 +47570,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52588,7 +47588,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52611,7 +47611,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -52832,7 +47832,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53126,17 +48126,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53226,12 +48215,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53239,7 +48228,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -53334,7 +48323,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz)) @@ -53482,7 +48471,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2))) nCell -= nShift @@ -53553,7 +48542,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53598,7 +48587,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -53962,7 +48951,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -53985,7 +48974,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54116,7 +49105,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -54159,7 +49148,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54218,7 +49207,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54250,7 +49239,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54480,7 +49469,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54726,7 +49715,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -54799,7 +49788,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -54958,7 +49947,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -54989,7 +49978,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55074,7 +50063,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55166,7 +50155,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55202,7 +50191,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55232,10 +50221,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55353,7 +50342,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55375,7 +50364,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55475,21 +50464,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx + uintptr(int32(2)*iCellIdx))))< _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55734,7 +50723,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55815,14 +50804,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -55959,7 +50948,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57011,14 +52000,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57229,45 +52218,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -58867,7 +53817,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -58880,8 +53830,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59040,7 +53990,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59082,11 +54032,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59096,7 +54046,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59118,12 +54068,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59162,7 +54112,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59274,8 +54224,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -59865,7 +54815,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -59881,7 +54831,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -59891,7 +54841,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -59942,9 +54892,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60018,7 +54968,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -62142,7 +57092,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62150,7 +57100,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -62977,7 +57927,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -63825,7 +58775,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -63915,7 +58865,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -63950,7 +58900,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64004,7 +58954,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64136,7 +59086,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64288,7 +59238,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64319,7 +59269,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -64736,7 +59686,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65063,12 +60013,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65085,29 +60035,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65137,13 +60091,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65155,11 +60111,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65167,23 +60127,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65440,7 +60406,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65570,7 +60536,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65739,6 +60705,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -65752,7 +60720,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -65790,13 +60758,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66296,14 +61264,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5615, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66341,7 +61309,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66351,7 +61319,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66362,24 +61330,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66427,7 +61399,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66435,32 +61409,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -66877,7 +61857,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -66939,7 +61919,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol)).Faffinity, bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67040,7 +62020,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70401,7 +65381,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72311,7 +67291,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, uint8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72338,7 +67318,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73230,7 +68210,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -73612,7 +68592,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75263,7 +70243,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76665,7 +71366,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77156,8 +71857,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77352,7 +72053,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -79004,57 +73705,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79351,7 +74001,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -83815,12 +78465,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87397,6 +82041,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -87934,6 +82583,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88140,7 +82810,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -88167,8 +82837,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -90583,31 +85253,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90624,16 +85269,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -90936,9 +85571,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91132,7 +85767,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11470, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91151,7 +85786,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92215,7 +86850,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -92769,44 +87404,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94097,13 +88694,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95302,6 +89892,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95374,9 +89966,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95556,47 +90148,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96224,9 +90775,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100472,7 +95023,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14727, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -105911,17 +100462,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106135,12 +100675,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109422,7 +103956,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -110916,33 +105450,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112496,6 +107003,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112529,7 +107038,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112541,7 +107050,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1665 @@ -112565,7 +107074,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -112606,7 +107115,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -112653,330 +107162,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -113581,14 +107766,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113603,7 +107783,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113621,7 +107801,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -113636,7 +107816,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113646,6 +107826,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113657,7 +107839,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113669,7 +107851,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -117396,25 +111578,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -117816,7 +111979,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -117829,7 +111992,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+18988, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118423,7 +112586,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118436,9 +112599,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118625,7 +112788,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -118759,7 +112922,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -118881,15 +113044,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -118925,21 +113079,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119626,13 +113765,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -123607,18 +117739,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127211,6 +121331,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131515,39 +125636,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131558,7 +125646,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131577,7 +125665,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131602,15 +125690,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131625,13 +125713,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132153,7 +126243,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132214,7 +126304,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132498,9 +126588,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133082,7 +127172,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133095,7 +127185,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133355,435 +127445,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff uint8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134128,10 +127789,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -134754,7 +128415,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135104,7 +128765,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136650,7 +130311,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -138789,16 +132450,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -138911,7 +132562,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140429,10 +134080,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -142713,15 +136364,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -142753,7 +136395,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -142772,7 +136414,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -142809,7 +136451,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -142838,19 +136480,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143152,6 +136794,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143694,7 +137344,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144359,17 +138009,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146344,7 +139983,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146357,7 +139996,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146536,7 +140175,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -147871,16 +141510,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -147899,17 +141528,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -147927,7 +141556,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -147951,13 +141580,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -147972,9 +141601,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -147982,13 +141611,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148004,13 +141633,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -148787,87 +142416,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157116,14 +150664,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157134,16 +150674,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164117,7 +157647,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165487,12 +159021,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165510,9 +159044,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165541,7 +159075,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165559,15 +159093,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165582,27 +159116,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165613,30 +159147,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165699,6 +159263,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165709,43 +159275,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -165756,12 +159326,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -165773,6 +159343,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165780,82 +159352,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -165899,18 +159481,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -165936,7 +159520,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -166068,7 +159652,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166200,7 +159784,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166210,7 +159794,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166246,7 +159830,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166259,7 +159843,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166303,9 +159887,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -166807,7 +160391,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4283 @@ -166961,36 +160545,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -166998,7 +160590,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167006,31 +160598,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167064,12 +160660,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167104,8 +160702,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167116,7 +160714,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168468,6 +162066,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168491,7 +162091,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168501,7 +162101,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168513,7 +162113,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168529,7 +162129,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -169745,106 +163345,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]uint8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172455,16 +165955,6 @@ type TJsonPretty = struct { 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 */ @@ -175291,16 +168781,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175319,24 +168799,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175344,13 +168806,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176322,223 +169777,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176556,33 +169797,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176593,78 +169828,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -179626,9 +172845,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(d * v1) } @@ -179643,9 +172862,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(d * v1) } @@ -180545,23 +173764,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181146,14 +174348,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181178,16 +174372,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -181970,13 +175154,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182211,36 +175388,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183211,16 +176358,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28670) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28686) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183529,12 +176676,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183542,33 +176691,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184186,248 +177339,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]uint8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187141,7 +180052,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187243,7 +180154,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187316,12 +180227,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187346,18 +180257,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6738, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6738, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6738, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6738, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -187875,10 +180786,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188397,7 +181308,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -188518,7 +181429,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -188563,9 +181474,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188637,7 +181550,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -188840,7 +181753,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -188891,14 +181804,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint64FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -190823,315 +183675,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192537,13 +185080,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193035,14 +185571,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193550,15 +186078,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194180,7 +186710,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194194,7 +186724,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194270,8 +186800,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194296,13 +186826,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194331,28 +186861,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194491,7 +187025,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194506,9 +187040,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194537,20 +187071,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194725,7 +187263,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194749,7 +187287,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194764,7 +187302,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -194820,7 +187358,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -194925,7 +187463,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195031,7 +187569,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195041,7 +187579,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195120,7 +187658,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195381,7 +187919,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195530,11 +188068,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195546,8 +188084,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -195575,12 +188113,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -195588,9 +188130,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195603,14 +188145,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195634,29 +188168,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196060,7 +188571,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196078,11 +188589,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196259,7 +188770,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -196283,7 +188794,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196298,7 +188809,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196349,7 +188860,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -196389,10 +188900,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196430,11 +188941,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196457,7 +188968,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196476,7 +188987,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196485,7 +188996,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196495,7 +189006,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34777, uintptr(0), uintptr(0), uintptr(0)) @@ -196508,7 +189019,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34798, uintptr(0), uintptr(0), uintptr(0)) @@ -196524,7 +189035,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196551,7 +189062,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196579,7 +189090,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196619,7 +189130,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196643,7 +189154,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3888, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -196719,7 +189230,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196728,7 +189239,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -196736,7 +189247,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -196775,13 +189286,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -196790,11 +189305,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196802,10 +189321,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196813,37 +189338,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197419,7 +189936,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -197454,8 +189971,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -197474,9 +189991,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -197587,18 +190104,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197606,13 +190125,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197654,12 +190175,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197667,27 +190194,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -197842,7 +190360,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -197950,8 +190468,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -197963,9 +190481,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -198039,21 +190557,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198210,18 +190732,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198281,99 +190791,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198395,14 +190812,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198414,29 +190823,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198492,15 +190884,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198522,14 +190905,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198639,13 +191014,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199212,14 +191580,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199230,16 +191590,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199291,10 +191641,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199400,12 +191750,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -200006,18 +192356,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200100,22 +192438,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200293,16 +192615,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200670,15 +192982,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201409,21 +193712,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201732,13 +194020,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202394,7 +194675,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202404,9 +194685,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -202768,115 +195049,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203561,16 +195733,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -203595,14 +195757,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204723,14 +196877,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205671,14 +197817,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205718,14 +197856,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206089,66 +198219,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207198,143 +199268,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207342,191 +199275,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -210458,14 +202206,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210475,15 +202215,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210597,7 +202328,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210618,7 +202349,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212211,13 +203942,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213338,16 +205062,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213565,7 +205279,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213602,7 +205316,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213613,70 +205327,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -213845,14 +205495,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -213899,19 +205541,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216227,87 +207856,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216315,97 +207863,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -218373,7 +209830,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -218381,7 +209838,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -218392,8 +209849,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -218801,7 +210258,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -218831,8 +210288,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -218840,7 +210297,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219132,7 +210589,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219156,7 +210613,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -219443,14 +210900,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -219545,7 +211002,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -219562,8 +211019,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -219590,7 +211047,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -219607,7 +211064,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -219634,15 +211091,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -219702,11 +211150,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -219715,13 +211163,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -219730,7 +211178,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -219743,7 +211191,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -219760,7 +211208,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -219768,7 +211216,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220240,60 +211688,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -220650,14 +212044,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221388,17 +212774,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -221903,12 +213278,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222013,7 +213382,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222055,7 +213424,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222089,18 +213458,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222326,7 +213683,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -222513,7 +213870,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -222541,14 +213898,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]uint8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -222626,14 +213975,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222644,16 +213985,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -type PorterRule1 = TPorterRule1 - func _fts5PorterIsVowel(tls *libc.TLS, c uint8, bYIsVowel int32) (r int32) { return libc.BoolInt32(libc.Int32FromUint8(c) == int32('a') || libc.Int32FromUint8(c) == int32('e') || libc.Int32FromUint8(c) == int32('i') || libc.Int32FromUint8(c) == int32('o') || libc.Int32FromUint8(c) == int32('u') || bYIsVowel != 0 && libc.Int32FromUint8(c) == int32('y')) } @@ -223279,14 +214610,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223304,13 +214635,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223392,7 +214716,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223520,7 +214844,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223596,11 +214920,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229155,39 +220479,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230272,11 +221563,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '4'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-19.1.7\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=0\x00COMPILER=clang-19.1.7\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 5cb499da8..8b341113e 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_386.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_386.go @@ -2185,7 +2185,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2296,8 +2296,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -3923,12 +3923,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4057,30 +4051,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - /* ** CAPI3REF: Standard File Control Opcodes ** KEYWORDS: {file control opcodes} {file control opcode} @@ -4968,33 +4938,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -5073,19 +5016,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -5261,223 +5191,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5559,20 +5272,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5622,13 +5321,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5808,24 +5500,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5849,22 +5523,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -6005,50 +5663,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6445,340 +6059,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6788,15 +6068,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6812,14 +6083,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6845,17 +6108,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7299,52 +6551,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint32 type size_t = Tsize_t @@ -7674,14 +6880,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -7926,12 +7124,13 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 } FpTab uintptr - F__ccgo_pad3 [4]byte + F__ccgo_pad4 [4]byte } } @@ -8411,10 +7610,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8844,9 +8039,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -8973,53 +8168,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -9123,16 +8271,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -9156,38 +8294,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9200,34 +8311,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9241,90 +8328,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9343,187 +8346,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9533,918 +8355,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo4 uint8 - Faffinity int8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - F__ccgo_pad2 [4]byte - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo56 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10469,620 +8379,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr int8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - F__ccgo_pad3 [4]byte - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -11092,318 +8388,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo32 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]int8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11489,232 +8473,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign int8 - FisSpecial int8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]int8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -12878,72 +9636,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -12989,152 +9681,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13165,18 +9711,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13193,101 +9727,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]int8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo144 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [20]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13309,13 +9748,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13335,14 +9767,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13421,7 +9846,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint32(libc.Uint32FromInt64(40)/libc.Uint32FromInt64(4)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13651,7 +10076,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13787,24 +10212,6 @@ type TDateTime = struct { 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 - FvalidYMD int8 - FvalidHMS int8 - FnFloor int8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15798,28 +12205,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15827,19 +12234,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15856,12 +12263,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15869,7 +12276,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15882,34 +12289,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16222,14 +12629,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16244,9 +12644,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -16991,27 +13391,6 @@ type t__ptcb = struct { F__next uintptr } -type Tcpu_set_t1 = struct { - F__bits [32]uint32 -} - -type cpu_set_t1 = Tcpu_set_t1 - -/* -** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two conditions: (1) Debug builds and (2) using -** home-grown mutexes. Encapsulate these conditions into a single #define. - */ - -/* -** Each recursive mutex is an instance of the following structure. - */ -type Tsqlite3_mutex1 = struct { - Fmutex Tpthread_mutex_t -} - -type sqlite3_mutex1 = Tsqlite3_mutex1 - /* ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are ** intended for use only inside assert() statements. On some platforms, @@ -17295,6 +13674,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -17302,8 +13683,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20611,56 +16992,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint32(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ - -/* #include */ - -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid Tpthread_t - Fdone int32 - FpOut uintptr - FxTask uintptr - FpIn uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -20671,7 +17006,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } libc.Xmemset(tls, p, 0, uint32(20)) - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a ** function that returns SQLITE_ERROR when passed the argument 200, that @@ -20680,11 +17015,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if _sqlite3FaultSim(tls, int32(200)) != 0 { rc = int32(1) } else { - rc = libc.Xpthread_create(tls, p, uintptr(0), xTask, pIn) + rc = libc.Xpthread_create(tls, p, uintptr(0), __ccgo_fp_xTask, pIn) } if rc != 0 { (*TSQLiteThread)(unsafe.Pointer(p)).Fdone = int32(1) - (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24506,22 +20841,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24552,30 +20871,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24802,7 +21097,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24840,10 +21135,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -25218,47 +21513,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25359,7 +21613,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -25989,7 +22243,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26620,7 +22874,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3605, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3605, bp, int32(42579)) } // C documentation @@ -26657,7 +22911,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -27205,7 +23370,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27268,7 +23433,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27501,7 +23666,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 144)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1667, int32(1), bp+144) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28670,7 +24835,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3488, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3488, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28747,7 +24912,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+144, 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(45508)), __ccgo_ts+3677, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3677, zIn, int32(45510)) return } (*(*[4098]int8)(unsafe.Pointer(bp + 144)))[got] = 0 @@ -28945,14 +25100,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(45566)), __ccgo_ts+3506, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3506, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][125]Tu32 - FapSub [0][125]uintptr - FaBitmap [500]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -31024,66 +27019,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31257,14 +27192,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint32(52)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -32080,123 +28015,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33393,25 +29211,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34373,258 +30172,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]int8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34723,7 +30270,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37208,7 +32755,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37399,10 +32946,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 184 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38303,7 +33850,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38378,7 +33925,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38600,7 +34147,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38856,7 +34403,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -39031,7 +34578,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -39062,7 +34609,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -39134,7 +34681,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+4) @@ -40491,7 +36038,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 28 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41339,232 +36886,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41583,28 +36904,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -42033,14 +37332,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42207,7 +37498,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42295,7 +37586,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42875,10 +38166,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -42976,7 +38267,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -43015,7 +38306,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -43028,7 +38319,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -43044,7 +38335,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -43065,7 +38356,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -43131,7 +38422,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43429,7 +38720,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44240,7 +39531,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44386,7 +39677,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44413,7 +39704,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44741,7 +40032,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44922,7 +40213,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -44931,7 +40222,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -44983,14 +40274,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45536,288 +40827,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -45950,27 +40959,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46853,11 +41841,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -47031,7 +42019,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47044,12 +42032,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47093,7 +42081,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -47101,7 +42089,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47521,7 +42509,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47561,12 +42549,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47574,21 +42562,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint32FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47635,12 +42623,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47656,7 +42644,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47716,7 +42704,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47733,14 +42721,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47783,11 +42771,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47801,7 +42789,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47882,12 +42870,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47898,11 +42886,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -47923,7 +42911,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -47940,10 +42928,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -48004,7 +42992,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -48030,7 +43018,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -48069,12 +43057,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48101,7 +43089,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -48132,11 +43120,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -48165,7 +43153,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48178,7 +43166,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48329,7 +43317,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48391,7 +43379,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49303,7 +44291,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 4)) @@ -49744,7 +44732,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49768,7 +44756,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49777,7 +44765,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49791,7 +44779,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49821,7 +44809,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -49917,7 +44905,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49955,7 +44943,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 20)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 16)), bCommit) @@ -50022,7 +45010,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50065,7 +45053,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -50095,7 +45083,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50561,7 +45549,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50953,7 +45941,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50963,7 +45951,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -51020,7 +46008,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -51094,7 +46082,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51229,7 +46217,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51241,7 +46229,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+108, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 60 @@ -51357,7 +46345,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51371,7 +46359,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51605,7 +46593,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51689,7 +46677,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51701,7 +46689,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -51903,7 +46891,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -51936,7 +46924,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 64 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 112 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*4)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51945,7 +46933,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+108, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 60 @@ -52074,7 +47062,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52184,7 +47172,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52272,7 +47260,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52327,7 +47315,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52353,7 +47341,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52380,7 +47368,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+8, 0) @@ -52451,7 +47439,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52589,7 +47577,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 4)) = pMemPage @@ -52640,7 +47628,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(78381)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 8)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52649,7 +47637,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 + 8)) = _sqlite3CorruptError(tls, int32(78392)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52739,7 +47727,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52757,7 +47745,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+4, bp) @@ -52780,7 +47768,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 4)), ovflPgno) } @@ -53001,7 +47989,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53295,17 +48283,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53395,12 +48372,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 uint32(pCell) >= uint32(aData+uintptr(j)) && uint32(pCell) < uint32(pEnd) { if uint32(pCell+uintptr(sz)) > uint32(pEnd) { - return _sqlite3CorruptError(tls, int32(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int32(pCell)-int32(aData)) } else { if uint32(pCell+uintptr(sz)) > uint32(pSrcEnd) && uint32(pCell) < uint32(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53408,7 +48385,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt32(int32(pData) - int32(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint32(sz)) i++ @@ -53503,7 +48480,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 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) { - _sqlite3CorruptError(tls, int32(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4)), libc.Uint32FromInt32(sz)) @@ -53651,7 +48628,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint32FromInt32(nCell*int32(2))) nCell -= nShift @@ -53722,7 +48699,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53767,7 +48744,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -54131,7 +49108,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 4)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -54154,7 +49131,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)*libc.Uint32FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54285,7 +49262,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 36)))[k-int32(1)] = 0 @@ -54328,7 +49305,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54387,7 +49364,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54419,7 +49396,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54649,7 +49626,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54895,7 +49872,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -54968,7 +49945,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 112 + uintptr(iPage-int32(1))*4)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 64 + uintptr(iPage-int32(1))*2))) @@ -55127,7 +50104,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -55158,7 +50135,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55243,7 +50220,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55335,7 +50312,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55371,7 +50348,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55401,10 +50378,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint32FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55522,7 +50499,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55544,7 +50521,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55644,21 +50621,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&libc.Int32FromUint16(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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55752,7 +50729,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } nCell = libc.Int32FromUint16((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55862,7 +50839,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 4))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55903,7 +50880,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 20))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 20))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55984,14 +50961,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+4 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -56128,7 +51105,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57180,14 +52157,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57398,45 +52375,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -59038,7 +53976,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -59051,8 +53989,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59211,7 +54149,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59253,11 +54191,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59267,7 +54205,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59289,12 +54227,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59333,7 +54271,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59445,8 +54383,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -60036,7 +54974,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -60052,7 +54990,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -60062,7 +55000,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -60113,9 +55051,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60189,7 +55127,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+100, 0, libc.Uint32FromInt64(224)-uint32(libc.UintptrFromInt32(0)+100)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 8 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 8 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 4 @@ -62313,7 +57251,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62321,7 +57259,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*40 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -63148,7 +58086,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -63996,7 +58934,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -64086,7 +59024,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 20 + uintptr(i)*4)) != 0 { @@ -64121,7 +59059,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 48)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64175,7 +59113,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 48))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64307,7 +59245,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64459,7 +59397,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64490,7 +59428,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -64907,7 +59845,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65234,12 +60172,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65256,29 +60194,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65308,13 +60250,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65326,11 +60270,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65338,23 +60286,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65611,7 +60565,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65741,7 +60695,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65910,6 +60864,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -65923,7 +60879,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -65961,13 +60917,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66467,14 +61423,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5617, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66512,7 +61468,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66522,7 +61478,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*40 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66533,24 +61489,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66598,7 +61558,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66606,32 +61568,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*40, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*40, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -67048,7 +62016,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -67110,7 +62078,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 44))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*20))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, libc.Uint8FromInt8((*TColumn)(unsafe.Pointer(pCol)).Faffinity), bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*4)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67211,7 +62179,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70572,7 +65540,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*20 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72482,7 +67450,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 192)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 192)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+192, int8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 192))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72509,7 +67477,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 188)) if *(*int32)(unsafe.Pointer(bp + 188)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73401,7 +68369,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+404, db, uint16(0)) @@ -73783,7 +68751,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75434,7 +70402,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76836,7 +71525,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77327,8 +72016,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77523,7 +72212,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+12 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 12)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+12) @@ -79175,57 +73864,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79522,7 +74160,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -83986,12 +78624,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87568,6 +82200,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -88105,6 +82742,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(64) + defer tls.Free(64) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 32)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint32(52)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 44)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+32, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+32, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88311,7 +82969,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(160) defer tls.Free(160) var db, pDel uintptr @@ -88338,8 +82996,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 104))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 104))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)) + 8 + 1*20))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+156)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -90754,31 +85412,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90795,16 +85428,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -91107,9 +85730,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91303,7 +85926,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11472, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91322,7 +85945,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92386,7 +87009,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName) @@ -92940,44 +87563,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94268,13 +88853,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95473,6 +90051,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95545,9 +90125,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95727,47 +90307,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96395,9 +90934,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100643,7 +95182,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14729, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -106082,17 +100621,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106306,12 +100834,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109593,7 +104115,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 20 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 24)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*12))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 24)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*12))).FcolFlags)) } return WRC_Continue } @@ -111087,33 +105609,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [4]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112667,6 +107162,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112700,7 +107197,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112712,7 +107209,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) /* The current SQL statement */ azCols = uintptr(0) /* True if callback data is initialized */ if !(_sqlite3SafetyCheckOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1667 @@ -112736,7 +107233,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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 + 4))) azCols = _sqlite3DbMallocRaw(tls, db, uint64(libc.Uint32FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint32(4))) @@ -112777,7 +107274,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*4)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -112824,330 +107321,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -113752,14 +107925,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113774,7 +107942,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113792,7 +107960,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == __ccgo_fp_xInit { break } goto _1 @@ -113807,7 +107975,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113817,6 +107985,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113828,7 +107998,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113840,7 +108010,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) n++ @@ -117567,25 +111737,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -117987,7 +112138,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*4)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*4)) @@ -118000,7 +112151,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+18990, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118594,7 +112745,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118607,9 +112758,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118796,7 +112947,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -118930,7 +113081,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -119052,15 +113203,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -119096,21 +113238,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119797,13 +113924,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -123778,18 +117898,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127382,6 +121490,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 52)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131686,39 +125795,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131729,7 +125805,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131748,7 +125824,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131773,15 +125849,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131796,13 +125872,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132324,7 +126402,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132385,7 +126463,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+8, bp+16) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132669,9 +126747,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133253,7 +127331,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133266,7 +127344,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133526,435 +127604,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff int8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo48 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134299,10 +127948,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -134925,7 +128574,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135275,7 +128924,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136821,7 +130470,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752 + uintptr(k)*84))).FiFrom)*48 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752 + uintptr(k)*84))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752 + uintptr(k)*84))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 12 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 44)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -138960,16 +132609,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -139082,7 +132721,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 752 + uintptr(i)*84 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140600,10 +134239,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -142884,15 +136523,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -142924,7 +136554,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -142943,7 +136573,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -142980,7 +136610,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(48) defer tls.Free(48) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+12 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -143009,19 +136639,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+12, 0, uint32(28)) (*(*TWalker)(unsafe.Pointer(bp + 12))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 12))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 12 + 24)) = bp _sqlite3WalkSelect(tls, bp+12, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143323,6 +136953,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143865,7 +137503,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 20 + uintptr(iCons)*4)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144530,17 +138168,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*48))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146515,7 +140142,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146528,7 +140155,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 752))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146707,7 +140334,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 752 + uintptr(ii)*84 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*48 if int32(*(*uint32)(unsafe.Pointer(pSrc + 12 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -148042,16 +141669,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -148070,17 +141687,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*48))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*48))).FiCursor { break } goto _1 @@ -148098,7 +141715,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -148122,13 +141739,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*20))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*20))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -148143,9 +141760,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -148153,13 +141770,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint32(52)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(v4) - (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpWin)).FiEphCsr - (*TExpr)(unsafe.Pointer(pExpr)).Fy.FpTab = (*TWindowRewrite1)(unsafe.Pointer(p)).FpTab + (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + (*TExpr)(unsafe.Pointer(pExpr)).Fy.FpTab = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148175,13 +141792,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 24)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -148958,87 +142575,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157287,14 +150823,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157305,16 +150833,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164290,7 +157808,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165660,12 +159182,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165683,9 +159205,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165714,7 +159236,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165732,15 +159254,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 36)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165755,27 +159277,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(12)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165786,30 +159308,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165872,6 +159424,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165882,43 +159436,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 212)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 212)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 212)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 212)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -165929,12 +159487,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 90 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -165946,6 +159504,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165953,82 +159513,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -166072,18 +159642,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -166109,7 +159681,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -166241,7 +159813,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166373,7 +159945,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166383,7 +159955,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166419,7 +159991,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166432,7 +160004,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166476,9 +160048,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -166980,7 +160552,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4285 @@ -167134,36 +160706,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -167171,7 +160751,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167179,31 +160759,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167237,12 +160821,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167277,8 +160863,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint32(libc.UintptrFromInt32(0)+12)+(n+libc.Uint32FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167289,7 +160875,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168641,6 +162227,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168664,7 +162252,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168674,7 +162262,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168686,7 +162274,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168702,7 +162290,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -169918,106 +163506,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]int8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172628,16 +166116,6 @@ type TJsonPretty = struct { 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 */ @@ -175464,16 +168942,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175492,24 +168960,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175517,13 +168967,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176495,223 +169938,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176729,33 +169958,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176766,78 +169989,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -179793,9 +173000,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179810,9 +173017,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -180712,23 +173919,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181313,14 +174503,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181345,16 +174527,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -182137,13 +175309,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182378,36 +175543,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183378,16 +176513,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28672) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28688) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183696,12 +176831,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183709,33 +176846,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(16)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184353,248 +177494,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]int8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187308,7 +180207,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187410,7 +180309,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187483,12 +180382,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187513,18 +180412,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -188042,10 +180941,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188564,7 +181463,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -188685,7 +181584,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -188730,9 +181629,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188804,7 +181705,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -189007,7 +181908,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -189058,14 +181959,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint32FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint32(libc.Uint32FromInt64(1280)/libc.Uint32FromInt64(40)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*40))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -190990,315 +183830,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192703,13 +185234,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193201,14 +185725,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193716,15 +186232,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194346,7 +186864,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194360,7 +186878,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194436,8 +186954,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194462,13 +186980,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194497,28 +187015,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194657,7 +187179,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194672,9 +187194,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint32(100)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194703,20 +187225,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194891,7 +187417,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194915,7 +187441,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194930,7 +187456,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -194986,7 +187512,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195091,7 +187617,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195197,7 +187723,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195207,7 +187733,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195286,7 +187812,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)*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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195547,7 +188073,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195696,11 +188222,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195712,8 +188238,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) } } goto finished_invert @@ -195741,12 +188267,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var rc int32 @@ -195754,9 +188284,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint32(44)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195769,14 +188299,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195800,29 +188322,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196226,7 +188725,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196244,11 +188743,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196425,7 +188924,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var aBlob uintptr @@ -196449,7 +188948,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196464,7 +188963,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196515,7 +189014,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var abPK, pNew, pOld, v1 uintptr @@ -196555,10 +189054,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196596,11 +189095,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196623,7 +189122,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196642,7 +189141,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196651,7 +189150,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196661,7 +189160,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34779, uintptr(0), uintptr(0), uintptr(0)) @@ -196674,7 +189173,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34800, uintptr(0), uintptr(0), uintptr(0)) @@ -196690,7 +189189,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196717,7 +189216,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 4)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 4)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196745,7 +189244,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(240) defer tls.Free(240) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196785,7 +189284,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+92, bp+84, bp+88, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 92)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196809,7 +189308,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 92)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp + 92)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -196885,7 +189384,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+4, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+4, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196894,7 +189393,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+100, bp+104, 0) @@ -196902,7 +189401,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+108, 0, uint32(100)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 108))).FnCol = *(*int32)(unsafe.Pointer(bp + 100)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+108) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+108) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -196941,13 +189440,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -196956,11 +189459,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196968,10 +189475,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196979,37 +189492,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197585,7 +190090,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i int32 @@ -197620,8 +190125,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf = 0 } goto _3 @@ -197640,9 +190145,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) } } else { if ppOut != 0 { @@ -197753,18 +190258,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197772,13 +190279,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197820,12 +190329,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197833,27 +190348,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -198008,7 +190514,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var bDone, iHash, v2 int32 @@ -198116,8 +190622,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+16, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+16, *(*uintptr)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -198129,9 +190635,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+16, 0, uint32(12)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) } } else { if ppOut != 0 { @@ -198205,21 +190711,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198376,18 +190886,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198447,99 +190945,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198561,14 +190966,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198580,29 +190977,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198658,15 +191038,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198688,14 +191059,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198805,13 +191168,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199378,14 +191734,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199396,16 +191744,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199457,10 +191795,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(1216)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(1216)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199566,12 +191904,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -200158,18 +192496,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200252,22 +192578,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200445,16 +192755,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200822,15 +193122,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201561,21 +193852,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201884,13 +194160,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202546,7 +194815,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202556,9 +194825,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -202920,115 +195189,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203713,16 +195873,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+8, p+20) != 0 { @@ -203747,14 +195897,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204875,14 +197017,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205823,14 +197957,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205870,14 +197996,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206241,66 +198359,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207348,143 +199406,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207492,189 +199413,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -210606,14 +202344,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210623,15 +202353,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210745,7 +202466,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210766,7 +202487,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212358,13 +204079,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213485,16 +205199,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213712,7 +205416,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213749,7 +205453,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213760,70 +205464,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -213992,14 +205632,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -214046,19 +205678,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216374,87 +207993,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216462,97 +208000,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -218520,7 +209967,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -218528,7 +209975,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -218539,8 +209986,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -218948,7 +210395,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -218978,8 +210425,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(16)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -218987,7 +210434,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219279,7 +210726,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219303,7 +210750,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -219590,14 +211037,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -219692,7 +211139,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -219709,8 +211156,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint32FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -219737,7 +211184,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -219754,7 +211201,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*48 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint32FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -219781,15 +211228,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -219849,11 +211287,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -219862,13 +211300,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -219877,7 +211315,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -219890,7 +211328,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -219907,7 +211345,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -219915,7 +211353,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220387,60 +211825,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -220797,14 +212181,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221535,17 +212911,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -222050,12 +213415,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222160,7 +213519,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222202,7 +213561,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222236,18 +213595,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222473,7 +213820,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 148 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -222660,7 +214007,7 @@ _9: _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(zOut)-int32(aFold), is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(zOut)-int32(aFold), is, ie) goto _2 _1: ; @@ -222688,14 +214035,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]int8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -222773,14 +214112,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222791,16 +214122,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -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')) } @@ -223426,14 +214747,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 20 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223451,13 +214772,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223539,7 +214853,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223667,7 +214981,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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(zOut)-t__predefined_ptrdiff_t(bp), aStart[0], iNext) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(zOut)-t__predefined_ptrdiff_t(bp), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223743,11 +215057,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229302,39 +220616,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230418,11 +221699,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '4'} 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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 e873039a3..0f3932a51 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_amd64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_amd64.go @@ -2185,7 +2185,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2296,8 +2296,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -3941,12 +3941,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4075,30 +4069,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - /* ** CAPI3REF: Standard File Control Opcodes ** KEYWORDS: {file control opcodes} {file control opcode} @@ -4986,33 +4956,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -5091,19 +5034,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -5279,223 +5209,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5577,20 +5290,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5640,13 +5339,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5826,24 +5518,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5867,22 +5541,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -6023,50 +5681,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6463,340 +6077,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6806,15 +6086,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6830,14 +6101,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6863,17 +6126,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7317,52 +6569,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint64 type size_t = Tsize_t @@ -7692,14 +6898,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -7944,6 +7142,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -8431,10 +7630,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8863,9 +8058,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -8992,53 +8187,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -9142,16 +8290,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -9175,38 +8313,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9219,34 +8330,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9260,90 +8347,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9362,187 +8365,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9552,917 +8374,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity int8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10487,622 +8398,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr int8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -11112,318 +8407,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]int8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11509,232 +8492,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign int8 - FisSpecial int8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]int8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -12898,72 +9655,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -13009,152 +9700,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13185,18 +9730,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13213,101 +9746,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]int8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13329,13 +9767,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13355,14 +9786,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13441,7 +9865,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13671,7 +10095,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13806,24 +10230,6 @@ type TDateTime = struct { 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 - FvalidYMD int8 - FvalidHMS int8 - FnFloor int8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15817,28 +12223,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15846,19 +12252,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15875,12 +12281,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15888,7 +12294,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15901,34 +12307,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16241,14 +12647,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16263,9 +12662,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -17012,27 +13411,6 @@ type t__ptcb = struct { F__next uintptr } -type Tcpu_set_t1 = struct { - F__bits [16]uint64 -} - -type cpu_set_t1 = Tcpu_set_t1 - -/* -** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two conditions: (1) Debug builds and (2) using -** home-grown mutexes. Encapsulate these conditions into a single #define. - */ - -/* -** Each recursive mutex is an instance of the following structure. - */ -type Tsqlite3_mutex1 = struct { - Fmutex Tpthread_mutex_t -} - -type sqlite3_mutex1 = Tsqlite3_mutex1 - /* ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are ** intended for use only inside assert() statements. On some platforms, @@ -17316,6 +13694,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -17323,8 +13703,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20632,56 +17012,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ - -/* #include */ - -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid Tpthread_t - Fdone int32 - FpOut uintptr - FxTask uintptr - FpIn uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -20692,7 +17026,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } libc.Xmemset(tls, p, 0, uint64(40)) - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a ** function that returns SQLITE_ERROR when passed the argument 200, that @@ -20701,11 +17035,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if _sqlite3FaultSim(tls, int32(200)) != 0 { rc = int32(1) } else { - rc = libc.Xpthread_create(tls, p, uintptr(0), xTask, pIn) + rc = libc.Xpthread_create(tls, p, uintptr(0), __ccgo_fp_xTask, pIn) } if rc != 0 { (*TSQLiteThread)(unsafe.Pointer(p)).Fdone = int32(1) - (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24514,22 +20848,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24560,30 +20878,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24810,7 +21104,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24848,10 +21142,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -25226,47 +21520,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25367,7 +21620,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -25997,7 +22250,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26628,7 +22881,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3605, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3605, bp, int32(42579)) } // C documentation @@ -26665,7 +22918,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -27213,7 +23377,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27276,7 +23440,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27509,7 +23673,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 144)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1667, int32(1), bp+144) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28678,7 +24842,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3488, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3488, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28755,7 +24919,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3677, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3677, zIn, int32(45510)) return } (*(*[4098]int8)(unsafe.Pointer(bp + 144)))[got] = 0 @@ -28953,14 +25107,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(45566)), __ccgo_ts+3506, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3506, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -31032,66 +27026,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31265,14 +27199,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -32088,123 +28022,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33401,25 +29218,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34381,258 +30179,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]int8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34731,7 +30277,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37216,7 +32762,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37407,10 +32953,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38311,7 +33857,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38386,7 +33932,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38608,7 +34154,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38864,7 +34410,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -39039,7 +34585,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -39070,7 +34616,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -39142,7 +34688,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -40499,7 +36045,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41348,232 +36894,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41592,29 +36912,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -42043,14 +37340,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42217,7 +37506,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42305,7 +37594,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42885,10 +38174,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -42986,7 +38275,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -43025,7 +38314,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -43038,7 +38327,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -43054,7 +38343,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -43075,7 +38364,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -43141,7 +38430,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43439,7 +38728,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44250,7 +39539,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44396,7 +39685,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44423,7 +39712,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44751,7 +40040,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44932,7 +40221,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -44941,7 +40230,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -44993,14 +40282,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45546,288 +40835,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -45960,27 +40967,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46863,11 +41849,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -47041,7 +42027,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47054,12 +42040,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47103,7 +42089,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -47111,7 +42097,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47531,7 +42517,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47571,12 +42557,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47584,21 +42570,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47645,12 +42631,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47666,7 +42652,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47726,7 +42712,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47743,14 +42729,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47793,11 +42779,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47811,7 +42797,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47892,12 +42878,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47908,11 +42894,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -47933,7 +42919,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -47950,10 +42936,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -48014,7 +43000,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -48040,7 +43026,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -48079,12 +43065,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48111,7 +43097,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -48142,11 +43128,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -48175,7 +43161,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48188,7 +43174,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48339,7 +43325,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48401,7 +43387,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49313,7 +44299,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -49754,7 +44740,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49778,7 +44764,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49787,7 +44773,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49801,7 +44787,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49831,7 +44817,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -49927,7 +44913,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49965,7 +44951,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -50032,7 +45018,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50075,7 +45061,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -50105,7 +45091,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50571,7 +45557,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50963,7 +45949,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50973,7 +45959,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -51030,7 +46016,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -51104,7 +46090,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51239,7 +46225,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51251,7 +46237,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -51367,7 +46353,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51381,7 +46367,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51615,7 +46601,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51699,7 +46685,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51711,7 +46697,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -51913,7 +46899,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -51946,7 +46932,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51955,7 +46941,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -52084,7 +47070,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52194,7 +47180,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52282,7 +47268,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52337,7 +47323,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52363,7 +47349,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52390,7 +47376,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -52461,7 +47447,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52599,7 +47585,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52650,7 +47636,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52659,7 +47645,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52749,7 +47735,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52767,7 +47753,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52790,7 +47776,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -53011,7 +47997,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53305,17 +48291,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53405,12 +48380,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53418,7 +48393,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -53513,7 +48488,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz)) @@ -53661,7 +48636,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2))) nCell -= nShift @@ -53732,7 +48707,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53777,7 +48752,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -54141,7 +49116,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -54164,7 +49139,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54295,7 +49270,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -54338,7 +49313,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54397,7 +49372,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54429,7 +49404,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54659,7 +49634,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54905,7 +49880,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -54978,7 +49953,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -55137,7 +50112,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -55168,7 +50143,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55253,7 +50228,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55345,7 +50320,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55381,7 +50356,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55411,10 +50386,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55532,7 +50507,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55554,7 +50529,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55654,21 +50629,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&libc.Int32FromUint16(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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55762,7 +50737,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } nCell = libc.Int32FromUint16((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55872,7 +50847,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55913,7 +50888,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55994,14 +50969,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -56138,7 +51113,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57190,14 +52165,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57408,45 +52383,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -59048,7 +53984,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -59061,8 +53997,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59221,7 +54157,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59263,11 +54199,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59277,7 +54213,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59299,12 +54235,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59343,7 +54279,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59455,8 +54391,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -60046,7 +54982,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -60062,7 +54998,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -60072,7 +55008,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -60123,9 +55059,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60199,7 +55135,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -62323,7 +57259,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62331,7 +57267,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -63158,7 +58094,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -64006,7 +58942,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -64096,7 +59032,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -64131,7 +59067,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64185,7 +59121,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64317,7 +59253,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64469,7 +59405,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64500,7 +59436,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -64917,7 +59853,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65244,12 +60180,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65266,29 +60202,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65318,13 +60258,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65336,11 +60278,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65348,23 +60294,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65621,7 +60573,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65751,7 +60703,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65920,6 +60872,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -65933,7 +60887,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -65971,13 +60925,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66477,14 +61431,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5617, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66522,7 +61476,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66532,7 +61486,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66543,24 +61497,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66608,7 +61566,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66616,32 +61576,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -67058,7 +62024,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -67120,7 +62086,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, libc.Uint8FromInt8((*TColumn)(unsafe.Pointer(pCol)).Faffinity), bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67221,7 +62187,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70582,7 +65548,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72492,7 +67458,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, int8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72519,7 +67485,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73411,7 +68377,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -73793,7 +68759,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75444,7 +70410,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76846,7 +71533,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77337,8 +72024,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77533,7 +72220,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -79185,57 +73872,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79532,7 +74168,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -83996,12 +78632,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87578,6 +82208,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -88115,6 +82750,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88321,7 +82977,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -88348,8 +83004,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -90764,31 +85420,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90805,16 +85436,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -91117,9 +85738,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91313,7 +85934,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11472, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91332,7 +85953,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92396,7 +87017,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -92950,44 +87571,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94278,13 +88861,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95483,6 +90059,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95555,9 +90133,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95737,47 +90315,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96405,9 +90942,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100653,7 +95190,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14729, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -106092,17 +100629,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106316,12 +100842,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109603,7 +104123,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -111097,33 +105617,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112677,6 +107170,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112710,7 +107205,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112722,7 +107217,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1667 @@ -112746,7 +107241,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -112787,7 +107282,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -112834,330 +107329,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -113762,14 +107933,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113784,7 +107950,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113802,7 +107968,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -113817,7 +107983,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113827,6 +107993,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113838,7 +108006,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113850,7 +108018,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -117577,25 +111745,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -117997,7 +112146,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -118010,7 +112159,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+18990, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118604,7 +112753,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118617,9 +112766,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118806,7 +112955,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -118940,7 +113089,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -119062,15 +113211,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -119106,21 +113246,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119807,13 +113932,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -123788,18 +117906,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127392,6 +121498,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131696,39 +125803,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131739,7 +125813,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131758,7 +125832,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131783,15 +125857,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131806,13 +125880,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132334,7 +126410,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132395,7 +126471,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132679,9 +126755,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133263,7 +127339,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133276,7 +127352,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133536,435 +127612,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff int8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134309,10 +127956,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -134935,7 +128582,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135285,7 +128932,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136831,7 +130478,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -138970,16 +132617,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -139092,7 +132729,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140610,10 +134247,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -142894,15 +136531,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -142934,7 +136562,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -142953,7 +136581,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -142990,7 +136618,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -143019,19 +136647,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143333,6 +136961,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143875,7 +137511,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144540,17 +138176,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146525,7 +140150,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146538,7 +140163,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146717,7 +140342,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -148052,16 +141677,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -148080,17 +141695,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -148108,7 +141723,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -148132,13 +141747,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -148153,9 +141768,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -148163,13 +141778,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148185,13 +141800,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -148968,87 +142583,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157297,14 +150831,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157315,16 +150841,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164300,7 +157816,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165670,12 +159190,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165693,9 +159213,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165724,7 +159244,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165742,15 +159262,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165765,27 +159285,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165796,30 +159316,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165882,6 +159432,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165892,43 +159444,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -165939,12 +159495,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -165956,6 +159512,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165963,82 +159521,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -166082,18 +159650,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -166119,7 +159689,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -166251,7 +159821,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166383,7 +159953,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166393,7 +159963,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166429,7 +159999,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166442,7 +160012,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166486,9 +160056,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -166990,7 +160560,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4285 @@ -167144,36 +160714,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -167181,7 +160759,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167189,31 +160767,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167247,12 +160829,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167287,8 +160871,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167299,7 +160883,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168651,6 +162235,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168674,7 +162260,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168684,7 +162270,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168696,7 +162282,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168712,7 +162298,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -169928,106 +163514,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]int8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172638,16 +166124,6 @@ type TJsonPretty = struct { 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 */ @@ -175474,16 +168950,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175502,24 +168968,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175527,13 +168975,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176505,223 +169946,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176739,33 +169966,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176776,78 +169997,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -179803,9 +173008,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179820,9 +173025,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -180722,23 +173927,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181323,14 +174511,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181355,16 +174535,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -182147,13 +175317,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182388,36 +175551,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183388,16 +176521,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28672) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28688) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183706,12 +176839,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183719,33 +176854,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184363,248 +177502,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]int8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187318,7 +180215,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187420,7 +180317,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187493,12 +180390,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187523,18 +180420,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -188052,10 +180949,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188574,7 +181471,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -188695,7 +181592,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -188740,9 +181637,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188814,7 +181713,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -189017,7 +181916,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -189068,14 +181967,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint64FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -191000,315 +183838,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192714,13 +185243,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193212,14 +185734,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193727,15 +186241,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194357,7 +186873,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194371,7 +186887,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194447,8 +186963,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194473,13 +186989,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194508,28 +187024,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194668,7 +187188,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194683,9 +187203,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194714,20 +187234,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194902,7 +187426,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194926,7 +187450,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194941,7 +187465,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -194997,7 +187521,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195102,7 +187626,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195208,7 +187732,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195218,7 +187742,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195297,7 +187821,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195558,7 +188082,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195707,11 +188231,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195723,8 +188247,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -195752,12 +188276,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -195765,9 +188293,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195780,14 +188308,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195811,29 +188331,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196237,7 +188734,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196255,11 +188752,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196436,7 +188933,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -196460,7 +188957,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196475,7 +188972,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196526,7 +189023,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -196566,10 +189063,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196607,11 +189104,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196634,7 +189131,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196653,7 +189150,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196662,7 +189159,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196672,7 +189169,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34779, uintptr(0), uintptr(0), uintptr(0)) @@ -196685,7 +189182,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34800, uintptr(0), uintptr(0), uintptr(0)) @@ -196701,7 +189198,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196728,7 +189225,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196756,7 +189253,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196796,7 +189293,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196820,7 +189317,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -196896,7 +189393,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196905,7 +189402,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -196913,7 +189410,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -196952,13 +189449,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -196967,11 +189468,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196979,10 +189484,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196990,37 +189501,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197596,7 +190099,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -197631,8 +190134,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -197651,9 +190154,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -197764,18 +190267,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197783,13 +190288,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197831,12 +190338,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197844,27 +190357,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -198019,7 +190523,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -198127,8 +190631,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -198140,9 +190644,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -198216,21 +190720,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198387,18 +190895,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198458,99 +190954,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198572,14 +190975,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198591,29 +190986,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198669,15 +191047,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198699,14 +191068,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198816,13 +191177,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199389,14 +191743,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199407,16 +191753,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199468,10 +191804,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199577,12 +191913,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -200169,18 +192505,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200263,22 +192587,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200456,16 +192764,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200833,15 +193131,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201572,21 +193861,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201895,13 +194169,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202557,7 +194824,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202567,9 +194834,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -202931,115 +195198,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203724,16 +195882,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -203758,14 +195906,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204886,14 +197026,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205834,14 +197966,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205881,14 +198005,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206252,66 +198368,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207361,143 +199417,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207505,191 +199424,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -210621,14 +202355,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210638,15 +202364,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210760,7 +202477,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210781,7 +202498,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212374,13 +204091,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213501,16 +205211,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213728,7 +205428,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213765,7 +205465,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213776,70 +205476,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -214008,14 +205644,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -214062,19 +205690,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216390,87 +208005,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216478,97 +208012,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -218536,7 +209979,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -218544,7 +209987,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -218555,8 +209998,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -218964,7 +210407,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -218994,8 +210437,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -219003,7 +210446,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219295,7 +210738,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219319,7 +210762,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -219606,14 +211049,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -219708,7 +211151,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -219725,8 +211168,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -219753,7 +211196,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -219770,7 +211213,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -219797,15 +211240,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -219865,11 +211299,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -219878,13 +211312,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -219893,7 +211327,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -219906,7 +211340,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -219923,7 +211357,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -219931,7 +211365,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220403,60 +211837,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -220813,14 +212193,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221551,17 +212923,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -222066,12 +213427,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222176,7 +213531,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222218,7 +213573,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222252,18 +213607,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222489,7 +213832,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -222676,7 +214019,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -222704,14 +214047,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]int8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -222789,14 +214124,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222807,16 +214134,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -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')) } @@ -223442,14 +214759,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223467,13 +214784,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223555,7 +214865,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223683,7 +214993,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223759,11 +215069,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229318,39 +220628,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230435,11 +221712,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '4'} 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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 f6525b418..17ccb37c3 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_arm.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_arm.go @@ -2183,7 +2183,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2294,8 +2294,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -3987,12 +3987,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4121,30 +4115,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - /* ** CAPI3REF: Standard File Control Opcodes ** KEYWORDS: {file control opcodes} {file control opcode} @@ -5032,33 +5002,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -5137,19 +5080,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -5329,226 +5259,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - F__ccgo_align [0]uint32 - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - F__ccgo_align9 [4]byte - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - F__ccgo_align12 [4]byte - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5630,20 +5340,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5693,13 +5389,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5879,24 +5568,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5920,22 +5591,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -6078,52 +5733,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - F__ccgo_align [0]uint32 - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr - F__ccgo_pad16 [4]byte -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6521,340 +6130,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6864,15 +6139,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6888,14 +6154,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6921,17 +6179,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7375,52 +6622,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint32 type size_t = Tsize_t @@ -7753,14 +6954,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -8005,12 +7198,13 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 } FpTab uintptr - F__ccgo_pad3 [4]byte + F__ccgo_pad4 [4]byte } } @@ -8501,10 +7695,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8944,9 +8134,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -9079,56 +8269,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - F__ccgo_align [0]uint32 - FpKey uintptr - F__ccgo_align1 [4]byte - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 - F__ccgo_pad7 [4]byte -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -9236,16 +8376,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -9269,38 +8399,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9313,34 +8416,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9354,92 +8433,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - F__ccgo_align [0]uint32 - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - F__ccgo_align8 [2]byte - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { F__ccgo_align [0]uint32 FpDirty uintptr @@ -9460,187 +8453,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9650,931 +8462,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - F__ccgo_align [0]uint32 - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - F__ccgo_align7 [4]byte - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - F__ccgo_align67 [4]byte - Fu1 struct { - F__ccgo_align [0]uint32 - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr - F__ccgo_pad97 [4]byte -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - F__ccgo_align [0]uint32 - FzName uintptr - F__ccgo_align1 [4]byte - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr - F__ccgo_pad4 [4]byte -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo4 uint8 - Faffinity uint8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - F__ccgo_align [0]uint32 - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - F__ccgo_align [0]uint32 - Fi [0]Ti64 - Fz uintptr - F__ccgo_pad2 [4]byte - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 - F__ccgo_pad10 [5]byte -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - F__ccgo_align [0]uint32 - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo56 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - F__ccgo_align33 [4]byte - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10599,622 +8486,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr uint8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - F__ccgo_pad3 [4]byte - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - F__ccgo_align [0]uint32 - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint32 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -11224,319 +8495,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo32 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]uint8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - F__ccgo_align [0]uint32 - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11624,232 +8582,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign uint8 - FisSpecial uint8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]uint8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -13021,77 +9753,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - F__ccgo_align [0]uint32 - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr - F__ccgo_pad29 [4]byte -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - F__ccgo_align [0]uint32 - FpCValue uintptr - F__ccgo_align1 [4]byte - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 - F__ccgo_pad5 [4]byte -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -13140,155 +9801,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - F__ccgo_align [0]uint32 - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - F__ccgo_align7 [4]byte - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - F__ccgo_align15 [4]byte - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13319,18 +9831,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13347,107 +9847,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]uint8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - F__ccgo_align [0]uint32 - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - F__ccgo_align12 [4]byte - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - F__ccgo_align27 [4]byte - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo152 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - F__ccgo_align [0]uint32 - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - F__ccgo_align9 [4]byte - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [20]Tu8 - F__ccgo_pad17 [4]byte -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13469,13 +9868,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13495,14 +9887,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13581,7 +9966,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint32(libc.Uint32FromInt64(40)/libc.Uint32FromInt64(4)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13811,7 +10196,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13951,26 +10336,6 @@ type TDateTime = struct { type DateTime = TDateTime -type TDateTime1 = struct { - F__ccgo_align [0]uint32 - 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 - F__ccgo_pad17 [3]byte -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15964,28 +12329,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15993,19 +12358,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -16022,12 +12387,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -16035,7 +12400,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -16048,34 +12413,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16388,14 +12753,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16410,9 +12768,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -17157,27 +13515,6 @@ type t__ptcb = struct { F__next uintptr } -type Tcpu_set_t1 = struct { - F__bits [32]uint32 -} - -type cpu_set_t1 = Tcpu_set_t1 - -/* -** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two conditions: (1) Debug builds and (2) using -** home-grown mutexes. Encapsulate these conditions into a single #define. - */ - -/* -** Each recursive mutex is an instance of the following structure. - */ -type Tsqlite3_mutex1 = struct { - Fmutex Tpthread_mutex_t -} - -type sqlite3_mutex1 = Tsqlite3_mutex1 - /* ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are ** intended for use only inside assert() statements. On some platforms, @@ -17464,6 +13801,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -17471,8 +13810,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20780,56 +17119,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint32(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ - -/* #include */ - -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid Tpthread_t - Fdone int32 - FpOut uintptr - FxTask uintptr - FpIn uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -20840,7 +17133,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } libc.Xmemset(tls, p, 0, uint32(20)) - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a ** function that returns SQLITE_ERROR when passed the argument 200, that @@ -20849,11 +17142,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if _sqlite3FaultSim(tls, int32(200)) != 0 { rc = int32(1) } else { - rc = libc.Xpthread_create(tls, p, uintptr(0), xTask, pIn) + rc = libc.Xpthread_create(tls, p, uintptr(0), __ccgo_fp_xTask, pIn) } if rc != 0 { (*TSQLiteThread)(unsafe.Pointer(p)).Fdone = int32(1) - (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24687,22 +20980,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24735,32 +21012,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - F__ccgo_align [0]uint32 - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 - F__ccgo_pad19 [4]byte -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24987,7 +21238,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -25025,10 +21276,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -25404,49 +21655,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - F__ccgo_align [0]uint32 - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr - F__ccgo_pad11 [4]byte -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25547,7 +21755,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -26177,7 +22385,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26808,7 +23016,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3605, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3605, bp, int32(42579)) } // C documentation @@ -26845,7 +23053,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -27393,7 +23512,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27456,7 +23575,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27689,7 +23808,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 152)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1667, int32(1), bp+152) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28858,7 +24977,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3488, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3488, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28935,7 +25054,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) return } got = (*(*func(*libc.TLS, uintptr, uintptr, Tsize_t) Tssize_t)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls, zIn, bp+152, 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(45508)), __ccgo_ts+3677, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3677, zIn, int32(45510)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 152)))[got] = uint8(0) @@ -29133,14 +25242,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if libc.Int32FromUint8(*(*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(45566)), __ccgo_ts+3506, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3506, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][125]Tu32 - FapSub [0][125]uintptr - FaBitmap [500]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -31214,68 +27162,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - F__ccgo_align [0]uint32 - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - F__ccgo_align3 [4]byte - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31449,14 +27335,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint32(56)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -32272,123 +28158,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33588,25 +29357,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34571,262 +30321,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - F__ccgo_align [0]uint32 - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - F__ccgo_align [0]uint32 - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - F__ccgo_align34 [4]byte - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]uint8 - FnMmapOut int32 - F__ccgo_align42 [4]byte - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34925,7 +30419,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37410,7 +32904,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37601,10 +33095,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 192 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38505,7 +33999,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38580,7 +34074,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38802,7 +34296,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -39058,7 +34552,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -39233,7 +34727,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -39264,7 +34758,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -39336,7 +34830,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+4) @@ -40693,7 +36187,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 28 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41541,234 +37035,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - F__ccgo_align [0]uint32 - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 - F__ccgo_pad26 [4]byte -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41787,28 +37053,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -42237,14 +37481,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42411,7 +37647,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42499,7 +37735,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -43079,10 +38315,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -43180,7 +38416,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -43219,7 +38455,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -43232,7 +38468,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -43248,7 +38484,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -43269,7 +38505,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -43335,7 +38571,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43633,7 +38869,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44444,7 +39680,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44590,7 +39826,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44617,7 +39853,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44946,7 +40182,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -45127,7 +40363,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -45136,7 +40372,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -45188,14 +40424,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45743,293 +40979,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - F__ccgo_align [0]uint32 - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 - F__ccgo_pad5 [4]byte -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - F__ccgo_align [0]uint32 - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - F__ccgo_align10 [4]byte - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr - F__ccgo_pad20 [4]byte -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -46163,28 +41112,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - F__ccgo_align [0]uint32 - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -47067,11 +41994,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -47245,7 +42172,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47258,12 +42185,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47307,7 +42234,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -47315,7 +42242,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47735,7 +42662,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47775,12 +42702,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47788,21 +42715,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint32FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47849,12 +42776,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47870,7 +42797,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47930,7 +42857,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47947,14 +42874,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47997,11 +42924,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -48015,7 +42942,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -48096,12 +43023,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -48112,11 +43039,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -48137,7 +43064,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -48154,10 +43081,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -48218,7 +43145,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -48244,7 +43171,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -48283,12 +43210,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48315,7 +43242,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -48346,11 +43273,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -48379,7 +43306,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48392,7 +43319,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48543,7 +43470,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48605,7 +43532,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49517,7 +44444,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 4)) @@ -49958,7 +44885,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49982,7 +44909,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49991,7 +44918,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -50005,7 +44932,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -50035,7 +44962,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -50131,7 +45058,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -50169,7 +45096,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 20)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 16)), bCommit) @@ -50236,7 +45163,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50279,7 +45206,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -50309,7 +45236,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50775,7 +45702,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -51167,7 +46094,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -51177,7 +46104,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -51234,7 +46161,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -51308,7 +46235,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51443,7 +46370,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51455,7 +46382,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+116, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 68 @@ -51571,7 +46498,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51585,7 +46512,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51819,7 +46746,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51903,7 +46830,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51915,7 +46842,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -52117,7 +47044,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -52150,7 +47077,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 72 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 120 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*4)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -52159,7 +47086,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+116, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 68 @@ -52288,7 +47215,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52398,7 +47325,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52486,7 +47413,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52541,7 +47468,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52567,7 +47494,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52594,7 +47521,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+8, 0) @@ -52665,7 +47592,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52803,7 +47730,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 4)) = pMemPage @@ -52854,7 +47781,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(78381)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 8)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52863,7 +47790,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 + 8)) = _sqlite3CorruptError(tls, int32(78392)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52953,7 +47880,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52971,7 +47898,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+4, bp) @@ -52994,7 +47921,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 4)), ovflPgno) } @@ -53215,7 +48142,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53509,17 +48436,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53609,12 +48525,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 uint32(pCell) >= uint32(aData+uintptr(j)) && uint32(pCell) < uint32(pEnd) { if uint32(pCell+uintptr(sz)) > uint32(pEnd) { - return _sqlite3CorruptError(tls, int32(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int32(pCell)-int32(aData)) } else { if uint32(pCell+uintptr(sz)) > uint32(pSrcEnd) && uint32(pCell) < uint32(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53622,7 +48538,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt32(int32(pData) - int32(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint32(sz)) i++ @@ -53717,7 +48633,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 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) { - _sqlite3CorruptError(tls, int32(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4)), libc.Uint32FromInt32(sz)) @@ -53865,7 +48781,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint32FromInt32(nCell*int32(2))) nCell -= nShift @@ -53936,7 +48852,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53981,7 +48897,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -54345,7 +49261,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 4)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -54368,7 +49284,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)*libc.Uint32FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54499,7 +49415,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 36)))[k-int32(1)] = 0 @@ -54542,7 +49458,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54601,7 +49517,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54633,7 +49549,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54863,7 +49779,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -55109,7 +50025,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -55182,7 +50098,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 120 + uintptr(iPage-int32(1))*4)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 72 + uintptr(iPage-int32(1))*2))) @@ -55341,7 +50257,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -55372,7 +50288,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55457,7 +50373,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55549,7 +50465,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55585,7 +50501,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55615,10 +50531,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint32FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55736,7 +50652,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55758,7 +50674,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55858,21 +50774,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&libc.Int32FromUint16(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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55966,7 +50882,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } nCell = libc.Int32FromUint16((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -56076,7 +50992,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 4))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -56117,7 +51033,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 20))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 20))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -56198,14 +51114,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+4 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -56342,7 +51258,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57394,14 +52310,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57612,45 +52528,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -59252,7 +54129,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -59265,8 +54142,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59425,7 +54302,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59467,11 +54344,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59481,7 +54358,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59503,12 +54380,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59547,7 +54424,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59659,8 +54536,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -60250,7 +55127,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -60266,7 +55143,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -60276,7 +55153,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -60327,9 +55204,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60403,7 +55280,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+104, 0, libc.Uint32FromInt64(232)-uint32(libc.UintptrFromInt32(0)+104)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 8 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 8 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 4 @@ -62529,7 +57406,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62537,7 +57414,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*40 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -63364,7 +58241,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -64212,7 +59089,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -64302,7 +59179,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 20 + uintptr(i)*4)) != 0 { @@ -64337,7 +59214,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 52)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64391,7 +59268,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 52))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64523,7 +59400,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64675,7 +59552,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64706,7 +59583,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -65123,7 +60000,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65450,12 +60327,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65472,29 +60349,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65524,13 +60405,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65542,11 +60425,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65554,23 +60441,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65827,7 +60720,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65957,7 +60850,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -66126,6 +61019,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -66139,7 +61034,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -66177,13 +61072,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66683,14 +61578,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5617, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66728,7 +61623,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66738,7 +61633,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*40 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66749,24 +61644,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66814,7 +61713,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66822,32 +61723,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*40, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*40, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -67264,7 +62171,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -67326,7 +62233,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 44))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*20))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol)).Faffinity, bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*4)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67427,7 +62334,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70788,7 +65695,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*20 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72698,7 +67605,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 216)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 216)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+216, uint8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 216))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72725,7 +67632,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 208)) if *(*int32)(unsafe.Pointer(bp + 208)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73617,7 +68524,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+464, db, uint16(0)) @@ -73999,7 +68906,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75650,7 +70557,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - F__ccgo_align [0]uint32 - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - F__ccgo_align6 [4]byte - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - F__ccgo_align [0]uint32 - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - F__ccgo_align5 [4]byte - FiWriteOff Ti64 - FpFd uintptr - F__ccgo_pad7 [4]byte -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -77081,7 +71693,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77572,8 +72184,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77768,7 +72380,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+12 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 12)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+12) @@ -79424,61 +74036,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - F__ccgo_align [0]uint32 - FiOffset Tsqlite3_int64 - FpChunk uintptr - F__ccgo_pad2 [4]byte -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - F__ccgo_align [0]uint32 - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr - F__ccgo_pad9 [4]byte -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79775,7 +74332,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -84239,12 +78796,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87821,6 +82372,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -88358,6 +82914,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(64) + defer tls.Free(64) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 32)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint32(52)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 44)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+32, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+32, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88564,7 +83141,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(160) defer tls.Free(160) var db, pDel uintptr @@ -88591,8 +83168,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 104))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 104))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)) + 8 + 1*20))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+156)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -91009,31 +85586,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -91050,16 +85602,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -91362,9 +85904,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91558,7 +86100,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11472, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91577,7 +86119,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92641,7 +87183,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName) @@ -93201,50 +87743,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - F__ccgo_align [0]uint32 - FanDLt uintptr - FanEq uintptr - FanLt uintptr - F__ccgo_align3 [4]byte - Fu struct { - F__ccgo_align [0]uint32 - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - F__ccgo_align [0]uint32 - Fdb uintptr - F__ccgo_align1 [4]byte - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - F__ccgo_align7 [3]byte - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94535,13 +89033,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95740,6 +90231,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95812,9 +90305,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95994,47 +90487,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96662,9 +91114,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100910,7 +95362,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14729, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -106351,19 +100803,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - F__ccgo_align [0]uint32 - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 - F__ccgo_pad6 [6]byte -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106578,13 +101017,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - F__ccgo_align [0]uint32 - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109866,7 +104298,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 20 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 24)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*12))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 24)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*12))).FcolFlags)) } return WRC_Continue } @@ -111360,33 +105792,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [4]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112940,6 +107345,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112973,7 +107380,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112985,7 +107392,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) /* The current SQL statement */ azCols = uintptr(0) /* True if callback data is initialized */ if !(_sqlite3SafetyCheckOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1667 @@ -113009,7 +107416,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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 + 4))) azCols = _sqlite3DbMallocRaw(tls, db, uint64(libc.Uint32FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint32(4))) @@ -113050,7 +107457,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*4)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -113097,330 +107504,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -114025,14 +108108,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -114047,7 +108125,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -114065,7 +108143,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == __ccgo_fp_xInit { break } goto _1 @@ -114080,7 +108158,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -114090,6 +108168,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -114101,7 +108181,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -114113,7 +108193,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) n++ @@ -117842,26 +111922,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -118263,7 +112323,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*4)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*4)) @@ -118276,7 +112336,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+18990, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118870,7 +112930,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118883,9 +112943,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -119072,7 +113132,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -119206,7 +113266,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -119328,15 +113388,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -119372,21 +113423,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -120073,13 +114109,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -124054,18 +118083,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127658,6 +121675,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 52)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131962,39 +125980,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -132005,7 +125990,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -132024,7 +126009,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -132049,15 +126034,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -132072,13 +126057,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132600,7 +126587,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132661,7 +126648,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+8, bp+16) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132945,9 +126932,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133529,7 +127516,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133542,7 +127529,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133709,289 +127696,9 @@ type TWhereLoop = struct { FaLTermSpace [3]uintptr } -type WhereLoop = TWhereLoop - -type TWherePath = struct { - F__ccgo_align [0]uint32 - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr - F__ccgo_pad7 [4]byte -} - -type WherePath = TWherePath - -type TWhereTerm = struct { - F__ccgo_align [0]uint32 - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm = TWhereTerm - -type TWhereLoopBuilder = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder = TWhereLoopBuilder - -type TWhereScan = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff uint8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan = TWhereScan - -type TWhereOrCost = struct { - F__ccgo_align [0]uint32 - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst - F__ccgo_pad3 [4]byte -} - -type WhereOrCost = TWhereOrCost - -type TWhereOrSet = struct { - F__ccgo_align [0]uint32 - Fn Tu16 - F__ccgo_align1 [6]byte - Fa [3]TWhereOrCost -} - -type WhereOrSet = TWhereOrSet - -type TWhereMemBlock = struct { - F__ccgo_align [0]uint32 - FpNext uintptr - F__ccgo_align1 [4]byte - Fsz Tu64 -} - -type WhereMemBlock = TWhereMemBlock - -type TWhereRightJoin = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin = TWhereRightJoin - -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - F__ccgo_align [0]uint32 - FpNext uintptr - F__ccgo_align1 [4]byte - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - F__ccgo_align [0]uint32 - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - F__ccgo_align21 [4]byte - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - F__ccgo_align [0]uint32 - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - F__ccgo_align [0]uint32 - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst - F__ccgo_pad3 [4]byte -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - F__ccgo_align [0]uint32 - Fn Tu16 - F__ccgo_align1 [6]byte - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 +type WhereLoop = TWhereLoop -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { +type TWherePath = struct { F__ccgo_align [0]uint32 FmaskLoop TBitmask FrevLoop TBitmask @@ -134003,60 +127710,9 @@ type TWherePath1 = struct { F__ccgo_pad7 [4]byte } -type WherePath1 = TWherePath1 +type WherePath = TWherePath -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { +type TWhereTerm = struct { F__ccgo_align [0]uint32 FpExpr uintptr FpWC uintptr @@ -134079,17 +127735,23 @@ type TWhereTerm1 = struct { FprereqAll TBitmask } -type WhereTerm1 = TWhereTerm1 +type WhereTerm = TWhereTerm -/* -** Allowed values of WhereTerm.wtFlags - */ +type TWhereLoopBuilder = struct { + FpWInfo uintptr + FpWC uintptr + FpNew uintptr + FpOrSet uintptr + FpRec uintptr + FnRecValid int32 + FbldFlags1 uint8 + FbldFlags2 uint8 + FiPlanLimit uint32 +} -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { +type WhereLoopBuilder = TWhereLoopBuilder + +type TWhereScan = struct { FpOrigWC uintptr FpWC uintptr FzCollName uintptr @@ -134103,167 +127765,45 @@ type TWhereScan1 = struct { FaiColumn [11]Ti16 } -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - F__ccgo_align [0]uint32 - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - F__ccgo_align8 [4]byte - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - F__ccgo_align [0]uint32 - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 +type WhereScan = TWhereScan -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { +type TWhereOrCost = struct { F__ccgo_align [0]uint32 - Fwc TWhereClause + Fprereq TBitmask + FrRun TLogEst + FnOut TLogEst + F__ccgo_pad3 [4]byte } -type WhereAndInfo1 = TWhereAndInfo1 +type WhereOrCost = TWhereOrCost -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 +type TWhereOrSet = struct { + F__ccgo_align [0]uint32 + Fn Tu16 + F__ccgo_align1 [6]byte + Fa [3]TWhereOrCost } -type WhereMaskSet1 = TWhereMaskSet1 +type WhereOrSet = TWhereOrSet -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 +type TWhereMemBlock = struct { + F__ccgo_align [0]uint32 + FpNext uintptr + F__ccgo_align1 [4]byte + Fsz Tu64 } -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ +type WhereMemBlock = TWhereMemBlock -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - F__ccgo_align [0]uint32 - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo48 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - F__ccgo_align26 [4]byte - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet +type TWhereRightJoin = struct { + FiMatch int32 + FregBloom int32 + FregReturn int32 + FaddrSubrtn int32 + FendSubrtn int32 } -type WhereInfo1 = TWhereInfo1 +type WhereRightJoin = TWhereRightJoin /* ** Bitmasks for the operators on WhereTerm objects. These are all @@ -134609,10 +128149,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -135235,7 +128775,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135585,7 +129125,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -137131,7 +130671,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FiFrom)*48 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 12 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 44)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -139270,16 +132810,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -139392,7 +132922,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 760 + uintptr(i)*88 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140910,10 +134440,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -143194,15 +136724,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -143234,7 +136755,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -143253,7 +136774,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -143290,7 +136811,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(48) defer tls.Free(48) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+12 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -143319,19 +136840,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+12, 0, uint32(28)) (*(*TWalker)(unsafe.Pointer(bp + 12))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 12))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 12 + 24)) = bp _sqlite3WalkSelect(tls, bp+12, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143633,6 +137154,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -144175,7 +137704,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 20 + uintptr(iCons)*4)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144840,17 +138369,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*48))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146825,7 +140343,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146838,7 +140356,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -147017,7 +140535,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 760 + uintptr(ii)*88 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*48 if int32(*(*uint32)(unsafe.Pointer(pSrc + 12 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -148356,16 +141874,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -148384,17 +141892,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*48))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*48))).FiCursor { break } goto _1 @@ -148412,7 +141920,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -148436,13 +141944,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*20))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*20))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -148457,9 +141965,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -148467,13 +141975,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint32(52)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(v4) - (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpWin)).FiEphCsr - (*TExpr)(unsafe.Pointer(pExpr)).Fy.FpTab = (*TWindowRewrite1)(unsafe.Pointer(p)).FpTab + (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + (*TExpr)(unsafe.Pointer(pExpr)).Fy.FpTab = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148489,13 +141997,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 24)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -149272,87 +142780,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157601,14 +151028,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157619,16 +151038,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164604,7 +158013,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165976,12 +159389,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165999,9 +159412,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -166030,7 +159443,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -166048,15 +159461,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 36)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -166071,27 +159484,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(12)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -166102,30 +159515,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -166188,6 +159631,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -166198,43 +159643,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 216)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 216)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 216)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 216)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -166245,12 +159694,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 94 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -166262,6 +159711,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -166269,82 +159720,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -166388,18 +159849,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -166425,7 +159888,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -166557,7 +160020,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166689,7 +160152,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166699,7 +160162,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166735,7 +160198,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166748,7 +160211,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166792,9 +160255,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -167296,7 +160759,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4285 @@ -167450,36 +160913,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -167487,7 +160958,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167495,31 +160966,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167553,12 +161028,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167593,8 +161070,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint32(libc.UintptrFromInt32(0)+12)+(n+libc.Uint32FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167605,7 +161082,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168957,6 +162434,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168980,7 +162459,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168990,7 +162469,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -169002,7 +162481,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -169018,7 +162497,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -170236,108 +163715,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - F__ccgo_align [0]uint32 - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]uint8 - F__ccgo_pad7 [2]byte -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172948,16 +166325,6 @@ type TJsonPretty = struct { 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 */ @@ -175785,17 +169152,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - F__ccgo_align [0]uint32 - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { F__ccgo_align [0]uint32 Fbase Tsqlite3_vtab_cursor @@ -175815,25 +169171,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175841,13 +169178,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176921,64 +170251,6 @@ type TRtreeSearchPoint = struct { type RtreeSearchPoint = TRtreeSearchPoint -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr - F__ccgo_pad31 [4]byte -} - -type Rtree1 = TRtree1 - /* Possible values for Rtree.eCoordType: */ // C documentation @@ -176998,197 +170270,6 @@ type TRtreeValue = float32 type RtreeValue = TRtreeValue -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - F__ccgo_align [0]uint32 - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 - F__ccgo_pad5 [5]byte -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ - -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ - -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord1 = TRtreeCoord1 - -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ - -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { - F__ccgo_align [0]uint32 - FiCoord int32 - Fop int32 - Fu struct { - F__ccgo_align [0]uint32 - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr - F__ccgo_pad4 [4]byte -} - -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - F__ccgo_align [0]uint32 - FpParent uintptr - F__ccgo_align1 [4]byte - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ - -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - F__ccgo_align [0]uint32 - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell1 = TRtreeCell1 - -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback1 = TRtreeGeomCallback1 - -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - F__ccgo_align [0]uint32 - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr - F__ccgo_pad5 [4]byte -} - -type RtreeMatchArg1 = TRtreeMatchArg1 - /* Size of an RtreeMatchArg object with N parameters */ /* What version of GCC is being used. 0 means GCC is not being used . @@ -180143,9 +173224,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -180160,9 +173241,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -181062,23 +174143,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181663,14 +174727,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181695,16 +174751,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -182487,13 +175533,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182731,39 +175770,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - F__ccgo_align [0]uint32 - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr - F__ccgo_pad4 [4]byte -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - F__ccgo_align [0]uint32 - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183734,16 +176740,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28672) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28688) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -184052,12 +177058,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -184065,33 +177073,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(16)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184716,255 +177728,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - F__ccgo_align [0]uint32 - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - F__ccgo_align6 [4]byte - FnProgress Ti64 - FiCookie Tu32 - F__ccgo_align8 [4]byte - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - F__ccgo_align [0]uint32 - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]uint8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - F__ccgo_align10 [4]byte - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - F__ccgo_align26 [4]byte - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187678,7 +180441,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187780,7 +180543,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187853,12 +180616,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187883,18 +180646,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -188412,10 +181175,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188934,7 +181697,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -189055,7 +181818,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -189100,9 +181863,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -189174,7 +181939,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -189377,7 +182142,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -189428,14 +182193,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint32FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint32(libc.Uint32FromInt64(1280)/libc.Uint32FromInt64(40)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*40))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -191362,316 +184065,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - F__ccgo_align [0]uint32 - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -193076,13 +185469,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193574,14 +185960,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -194089,15 +186467,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194719,7 +187099,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194733,7 +187113,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194809,8 +187189,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194835,13 +187215,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194870,28 +187250,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -195030,7 +187414,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -195045,9 +187429,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint32(100)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -195076,20 +187460,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -195264,7 +187652,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -195288,7 +187676,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -195303,7 +187691,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195359,7 +187747,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195464,7 +187852,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195570,7 +187958,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195580,7 +187968,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195659,7 +188047,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)*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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195920,7 +188308,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -196069,11 +188457,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -196085,8 +188473,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) } } goto finished_invert @@ -196114,12 +188502,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var rc int32 @@ -196127,9 +188519,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint32(44)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -196142,14 +188534,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -196173,29 +188557,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196599,7 +188960,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196617,11 +188978,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196798,7 +189159,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var aBlob uintptr @@ -196822,7 +189183,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196837,7 +189198,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196888,7 +189249,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var abPK, pNew, pOld, v1 uintptr @@ -196928,10 +189289,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196969,11 +189330,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196996,7 +189357,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -197015,7 +189376,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197024,7 +189385,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -197034,7 +189395,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34779, uintptr(0), uintptr(0), uintptr(0)) @@ -197047,7 +189408,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34800, uintptr(0), uintptr(0), uintptr(0)) @@ -197063,7 +189424,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -197090,7 +189451,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 4)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 4)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -197118,7 +189479,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(240) defer tls.Free(240) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -197158,7 +189519,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+92, bp+84, bp+88, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 92)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -197182,7 +189543,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 92)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp + 92)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -197258,7 +189619,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+4, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+4, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -197267,7 +189628,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+100, bp+104, 0) @@ -197275,7 +189636,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+108, 0, uint32(100)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 108))).FnCol = *(*int32)(unsafe.Pointer(bp + 100)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+108) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+108) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -197314,13 +189675,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -197329,11 +189694,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -197341,10 +189710,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -197352,37 +189727,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197958,7 +190325,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i int32 @@ -197993,8 +190360,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf = 0 } goto _3 @@ -198013,9 +190380,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) } } else { if ppOut != 0 { @@ -198126,18 +190493,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -198145,13 +190514,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -198193,12 +190564,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -198206,27 +190583,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -198381,7 +190749,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var bDone, iHash, v2 int32 @@ -198489,8 +190857,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+16, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+16, *(*uintptr)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -198502,9 +190870,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+16, 0, uint32(12)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) } } else { if ppOut != 0 { @@ -198578,21 +190946,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198751,18 +191123,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198822,99 +191182,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198936,14 +191203,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { F__ccgo_align [0]uint32 Fa uintptr @@ -198957,19 +191216,6 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - F__ccgo_align [0]uint32 - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - F__ccgo_align5 [2]byte - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { F__ccgo_align [0]uint32 FiPrev Ti64 @@ -198977,13 +191223,6 @@ type TFts5PoslistWriter = struct { type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - F__ccgo_align [0]uint32 - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -199045,17 +191284,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - F__ccgo_align [0]uint32 - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 - F__ccgo_pad4 [7]byte -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -199077,14 +191305,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -199198,13 +191418,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { F__ccgo_align [0]uint32 Fwriter TFts5PoslistWriter @@ -199772,14 +191985,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199790,16 +191995,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199851,10 +192046,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(1216)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(1216)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199960,12 +192155,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -200552,18 +192747,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200646,22 +192829,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200839,16 +193006,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -201218,17 +193375,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - F__ccgo_align [0]uint32 - FnPhrase int32 - F__ccgo_align1 [4]byte - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201959,21 +194105,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -202282,13 +194413,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202944,7 +195068,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202954,9 +195078,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -203318,117 +195442,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - F__ccgo_align [0]uint32 - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - F__ccgo_align5 [4]byte - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -204115,18 +196128,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - F__ccgo_align [0]uint32 - Fa uintptr - Fn int32 - Fi int32 - F__ccgo_align3 [4]byte - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+8, p+24) != 0 { @@ -204153,16 +196154,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - F__ccgo_align [0]uint32 - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr - F__ccgo_pad3 [4]byte -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -205283,14 +197274,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -206231,15 +198214,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - F__ccgo_align [0]uint32 - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -206279,15 +198253,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - F__ccgo_align [0]uint32 - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { F__ccgo_align [0]uint32 FpExpr uintptr @@ -206653,67 +198618,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - F__ccgo_align [0]uint32 - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207784,159 +199688,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - F__ccgo_align [0]uint32 - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - F__ccgo_align5 [4]byte - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - F__ccgo_align21 [4]byte - FiStructVersion Ti64 - FpStruct uintptr - F__ccgo_pad23 [4]byte -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - F__ccgo_align [0]uint32 - FaEof uintptr - F__ccgo_align1 [4]byte - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 - F__ccgo_pad5 [4]byte -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - F__ccgo_align [0]uint32 - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - F__ccgo_align3 [4]byte - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - F__ccgo_align6 [4]byte - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - F__ccgo_align [0]uint32 - FnRef int32 - F__ccgo_align1 [4]byte - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - F__ccgo_align [0]uint32 - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer - F__ccgo_pad4 [4]byte -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - F__ccgo_align [0]uint32 - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 - F__ccgo_pad12 [4]byte -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207944,199 +199695,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - F__ccgo_align [0]uint32 - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - F__ccgo_align5 [4]byte - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - F__ccgo_align17 [4]byte - FiRowid Ti64 - FnPos int32 - FbDel Tu8 - F__ccgo_pad20 [3]byte -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - F__ccgo_align [0]uint32 - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - F__ccgo_align9 [3]byte - FiSwitchRowid Ti64 - FaFirst uintptr - F__ccgo_pad12 [4]byte -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - F__ccgo_align [0]uint32 - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - F__ccgo_align5 [4]byte - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint32 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -211068,14 +202626,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -211085,15 +202635,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -211207,7 +202748,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -211228,7 +202769,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212822,15 +204363,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - F__ccgo_align [0]uint32 - FpIdx uintptr - F__ccgo_align1 [4]byte - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213953,18 +205485,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - F__ccgo_align [0]uint32 - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr - F__ccgo_pad5 [4]byte -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -214182,7 +205702,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -214219,7 +205739,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -214230,71 +205750,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - F__ccgo_align [0]uint32 - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -214463,14 +205918,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -214519,21 +205966,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - F__ccgo_align [0]uint32 - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr - F__ccgo_pad8 [4]byte -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216853,89 +208285,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - F__ccgo_align [0]uint32 - Fapi Tfts5_api - Fdb uintptr - F__ccgo_align2 [4]byte - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216943,101 +208292,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - F__ccgo_align [0]uint32 - FpStmt uintptr - F__ccgo_align1 [4]byte - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - F__ccgo_align3 [4]byte - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -219005,7 +210259,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -219013,7 +210267,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -219024,8 +210278,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -219433,7 +210687,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -219463,8 +210717,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(16)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -219472,7 +210726,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219764,7 +211018,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219788,7 +211042,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -220075,14 +211329,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -220177,7 +211431,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -220194,8 +211448,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint32FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -220222,7 +211476,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -220239,7 +211493,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*48 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint32FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -220266,15 +211520,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -220334,11 +211579,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -220347,13 +211592,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -220362,7 +211607,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -220375,7 +211620,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -220392,7 +211637,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -220400,7 +211645,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220872,62 +212117,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - F__ccgo_align [0]uint32 - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - F__ccgo_align3 [4]byte - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -221284,14 +212473,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -222023,18 +213204,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - F__ccgo_align [0]uint32 - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -222539,12 +213708,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222649,7 +213812,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222691,7 +213854,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222725,18 +213888,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222962,7 +214113,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 148 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -223149,7 +214300,7 @@ _9: _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(zOut)-int32(aFold), is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(zOut)-int32(aFold), is, ie) goto _2 _1: ; @@ -223177,14 +214328,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]uint8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -223262,14 +214405,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -223280,16 +214415,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -type PorterRule1 = TPorterRule1 - func _fts5PorterIsVowel(tls *libc.TLS, c uint8, bYIsVowel int32) (r int32) { return libc.BoolInt32(libc.Int32FromUint8(c) == int32('a') || libc.Int32FromUint8(c) == int32('e') || libc.Int32FromUint8(c) == int32('i') || libc.Int32FromUint8(c) == int32('o') || libc.Int32FromUint8(c) == int32('u') || bYIsVowel != 0 && libc.Int32FromUint8(c) == int32('y')) } @@ -223915,14 +215040,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 20 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223940,13 +215065,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -224028,7 +215146,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -224156,7 +215274,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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(zOut)-t__predefined_ptrdiff_t(bp), aStart[0], iNext) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(zOut)-t__predefined_ptrdiff_t(bp), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -224232,11 +215350,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229794,42 +220912,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - F__ccgo_align14 [4]byte - FiInstPos Ti64 - FiInstOff int32 - F__ccgo_pad16 [4]byte -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230914,11 +221996,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '4'} 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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 c08646d30..8d7fd60f2 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_arm64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_arm64.go @@ -2188,7 +2188,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2299,8 +2299,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -3930,12 +3930,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4064,30 +4058,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - /* ** CAPI3REF: Standard File Control Opcodes ** KEYWORDS: {file control opcodes} {file control opcode} @@ -4975,33 +4945,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -5080,19 +5023,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -5268,223 +5198,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5566,20 +5279,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5629,13 +5328,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5815,24 +5507,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5856,22 +5530,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -6012,50 +5670,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6452,340 +6066,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6795,15 +6075,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6819,14 +6090,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6852,17 +6115,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7306,52 +6558,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint64 type size_t = Tsize_t @@ -7681,14 +6887,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -7933,6 +7131,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -8420,10 +7619,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8852,9 +8047,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -8981,53 +8176,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -9131,16 +8279,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -9164,38 +8302,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9208,34 +8319,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9249,90 +8336,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9351,187 +8354,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9541,917 +8363,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity uint8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10476,622 +8387,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr uint8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -11101,318 +8396,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]uint8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11498,232 +8481,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign uint8 - FisSpecial uint8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]uint8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -12887,72 +9644,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -12998,152 +9689,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13174,18 +9719,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13202,101 +9735,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]uint8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13318,13 +9756,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13344,14 +9775,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13430,7 +9854,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13660,7 +10084,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13795,24 +10219,6 @@ type TDateTime = struct { 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 - FvalidYMD uint8 - FvalidHMS uint8 - FnFloor uint8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15806,28 +12212,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15835,19 +12241,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15864,12 +12270,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15877,7 +12283,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15890,34 +12296,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16230,14 +12636,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16252,9 +12651,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -17001,27 +13400,6 @@ type t__ptcb = struct { F__next uintptr } -type Tcpu_set_t1 = struct { - F__bits [16]uint64 -} - -type cpu_set_t1 = Tcpu_set_t1 - -/* -** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two conditions: (1) Debug builds and (2) using -** home-grown mutexes. Encapsulate these conditions into a single #define. - */ - -/* -** Each recursive mutex is an instance of the following structure. - */ -type Tsqlite3_mutex1 = struct { - Fmutex Tpthread_mutex_t -} - -type sqlite3_mutex1 = Tsqlite3_mutex1 - /* ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are ** intended for use only inside assert() statements. On some platforms, @@ -17305,6 +13683,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -17312,8 +13692,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20621,56 +17001,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ - -/* #include */ - -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid Tpthread_t - Fdone int32 - FpOut uintptr - FxTask uintptr - FpIn uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -20681,7 +17015,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } libc.Xmemset(tls, p, 0, uint64(40)) - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a ** function that returns SQLITE_ERROR when passed the argument 200, that @@ -20690,11 +17024,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if _sqlite3FaultSim(tls, int32(200)) != 0 { rc = int32(1) } else { - rc = libc.Xpthread_create(tls, p, uintptr(0), xTask, pIn) + rc = libc.Xpthread_create(tls, p, uintptr(0), __ccgo_fp_xTask, pIn) } if rc != 0 { (*TSQLiteThread)(unsafe.Pointer(p)).Fdone = int32(1) - (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24504,22 +20838,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24550,30 +20868,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24800,7 +21094,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24838,10 +21132,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -25216,47 +21510,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25357,7 +21610,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -25987,7 +22240,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26618,7 +22871,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3605, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3605, bp, int32(42579)) } // C documentation @@ -26655,7 +22908,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -27203,7 +23367,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27266,7 +23430,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27499,7 +23663,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 128)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1667, int32(1), bp+128) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28668,7 +24832,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3488, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3488, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28745,7 +24909,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3677, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3677, zIn, int32(45510)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 128)))[got] = uint8(0) @@ -28943,14 +25097,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if libc.Int32FromUint8(*(*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(45566)), __ccgo_ts+3506, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3506, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -31022,66 +27016,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31255,14 +27189,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -32078,123 +28012,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33391,25 +29208,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34371,258 +30169,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]uint8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34721,7 +30267,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37206,7 +32752,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37397,10 +32943,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38301,7 +33847,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38376,7 +33922,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38598,7 +34144,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38854,7 +34400,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -39029,7 +34575,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -39060,7 +34606,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -39132,7 +34678,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -40489,7 +36035,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41338,232 +36884,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41582,29 +36902,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -42033,14 +37330,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42207,7 +37496,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42295,7 +37584,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42875,10 +38164,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -42976,7 +38265,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -43015,7 +38304,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -43028,7 +38317,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -43044,7 +38333,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -43065,7 +38354,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -43131,7 +38420,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43429,7 +38718,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44240,7 +39529,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44386,7 +39675,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44413,7 +39702,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44741,7 +40030,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44922,7 +40211,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -44931,7 +40220,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -44983,14 +40272,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45536,288 +40825,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -45950,27 +40957,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46853,11 +41839,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -47031,7 +42017,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47044,12 +42030,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47093,7 +42079,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -47101,7 +42087,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47521,7 +42507,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47561,12 +42547,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47574,21 +42560,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47635,12 +42621,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47656,7 +42642,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47716,7 +42702,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47733,14 +42719,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47783,11 +42769,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47801,7 +42787,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47882,12 +42868,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47898,11 +42884,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -47923,7 +42909,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -47940,10 +42926,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -48004,7 +42990,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -48030,7 +43016,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -48069,12 +43055,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48101,7 +43087,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -48132,11 +43118,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -48165,7 +43151,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48178,7 +43164,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48329,7 +43315,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48391,7 +43377,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49303,7 +44289,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -49744,7 +44730,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49768,7 +44754,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49777,7 +44763,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49791,7 +44777,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49821,7 +44807,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -49917,7 +44903,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49955,7 +44941,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -50022,7 +45008,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50065,7 +45051,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -50095,7 +45081,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50561,7 +45547,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50953,7 +45939,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50963,7 +45949,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -51020,7 +46006,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -51094,7 +46080,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51229,7 +46215,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51241,7 +46227,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -51357,7 +46343,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51371,7 +46357,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51605,7 +46591,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51689,7 +46675,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51701,7 +46687,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -51903,7 +46889,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -51936,7 +46922,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51945,7 +46931,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -52074,7 +47060,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52184,7 +47170,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52272,7 +47258,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52327,7 +47313,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52353,7 +47339,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52380,7 +47366,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -52451,7 +47437,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52589,7 +47575,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52640,7 +47626,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52649,7 +47635,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52739,7 +47725,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52757,7 +47743,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52780,7 +47766,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -53001,7 +47987,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53295,17 +48281,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53395,12 +48370,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53408,7 +48383,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -53503,7 +48478,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz)) @@ -53651,7 +48626,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2))) nCell -= nShift @@ -53722,7 +48697,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53767,7 +48742,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -54131,7 +49106,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -54154,7 +49129,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54285,7 +49260,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -54328,7 +49303,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54387,7 +49362,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54419,7 +49394,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54649,7 +49624,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54895,7 +49870,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -54968,7 +49943,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -55127,7 +50102,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -55158,7 +50133,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55243,7 +50218,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55335,7 +50310,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55371,7 +50346,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55401,10 +50376,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55522,7 +50497,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55544,7 +50519,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55644,21 +50619,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&libc.Int32FromUint16(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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55752,7 +50727,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } nCell = libc.Int32FromUint16((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55862,7 +50837,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55903,7 +50878,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55984,14 +50959,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -56128,7 +51103,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57180,14 +52155,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57398,45 +52373,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -59038,7 +53974,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -59051,8 +53987,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59211,7 +54147,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59253,11 +54189,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59267,7 +54203,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59289,12 +54225,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59333,7 +54269,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59445,8 +54381,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -60036,7 +54972,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -60052,7 +54988,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -60062,7 +54998,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -60113,9 +55049,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60189,7 +55125,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -62313,7 +57249,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62321,7 +57257,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -63148,7 +58084,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -63996,7 +58932,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -64086,7 +59022,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -64121,7 +59057,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64175,7 +59111,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64307,7 +59243,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64459,7 +59395,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64490,7 +59426,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -64907,7 +59843,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65234,12 +60170,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65256,29 +60192,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65308,13 +60248,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65326,11 +60268,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65338,23 +60284,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65611,7 +60563,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65741,7 +60693,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65910,6 +60862,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -65923,7 +60877,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -65961,13 +60915,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66467,14 +61421,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5617, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66512,7 +61466,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66522,7 +61476,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66533,24 +61487,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66598,7 +61556,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66606,32 +61566,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -67048,7 +62014,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -67110,7 +62076,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol)).Faffinity, bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67211,7 +62177,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70572,7 +65538,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72482,7 +67448,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, uint8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72509,7 +67475,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73401,7 +68367,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -73783,7 +68749,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75434,7 +70400,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76836,7 +71523,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77327,8 +72014,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77523,7 +72210,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -79175,57 +73862,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79522,7 +74158,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -83986,12 +78622,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87568,6 +82198,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -88105,6 +82740,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88311,7 +82967,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -88338,8 +82994,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -90754,31 +85410,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90795,16 +85426,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -91107,9 +85728,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91303,7 +85924,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11472, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91322,7 +85943,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92386,7 +87007,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -92940,44 +87561,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94268,13 +88851,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95473,6 +90049,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95545,9 +90123,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95727,47 +90305,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96395,9 +90932,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100643,7 +95180,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14729, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -106082,17 +100619,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106306,12 +100832,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109593,7 +104113,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -111087,33 +105607,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112667,6 +107160,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112700,7 +107195,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112712,7 +107207,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1667 @@ -112736,7 +107231,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -112777,7 +107272,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -112824,330 +107319,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -113752,14 +107923,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113774,7 +107940,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113792,7 +107958,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -113807,7 +107973,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113817,6 +107983,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113828,7 +107996,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113840,7 +108008,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -117567,25 +111735,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -117987,7 +112136,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -118000,7 +112149,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+18990, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118594,7 +112743,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118607,9 +112756,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118796,7 +112945,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -118930,7 +113079,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -119052,15 +113201,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -119096,21 +113236,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119797,13 +113922,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -123778,18 +117896,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127382,6 +121488,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131686,39 +125793,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131729,7 +125803,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131748,7 +125822,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131773,15 +125847,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131796,13 +125870,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132324,7 +126400,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132385,7 +126461,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132669,9 +126745,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133253,7 +127329,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133266,7 +127342,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133526,435 +127602,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff uint8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134299,10 +127946,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -134925,7 +128572,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135275,7 +128922,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136821,7 +130468,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -138960,16 +132607,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -139082,7 +132719,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140600,10 +134237,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -142884,15 +136521,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -142924,7 +136552,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -142943,7 +136571,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -142980,7 +136608,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -143009,19 +136637,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143323,6 +136951,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143865,7 +137501,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144530,17 +138166,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146515,7 +140140,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146528,7 +140153,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146707,7 +140332,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -148042,16 +141667,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -148070,17 +141685,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -148098,7 +141713,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -148122,13 +141737,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -148143,9 +141758,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -148153,13 +141768,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148175,13 +141790,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -148958,87 +142573,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157287,14 +150821,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157305,16 +150831,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164290,7 +157806,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165660,12 +159180,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165683,9 +159203,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165714,7 +159234,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165732,15 +159252,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165755,27 +159275,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165786,30 +159306,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165872,6 +159422,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165882,43 +159434,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -165929,12 +159485,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -165946,6 +159502,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165953,82 +159511,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -166072,18 +159640,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -166109,7 +159679,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -166241,7 +159811,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166373,7 +159943,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166383,7 +159953,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166419,7 +159989,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166432,7 +160002,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166476,9 +160046,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -166980,7 +160550,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4285 @@ -167134,36 +160704,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -167171,7 +160749,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167179,31 +160757,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167237,12 +160819,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167277,8 +160861,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167289,7 +160873,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168641,6 +162225,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168664,7 +162250,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168674,7 +162260,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168686,7 +162272,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168702,7 +162288,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -169918,106 +163504,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]uint8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172628,16 +166114,6 @@ type TJsonPretty = struct { 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 */ @@ -175464,16 +168940,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175492,24 +168958,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175517,13 +168965,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176495,223 +169936,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176729,33 +169956,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176766,78 +169987,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -179793,9 +172998,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179810,9 +173015,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -180712,23 +173917,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181313,14 +174501,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181345,16 +174525,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -182137,13 +175307,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182378,36 +175541,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183378,16 +176511,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28672) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28688) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183696,12 +176829,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183709,33 +176844,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184353,248 +177492,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]uint8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187308,7 +180205,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187410,7 +180307,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187483,12 +180380,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187513,18 +180410,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -188042,10 +180939,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188564,7 +181461,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -188685,7 +181582,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -188730,9 +181627,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188804,7 +181703,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -189007,7 +181906,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -189058,14 +181957,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint64FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -190990,315 +183828,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192704,13 +185233,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193202,14 +185724,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193717,15 +186231,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194347,7 +186863,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194361,7 +186877,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194437,8 +186953,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194463,13 +186979,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194498,28 +187014,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194658,7 +187178,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194673,9 +187193,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194704,20 +187224,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194892,7 +187416,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194916,7 +187440,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194931,7 +187455,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -194987,7 +187511,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195092,7 +187616,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195198,7 +187722,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195208,7 +187732,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195287,7 +187811,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195548,7 +188072,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195697,11 +188221,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195713,8 +188237,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -195742,12 +188266,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -195755,9 +188283,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195770,14 +188298,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195801,29 +188321,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196227,7 +188724,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196245,11 +188742,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196426,7 +188923,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -196450,7 +188947,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196465,7 +188962,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196516,7 +189013,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -196556,10 +189053,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196597,11 +189094,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196624,7 +189121,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196643,7 +189140,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196652,7 +189149,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196662,7 +189159,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34779, uintptr(0), uintptr(0), uintptr(0)) @@ -196675,7 +189172,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34800, uintptr(0), uintptr(0), uintptr(0)) @@ -196691,7 +189188,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196718,7 +189215,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196746,7 +189243,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196786,7 +189283,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196810,7 +189307,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -196886,7 +189383,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196895,7 +189392,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -196903,7 +189400,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -196942,13 +189439,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -196957,11 +189458,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196969,10 +189474,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196980,37 +189491,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197586,7 +190089,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -197621,8 +190124,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -197641,9 +190144,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -197754,18 +190257,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197773,13 +190278,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197821,12 +190328,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197834,27 +190347,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -198009,7 +190513,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -198117,8 +190621,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -198130,9 +190634,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -198206,21 +190710,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198377,18 +190885,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198448,99 +190944,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198562,14 +190965,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198581,29 +190976,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198659,15 +191037,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198689,14 +191058,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198806,13 +191167,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199379,14 +191733,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199397,16 +191743,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199458,10 +191794,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199567,12 +191903,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -200159,18 +192495,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200253,22 +192577,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200446,16 +192754,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200823,15 +193121,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201562,21 +193851,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201885,13 +194159,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202547,7 +194814,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202557,9 +194824,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -202921,115 +195188,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203714,16 +195872,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -203748,14 +195896,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204876,14 +197016,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205824,14 +197956,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205871,14 +197995,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206242,66 +198358,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207351,143 +199407,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207495,191 +199414,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -210611,14 +202345,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210628,15 +202354,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210750,7 +202467,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210771,7 +202488,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212364,13 +204081,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213491,16 +205201,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213718,7 +205418,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213755,7 +205455,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213766,70 +205466,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -213998,14 +205634,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -214052,19 +205680,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216380,87 +207995,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216468,97 +208002,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -218526,7 +209969,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -218534,7 +209977,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -218545,8 +209988,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -218954,7 +210397,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -218984,8 +210427,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -218993,7 +210436,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219285,7 +210728,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219309,7 +210752,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -219596,14 +211039,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -219698,7 +211141,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -219715,8 +211158,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -219743,7 +211186,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -219760,7 +211203,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -219787,15 +211230,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -219855,11 +211289,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -219868,13 +211302,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -219883,7 +211317,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -219896,7 +211330,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -219913,7 +211347,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -219921,7 +211355,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220393,60 +211827,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -220803,14 +212183,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221541,17 +212913,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -222056,12 +213417,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222166,7 +213521,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222208,7 +213563,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222242,18 +213597,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222479,7 +213822,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -222666,7 +214009,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -222694,14 +214037,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]uint8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -222779,14 +214114,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222797,16 +214124,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -type PorterRule1 = TPorterRule1 - func _fts5PorterIsVowel(tls *libc.TLS, c uint8, bYIsVowel int32) (r int32) { return libc.BoolInt32(libc.Int32FromUint8(c) == int32('a') || libc.Int32FromUint8(c) == int32('e') || libc.Int32FromUint8(c) == int32('i') || libc.Int32FromUint8(c) == int32('o') || libc.Int32FromUint8(c) == int32('u') || bYIsVowel != 0 && libc.Int32FromUint8(c) == int32('y')) } @@ -223432,14 +214749,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223457,13 +214774,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223545,7 +214855,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223673,7 +214983,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223749,11 +215059,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229308,39 +220618,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230425,11 +221702,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '4'} 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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 36604b95f..049a34870 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_loong64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_loong64.go @@ -2186,7 +2186,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2297,8 +2297,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -4029,12 +4029,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4163,30 +4157,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - /* ** CAPI3REF: Standard File Control Opcodes ** KEYWORDS: {file control opcodes} {file control opcode} @@ -5074,33 +5044,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -5179,19 +5122,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -5367,223 +5297,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5665,20 +5378,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5728,13 +5427,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5914,24 +5606,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5955,22 +5629,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -6111,50 +5769,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6551,340 +6165,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6894,15 +6174,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6918,14 +6189,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6951,17 +6214,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7405,52 +6657,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint64 type size_t = Tsize_t @@ -7780,14 +6986,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -8032,6 +7230,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -8519,10 +7718,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8951,9 +8146,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -9080,53 +8275,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -9230,16 +8378,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -9263,38 +8401,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9307,34 +8418,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9348,90 +8435,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9450,187 +8453,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9640,917 +8462,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity int8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10575,622 +8486,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr int8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -11200,318 +8495,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]int8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11597,232 +8580,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign int8 - FisSpecial int8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]int8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -12986,72 +9743,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -13097,152 +9788,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13273,18 +9818,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13301,101 +9834,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]int8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13417,13 +9855,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13443,14 +9874,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13529,7 +9953,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13759,7 +10183,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13894,24 +10318,6 @@ type TDateTime = struct { 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 - FvalidYMD int8 - FvalidHMS int8 - FnFloor int8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15905,28 +12311,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15934,19 +12340,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15963,12 +12369,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15976,7 +12382,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15989,34 +12395,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16329,14 +12735,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16351,9 +12750,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -17100,27 +13499,6 @@ type t__ptcb = struct { F__next uintptr } -type Tcpu_set_t1 = struct { - F__bits [16]uint64 -} - -type cpu_set_t1 = Tcpu_set_t1 - -/* -** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two conditions: (1) Debug builds and (2) using -** home-grown mutexes. Encapsulate these conditions into a single #define. - */ - -/* -** Each recursive mutex is an instance of the following structure. - */ -type Tsqlite3_mutex1 = struct { - Fmutex Tpthread_mutex_t -} - -type sqlite3_mutex1 = Tsqlite3_mutex1 - /* ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are ** intended for use only inside assert() statements. On some platforms, @@ -17404,6 +13782,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -17411,8 +13791,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20720,56 +17100,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ - -/* #include */ - -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid Tpthread_t - Fdone int32 - FpOut uintptr - FxTask uintptr - FpIn uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -20780,7 +17114,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } libc.Xmemset(tls, p, 0, uint64(40)) - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a ** function that returns SQLITE_ERROR when passed the argument 200, that @@ -20789,11 +17123,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if _sqlite3FaultSim(tls, int32(200)) != 0 { rc = int32(1) } else { - rc = libc.Xpthread_create(tls, p, uintptr(0), xTask, pIn) + rc = libc.Xpthread_create(tls, p, uintptr(0), __ccgo_fp_xTask, pIn) } if rc != 0 { (*TSQLiteThread)(unsafe.Pointer(p)).Fdone = int32(1) - (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24603,22 +20937,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24649,30 +20967,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24899,7 +21193,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24937,10 +21231,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -25315,47 +21609,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25456,7 +21709,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -26086,7 +22339,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26717,7 +22970,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3633, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3633, bp, int32(42579)) } // C documentation @@ -26754,7 +23007,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -27302,7 +23466,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27365,7 +23529,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27598,7 +23762,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 128)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1695, int32(1), bp+128) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28767,7 +24931,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3516, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3516, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28844,7 +25008,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3705, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3705, zIn, int32(45510)) return } (*(*[4098]int8)(unsafe.Pointer(bp + 128)))[got] = 0 @@ -29042,14 +25196,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(45566)), __ccgo_ts+3534, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3534, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -31121,66 +27115,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31354,14 +27288,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -32177,123 +28111,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33490,25 +29307,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34470,258 +30268,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]int8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34820,7 +30366,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37305,7 +32851,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37496,10 +33042,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38400,7 +33946,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38475,7 +34021,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38697,7 +34243,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38953,7 +34499,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -39128,7 +34674,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -39159,7 +34705,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -39231,7 +34777,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -40588,7 +36134,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41437,232 +36983,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41681,29 +37001,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -42132,14 +37429,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42306,7 +37595,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42394,7 +37683,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42974,10 +38263,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -43075,7 +38364,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -43114,7 +38403,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -43127,7 +38416,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -43143,7 +38432,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -43164,7 +38453,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -43230,7 +38519,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43528,7 +38817,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44339,7 +39628,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44485,7 +39774,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44512,7 +39801,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44840,7 +40129,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -45021,7 +40310,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -45030,7 +40319,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -45082,14 +40371,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45635,288 +40924,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -46049,27 +41056,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46952,11 +41938,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -47130,7 +42116,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47143,12 +42129,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47192,7 +42178,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -47200,7 +42186,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47620,7 +42606,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47660,12 +42646,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47673,21 +42659,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47734,12 +42720,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47755,7 +42741,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47815,7 +42801,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47832,14 +42818,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47882,11 +42868,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47900,7 +42886,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47981,12 +42967,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47997,11 +42983,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -48022,7 +43008,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -48039,10 +43025,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -48103,7 +43089,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -48129,7 +43115,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -48168,12 +43154,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48200,7 +43186,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -48231,11 +43217,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -48264,7 +43250,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48277,7 +43263,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48428,7 +43414,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48490,7 +43476,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49402,7 +44388,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -49843,7 +44829,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49867,7 +44853,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49876,7 +44862,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49890,7 +44876,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49920,7 +44906,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -50016,7 +45002,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -50054,7 +45040,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -50121,7 +45107,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50164,7 +45150,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -50194,7 +45180,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50660,7 +45646,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -51052,7 +46038,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -51062,7 +46048,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -51119,7 +46105,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -51193,7 +46179,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51328,7 +46314,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51340,7 +46326,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -51456,7 +46442,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51470,7 +46456,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51704,7 +46690,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51788,7 +46774,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51800,7 +46786,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -52002,7 +46988,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -52035,7 +47021,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -52044,7 +47030,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -52173,7 +47159,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52283,7 +47269,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52371,7 +47357,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52426,7 +47412,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52452,7 +47438,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52479,7 +47465,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -52550,7 +47536,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52688,7 +47674,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52739,7 +47725,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52748,7 +47734,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52838,7 +47824,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52856,7 +47842,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52879,7 +47865,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -53100,7 +48086,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53394,17 +48380,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53494,12 +48469,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53507,7 +48482,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -53602,7 +48577,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz)) @@ -53750,7 +48725,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2))) nCell -= nShift @@ -53821,7 +48796,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53866,7 +48841,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -54230,7 +49205,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -54253,7 +49228,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54384,7 +49359,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -54427,7 +49402,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54486,7 +49461,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54518,7 +49493,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54748,7 +49723,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54994,7 +49969,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -55067,7 +50042,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -55226,7 +50201,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -55257,7 +50232,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55342,7 +50317,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55434,7 +50409,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55470,7 +50445,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55500,10 +50475,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55621,7 +50596,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55643,7 +50618,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55743,21 +50718,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&libc.Int32FromUint16(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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55851,7 +50826,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } nCell = libc.Int32FromUint16((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55961,7 +50936,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -56002,7 +50977,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -56083,14 +51058,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -56227,7 +51202,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57279,14 +52254,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57497,45 +52472,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -59137,7 +54073,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -59150,8 +54086,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59310,7 +54246,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59352,11 +54288,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59366,7 +54302,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59388,12 +54324,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59432,7 +54368,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59544,8 +54480,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -60135,7 +55071,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -60151,7 +55087,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -60161,7 +55097,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -60212,9 +55148,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60288,7 +55224,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -62412,7 +57348,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62420,7 +57356,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -63247,7 +58183,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -64095,7 +59031,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -64185,7 +59121,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -64220,7 +59156,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64274,7 +59210,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64406,7 +59342,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64558,7 +59494,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64589,7 +59525,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -65006,7 +59942,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65333,12 +60269,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65355,29 +60291,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65407,13 +60347,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65425,11 +60367,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65437,23 +60383,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65710,7 +60662,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65840,7 +60792,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -66009,6 +60961,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -66022,7 +60976,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -66060,13 +61014,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66566,14 +61520,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5645, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66611,7 +61565,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66621,7 +61575,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66632,24 +61586,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66697,7 +61655,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66705,32 +61665,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -67147,7 +62113,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -67209,7 +62175,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, libc.Uint8FromInt8((*TColumn)(unsafe.Pointer(pCol)).Faffinity), bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67310,7 +62276,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70671,7 +65637,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72581,7 +67547,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, int8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72608,7 +67574,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73500,7 +68466,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -73882,7 +68848,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75533,7 +70499,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76935,7 +71622,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77426,8 +72113,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77622,7 +72309,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -79274,57 +73961,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79621,7 +74257,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -84085,12 +78721,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87667,6 +82297,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -88204,6 +82839,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88410,7 +83066,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -88437,8 +83093,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -90853,31 +85509,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90894,16 +85525,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -91206,9 +85827,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91402,7 +86023,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11500, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91421,7 +86042,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92485,7 +87106,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -93039,44 +87660,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94367,13 +88950,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95572,6 +90148,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95644,9 +90222,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95826,47 +90404,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96494,9 +91031,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100742,7 +95279,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14757, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -106181,17 +100718,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106405,12 +100931,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109692,7 +104212,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -111186,33 +105706,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112766,6 +107259,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112799,7 +107294,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112811,7 +107306,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1695 @@ -112835,7 +107330,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -112876,7 +107371,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -112923,330 +107418,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -113851,14 +108022,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113873,7 +108039,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113891,7 +108057,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -113906,7 +108072,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113916,6 +108082,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113927,7 +108095,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113939,7 +108107,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -117666,25 +111834,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -118086,7 +112235,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -118099,7 +112248,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+19018, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118693,7 +112842,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118706,9 +112855,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118895,7 +113044,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -119029,7 +113178,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -119151,15 +113300,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -119195,21 +113335,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119896,13 +114021,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -123877,18 +117995,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127481,6 +121587,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131785,39 +125892,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131828,7 +125902,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131847,7 +125921,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131872,15 +125946,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131895,13 +125969,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132423,7 +126499,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132484,7 +126560,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132768,9 +126844,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133352,7 +127428,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133365,7 +127441,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133625,435 +127701,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff int8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134398,10 +128045,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -135024,7 +128671,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135374,7 +129021,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136920,7 +130567,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -139059,16 +132706,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -139181,7 +132818,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140699,10 +134336,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -142983,15 +136620,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -143023,7 +136651,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -143042,7 +136670,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -143079,7 +136707,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -143108,19 +136736,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143422,6 +137050,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143964,7 +137600,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144629,17 +138265,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146614,7 +140239,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146627,7 +140252,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146806,7 +140431,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -148141,16 +141766,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -148169,17 +141784,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -148197,7 +141812,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -148221,13 +141836,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -148242,9 +141857,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -148252,13 +141867,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148274,13 +141889,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -149057,87 +142672,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157386,14 +150920,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157404,16 +150930,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164389,7 +157905,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165759,12 +159279,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165782,9 +159302,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165813,7 +159333,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165831,15 +159351,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165854,27 +159374,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165885,30 +159405,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165971,6 +159521,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165981,43 +159533,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -166028,12 +159584,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -166045,6 +159601,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -166052,82 +159610,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -166171,18 +159739,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -166208,7 +159778,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -166340,7 +159910,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166472,7 +160042,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166482,7 +160052,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166518,7 +160088,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166531,7 +160101,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166575,9 +160145,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -167079,7 +160649,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4313 @@ -167233,36 +160803,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -167270,7 +160848,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167278,31 +160856,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167336,12 +160918,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167376,8 +160960,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167388,7 +160972,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168740,6 +162324,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168763,7 +162349,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168773,7 +162359,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168785,7 +162371,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168801,7 +162387,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -170017,106 +163603,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]int8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172727,16 +166213,6 @@ type TJsonPretty = struct { 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 */ @@ -175563,16 +169039,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175591,24 +169057,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175616,13 +169064,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176594,223 +170035,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176828,33 +170055,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176865,78 +170086,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -179892,9 +173097,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179909,9 +173114,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -180811,23 +174016,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181412,14 +174600,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181444,16 +174624,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -182236,13 +175406,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182477,36 +175640,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183477,16 +176610,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28700) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28716) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183795,12 +176928,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183808,33 +176943,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184452,248 +177591,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]int8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187407,7 +180304,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187509,7 +180406,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187582,12 +180479,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187612,18 +180509,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6768, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6768, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6768, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6768, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -188141,10 +181038,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188663,7 +181560,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -188784,7 +181681,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -188829,9 +181726,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188903,7 +181802,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -189106,7 +182005,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -189157,14 +182056,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint64FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -191089,315 +183927,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192803,13 +185332,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193301,14 +185823,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193816,15 +186330,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194446,7 +186962,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194460,7 +186976,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194536,8 +187052,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194562,13 +187078,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194597,28 +187113,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194757,7 +187277,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194772,9 +187292,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194803,20 +187323,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194991,7 +187515,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -195015,7 +187539,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -195030,7 +187554,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195086,7 +187610,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195191,7 +187715,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195297,7 +187821,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195307,7 +187831,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195386,7 +187910,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195647,7 +188171,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195796,11 +188320,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195812,8 +188336,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -195841,12 +188365,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -195854,9 +188382,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195869,14 +188397,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195900,29 +188420,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196326,7 +188823,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196344,11 +188841,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196525,7 +189022,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -196549,7 +189046,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196564,7 +189061,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196615,7 +189112,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -196655,10 +189152,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196696,11 +189193,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196723,7 +189220,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196742,7 +189239,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196751,7 +189248,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196761,7 +189258,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34807, uintptr(0), uintptr(0), uintptr(0)) @@ -196774,7 +189271,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34828, uintptr(0), uintptr(0), uintptr(0)) @@ -196790,7 +189287,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196817,7 +189314,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196845,7 +189342,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196885,7 +189382,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196909,7 +189406,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3918, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -196985,7 +189482,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196994,7 +189491,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -197002,7 +189499,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -197041,13 +189538,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -197056,11 +189557,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -197068,10 +189573,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -197079,37 +189590,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197685,7 +190188,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -197720,8 +190223,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -197740,9 +190243,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -197853,18 +190356,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197872,13 +190377,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197920,12 +190427,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197933,27 +190446,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -198108,7 +190612,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -198216,8 +190720,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -198229,9 +190733,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -198305,21 +190809,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198476,18 +190984,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198547,99 +191043,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198661,14 +191064,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198680,29 +191075,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198758,15 +191136,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198788,14 +191157,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198905,13 +191266,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199478,14 +191832,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199496,16 +191842,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199557,10 +191893,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199666,12 +192002,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -200258,18 +192594,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200352,22 +192676,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200545,16 +192853,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200922,15 +193220,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201661,21 +193950,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201984,13 +194258,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202646,7 +194913,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202656,9 +194923,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -203020,115 +195287,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203813,16 +195971,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -203847,14 +195995,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204975,14 +197115,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205923,14 +198055,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205970,14 +198094,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206341,66 +198457,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207450,143 +199506,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207594,191 +199513,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -210710,14 +202444,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210727,15 +202453,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210849,7 +202566,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210870,7 +202587,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212463,13 +204180,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213590,16 +205300,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213817,7 +205517,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213854,7 +205554,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213865,70 +205565,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -214097,14 +205733,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -214151,19 +205779,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216479,87 +208094,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216567,97 +208101,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -218625,7 +210068,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -218633,7 +210076,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -218644,8 +210087,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -219053,7 +210496,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -219083,8 +210526,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -219092,7 +210535,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219384,7 +210827,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219408,7 +210851,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -219695,14 +211138,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -219797,7 +211240,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -219814,8 +211257,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -219842,7 +211285,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -219859,7 +211302,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -219886,15 +211329,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -219954,11 +211388,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -219967,13 +211401,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -219982,7 +211416,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -219995,7 +211429,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -220012,7 +211446,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -220020,7 +211454,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220492,60 +211926,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -220902,14 +212282,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221640,17 +213012,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -222155,12 +213516,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222265,7 +213620,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222307,7 +213662,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222341,18 +213696,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222578,7 +213921,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -222765,7 +214108,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -222793,14 +214136,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]int8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -222878,14 +214213,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222896,16 +214223,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -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')) } @@ -223531,14 +214848,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223556,13 +214873,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223644,7 +214954,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223772,7 +215082,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223848,11 +215158,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229407,39 +220717,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230524,11 +221801,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '4'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-14.2.1 20241104 (Red Hat 14.2.1-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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-14.2.1 20241104 (Red Hat 14.2.1-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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 2ad2b9037..8117bdfe8 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_ppc64le.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_ppc64le.go @@ -616,7 +616,7 @@ const F_TLOCK = 2 const F_ULOCK = 0 const F_UNLCK = 2 const F_WRLCK = 1 -const GCC_VERSION = 10002001 +const GCC_VERSION = 14002000 const GEOPOLY_PI = 3.141592653589793 const HASHSIZE = 97 const HASHTABLE_HASH_1 = 383 @@ -2183,7 +2183,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2294,8 +2294,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -3162,6 +3162,7 @@ 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__ = 1 const __DBL_MANT_DIG__ = 53 const __DBL_MAX_10_EXP__ = 308 const __DBL_MAX_EXP__ = 1024 @@ -3202,6 +3203,7 @@ 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__ = 1 const __FLT128_MANT_DIG__ = 113 const __FLT128_MAX_10_EXP__ = 4932 const __FLT128_MAX_EXP__ = 16384 @@ -3217,6 +3219,7 @@ 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__ = 1 const __FLT32X_MANT_DIG__ = 53 const __FLT32X_MAX_10_EXP__ = 308 const __FLT32X_MAX_EXP__ = 1024 @@ -3232,6 +3235,7 @@ 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__ = 1 const __FLT32_MANT_DIG__ = 24 const __FLT32_MAX_10_EXP__ = 38 const __FLT32_MAX_EXP__ = 128 @@ -3247,6 +3251,7 @@ 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__ = 1 const __FLT64X_MANT_DIG__ = 113 const __FLT64X_MAX_10_EXP__ = 4932 const __FLT64X_MAX_EXP__ = 16384 @@ -3262,6 +3267,7 @@ 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__ = 1 const __FLT64_MANT_DIG__ = 53 const __FLT64_MAX_10_EXP__ = 308 const __FLT64_MAX_EXP__ = 1024 @@ -3279,6 +3285,7 @@ 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__ = 1 const __FLT_MANT_DIG__ = 24 const __FLT_MAX_10_EXP__ = 38 const __FLT_MAX_EXP__ = 128 @@ -3314,14 +3321,15 @@ 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__ = 1 +const __GNUC_PATCHLEVEL__ = 0 const __GNUC_STDC_INLINE__ = 1 -const __GNUC__ = 10 -const __GXX_ABI_VERSION = 1014 +const __GNUC_WIDE_EXECUTION_CHARSET_NAME = "UTF-32LE" +const __GNUC__ = 14 +const __GXX_ABI_VERSION = 1019 const __HAVE_BSWAP__ = 1 const __HAVE_SPECULATION_SAFE_VALUE = 1 -const __HTM__ = 1 const __INT16_MAX__ = 32767 const __INT32_MAX__ = 2147483647 const __INT32_TYPE__ = 0 @@ -3357,6 +3365,7 @@ 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__ = 1 const __LDBL_MANT_DIG__ = 53 const __LDBL_MAX_10_EXP__ = 308 const __LDBL_MAX_EXP__ = 1024 @@ -3395,6 +3404,7 @@ const __RSQRTEF__ = 1 const __RSQRTE__ = 1 const __SCHAR_MAX__ = 127 const __SCHAR_WIDTH__ = 8 +const __SET_FPSCR_RN_RETURNS_FPSCR__ = 1 const __SHRT_MAX__ = 32767 const __SHRT_WIDTH__ = 16 const __SIG_ATOMIC_MAX__ = 2147483647 @@ -3402,7 +3412,9 @@ const __SIG_ATOMIC_MIN__ = -2147483648 const __SIG_ATOMIC_TYPE__ = 0 const __SIG_ATOMIC_WIDTH__ = 32 const __SIZEOF_DOUBLE__ = 8 +const __SIZEOF_FLOAT128__ = 16 const __SIZEOF_FLOAT__ = 4 +const __SIZEOF_IEEE128__ = 16 const __SIZEOF_INT128__ = 16 const __SIZEOF_INT__ = 4 const __SIZEOF_LONG_DOUBLE__ = 8 @@ -3420,13 +3432,14 @@ const __SQLITESESSION_H_ = 1 const __STDC_HOSTED__ = 1 const __STDC_IEC_559_COMPLEX__ = 1 const __STDC_IEC_559__ = 1 +const __STDC_IEC_60559_BFP__ = 201404 +const __STDC_IEC_60559_COMPLEX__ = 201404 const __STDC_ISO_10646__ = 201706 const __STDC_UTF_16__ = 1 const __STDC_UTF_32__ = 1 const __STDC_VERSION__ = 201710 const __STDC__ = 1 const __STRUCT_PARM_ALIGN__ = 16 -const __TM_FENCE__ = 1 const __UINT16_MAX__ = 65535 const __UINT32_MAX__ = 4294967295 const __UINT64_MAX__ = 18446744073709551615 @@ -3444,7 +3457,7 @@ const __UINT_LEAST8_MAX__ = 255 const __USE_TIME_BITS64 = 1 const __VEC_ELEMENT_REG_ORDER__ = 1234 const __VEC__ = 10206 -const __VERSION__ = "10.2.1 20210110" +const __VERSION__ = "14.2.0" const __VSX__ = 1 const __WCHAR_MAX__ = 2147483647 const __WCHAR_MIN__ = -2147483648 @@ -3966,12 +3979,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4100,30 +4107,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - /* ** CAPI3REF: Standard File Control Opcodes ** KEYWORDS: {file control opcodes} {file control opcode} @@ -5011,33 +4994,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -5116,19 +5072,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -5304,223 +5247,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5602,20 +5328,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5665,13 +5377,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5851,24 +5556,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5892,22 +5579,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -6048,50 +5719,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6488,340 +6115,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6831,15 +6124,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6855,14 +6139,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6888,17 +6164,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7342,52 +6607,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint64 type size_t = Tsize_t @@ -7717,14 +6936,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -7969,6 +7180,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -8456,10 +7668,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8888,9 +8096,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -9017,53 +8225,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -9167,16 +8328,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -9200,38 +8351,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9244,34 +8368,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9285,90 +8385,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9387,187 +8403,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9577,917 +8412,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity uint8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10512,622 +8436,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr uint8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -11137,318 +8445,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]uint8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11534,232 +8530,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign uint8 - FisSpecial uint8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]uint8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -11855,58 +8625,58 @@ type FpDecode1 = TFpDecode1 var _sqlite3azCompileOpt = [54]uintptr{ 0: __ccgo_ts, 1: __ccgo_ts + 20, - 2: __ccgo_ts + 49, - 3: __ccgo_ts + 68, - 4: __ccgo_ts + 93, - 5: __ccgo_ts + 115, - 6: __ccgo_ts + 145, - 7: __ccgo_ts + 165, - 8: __ccgo_ts + 185, - 9: __ccgo_ts + 208, - 10: __ccgo_ts + 233, - 11: __ccgo_ts + 260, - 12: __ccgo_ts + 285, - 13: __ccgo_ts + 307, - 14: __ccgo_ts + 339, - 15: __ccgo_ts + 365, - 16: __ccgo_ts + 390, - 17: __ccgo_ts + 411, - 18: __ccgo_ts + 434, - 19: __ccgo_ts + 453, - 20: __ccgo_ts + 465, - 21: __ccgo_ts + 480, - 22: __ccgo_ts + 502, - 23: __ccgo_ts + 527, - 24: __ccgo_ts + 550, - 25: __ccgo_ts + 572, - 26: __ccgo_ts + 583, - 27: __ccgo_ts + 596, - 28: __ccgo_ts + 611, - 29: __ccgo_ts + 627, - 30: __ccgo_ts + 640, - 31: __ccgo_ts + 661, - 32: __ccgo_ts + 685, - 33: __ccgo_ts + 708, - 34: __ccgo_ts + 724, - 35: __ccgo_ts + 740, - 36: __ccgo_ts + 764, - 37: __ccgo_ts + 791, - 38: __ccgo_ts + 811, - 39: __ccgo_ts + 833, - 40: __ccgo_ts + 855, - 41: __ccgo_ts + 885, - 42: __ccgo_ts + 910, - 43: __ccgo_ts + 936, - 44: __ccgo_ts + 956, - 45: __ccgo_ts + 982, - 46: __ccgo_ts + 1005, - 47: __ccgo_ts + 1031, - 48: __ccgo_ts + 1053, - 49: __ccgo_ts + 1074, - 50: __ccgo_ts + 1089, - 51: __ccgo_ts + 1097, - 52: __ccgo_ts + 1111, - 53: __ccgo_ts + 1124, + 2: __ccgo_ts + 40, + 3: __ccgo_ts + 59, + 4: __ccgo_ts + 84, + 5: __ccgo_ts + 106, + 6: __ccgo_ts + 136, + 7: __ccgo_ts + 156, + 8: __ccgo_ts + 176, + 9: __ccgo_ts + 199, + 10: __ccgo_ts + 224, + 11: __ccgo_ts + 251, + 12: __ccgo_ts + 276, + 13: __ccgo_ts + 298, + 14: __ccgo_ts + 330, + 15: __ccgo_ts + 356, + 16: __ccgo_ts + 381, + 17: __ccgo_ts + 402, + 18: __ccgo_ts + 425, + 19: __ccgo_ts + 444, + 20: __ccgo_ts + 456, + 21: __ccgo_ts + 471, + 22: __ccgo_ts + 493, + 23: __ccgo_ts + 518, + 24: __ccgo_ts + 541, + 25: __ccgo_ts + 563, + 26: __ccgo_ts + 574, + 27: __ccgo_ts + 587, + 28: __ccgo_ts + 602, + 29: __ccgo_ts + 618, + 30: __ccgo_ts + 631, + 31: __ccgo_ts + 652, + 32: __ccgo_ts + 676, + 33: __ccgo_ts + 699, + 34: __ccgo_ts + 715, + 35: __ccgo_ts + 731, + 36: __ccgo_ts + 755, + 37: __ccgo_ts + 782, + 38: __ccgo_ts + 802, + 39: __ccgo_ts + 824, + 40: __ccgo_ts + 846, + 41: __ccgo_ts + 876, + 42: __ccgo_ts + 901, + 43: __ccgo_ts + 927, + 44: __ccgo_ts + 947, + 45: __ccgo_ts + 973, + 46: __ccgo_ts + 996, + 47: __ccgo_ts + 1022, + 48: __ccgo_ts + 1044, + 49: __ccgo_ts + 1065, + 50: __ccgo_ts + 1080, + 51: __ccgo_ts + 1088, + 52: __ccgo_ts + 1102, + 53: __ccgo_ts + 1115, } func _sqlite3CompileOptions(tls *libc.TLS, pnOpt uintptr) (r uintptr) { @@ -12737,12 +9507,12 @@ var _sqlite3StdTypeAffinity = [6]uint8{ } var _sqlite3StdType = [6]uintptr{ - 0: __ccgo_ts + 1137, - 1: __ccgo_ts + 1141, - 2: __ccgo_ts + 1146, - 3: __ccgo_ts + 1150, - 4: __ccgo_ts + 1158, - 5: __ccgo_ts + 1163, + 0: __ccgo_ts + 1128, + 1: __ccgo_ts + 1132, + 2: __ccgo_ts + 1137, + 3: __ccgo_ts + 1141, + 4: __ccgo_ts + 1149, + 5: __ccgo_ts + 1154, } /************** End of global.c **********************************************/ @@ -12923,72 +9693,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -13034,152 +9738,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13210,18 +9768,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13238,101 +9784,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]uint8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13354,13 +9805,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13380,14 +9824,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13466,7 +9903,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13696,7 +10133,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13831,24 +10268,6 @@ type TDateTime = struct { 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 - FvalidYMD uint8 - FvalidHMS uint8 - FnFloor uint8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -13979,7 +10398,7 @@ func _parseTimezone(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } } zDate++ - if _getDigits(tls, zDate, __ccgo_ts+1168, libc.VaList(bp+16, bp, bp+4)) != int32(2) { + if _getDigits(tls, zDate, __ccgo_ts+1159, libc.VaList(bp+16, bp, bp+4)) != int32(2) { return int32(1) } zDate += uintptr(5) @@ -14011,13 +10430,13 @@ func _parseHhMmSs(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { var _ /* s at bp+8 */ int32 _, _ = ms, rScale ms = float64(0) - if _getDigits(tls, zDate, __ccgo_ts+1176, libc.VaList(bp+24, bp, bp+4)) != int32(2) { + if _getDigits(tls, zDate, __ccgo_ts+1167, libc.VaList(bp+24, bp, bp+4)) != int32(2) { return int32(1) } zDate += uintptr(5) if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zDate))) == int32(':') { zDate++ - if _getDigits(tls, zDate, __ccgo_ts+1184, libc.VaList(bp+24, bp+8)) != int32(1) { + if _getDigits(tls, zDate, __ccgo_ts+1175, libc.VaList(bp+24, bp+8)) != int32(1) { return int32(1) } zDate += uintptr(2) @@ -14167,7 +10586,7 @@ func _parseYyyyMmDd(tls *libc.TLS, zDate uintptr, p uintptr) (r int32) { } else { neg = 0 } - if _getDigits(tls, zDate, __ccgo_ts+1188, libc.VaList(bp+24, bp, bp+4, bp+8)) != int32(3) { + if _getDigits(tls, zDate, __ccgo_ts+1179, libc.VaList(bp+24, bp, bp+4, bp+8)) != int32(3) { return int32(1) } zDate += uintptr(10) @@ -14268,14 +10687,14 @@ func _parseDateOrTime(tls *libc.TLS, context uintptr, zDate uintptr, p uintptr) if _parseHhMmSs(tls, zDate, p) == 0 { return 0 } else { - if _sqlite3StrICmp(tls, zDate, __ccgo_ts+1200) == 0 && _sqlite3NotPureFunc(tls, context) != 0 { + if _sqlite3StrICmp(tls, zDate, __ccgo_ts+1191) == 0 && _sqlite3NotPureFunc(tls, context) != 0 { return _setDateTimeToCurrent(tls, context, p) } else { if _sqlite3AtoF(tls, zDate, bp, _sqlite3Strlen30(tls, zDate), uint8(SQLITE_UTF8)) > 0 { _setRawDateNumber(tls, p, *(*float64)(unsafe.Pointer(bp))) return 0 } else { - if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1204) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1211) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { + if (_sqlite3StrICmp(tls, zDate, __ccgo_ts+1195) == 0 || _sqlite3StrICmp(tls, zDate, __ccgo_ts+1202) == 0) && _sqlite3NotPureFunc(tls, context) != 0 { libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) return _setDateTimeToCurrent(tls, context, p) } @@ -14479,7 +10898,7 @@ func _toLocaltime(tls *libc.TLS, p uintptr, pCtx uintptr) (r int32) { *(*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+1221, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+1212, -int32(1)) return int32(SQLITE_ERROR) } (*TDateTime)(unsafe.Pointer(p)).FY = (*(*Ttm)(unsafe.Pointer(bp + 8))).Ftm_year + int32(1900) - iYearDiff @@ -14634,7 +11053,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** If rawS is available, then interpret as a julian day number, or ** a unix timestamp, depending on its magnitude. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1244) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1235) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-33611-57934 */ @@ -14649,7 +11068,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** 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+1249) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1240) == 0 { _computeJD(tls, p) _clearYMD_HMS_TZ(tls, p) rc = 0 @@ -14662,7 +11081,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, ** Resolve day-of-month overflow by rolling back to the end of the ** previous month. */ - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1257) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1248) == 0 { _computeJD(tls, p) *(*Tsqlite3_int64)(unsafe.Pointer(p)) -= int64(libc.Int32FromUint8((*TDateTime)(unsafe.Pointer(p)).FnFloor) * int32(86400000)) _clearYMD_HMS_TZ(tls, p) @@ -14677,7 +11096,7 @@ 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+1263) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1254) == 0 { if idx > int32(1) { return int32(1) } /* IMP: R-31176-64601 */ @@ -14692,7 +11111,7 @@ 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+1273) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1264) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { if int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x10>>4)) != 0 { v1 = SQLITE_OK } else { @@ -14709,7 +11128,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+1283) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1274) == 0 && int32(uint32(*(*uint8)(unsafe.Pointer(p + 44))&0x1>>0)) != 0 { if idx > int32(1) { return int32(1) } /* IMP: R-49255-55373 */ @@ -14722,7 +11141,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 } } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1293) == 0 && _sqlite3NotPureFunc(tls, pCtx) != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1284) == 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) @@ -14769,7 +11188,7 @@ 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 v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1297, 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 { + if v7 = Xsqlite3_strnicmp(tls, z, __ccgo_ts+1288, 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 } @@ -14799,8 +11218,8 @@ 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+1306, int32(9)) != 0 { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1204) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1211) == 0 { + if Xsqlite3_strnicmp(tls, z, __ccgo_ts+1297, int32(9)) != 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1195) == 0 || Xsqlite3_stricmp(tls, z, __ccgo_ts+1202) == 0 { libc.SetBitFieldPtr8Uint32(p+44, libc.Uint32FromInt32(1), 2, 0x4) rc = 0 } @@ -14819,16 +11238,16 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, 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+1316) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1307) == 0 { (*TDateTime)(unsafe.Pointer(p)).FD = int32(1) rc = 0 } else { - if Xsqlite3_stricmp(tls, z, __ccgo_ts+1322) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1313) == 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+1327) == 0 { + if Xsqlite3_stricmp(tls, z, __ccgo_ts+1318) == 0 { rc = 0 } } @@ -14870,10 +11289,10 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, break } if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z + uintptr(n)))) == int32('-') { - if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1331, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(5) && _getDigits(tls, z+1, __ccgo_ts+1322, libc.VaList(bp+136, bp+56)) == int32(1) { break } - if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1335, libc.VaList(bp+136, bp+56)) == int32(1) { + if n == int32(6) && _getDigits(tls, z+1, __ccgo_ts+1326, libc.VaList(bp+136, bp+56)) == int32(1) { break } } @@ -14894,11 +11313,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+1339, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1330, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } } else { - if _getDigits(tls, z+1, __ccgo_ts+1351, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { + if _getDigits(tls, z+1, __ccgo_ts+1342, libc.VaList(bp+136, bp+56, bp+60, bp+64)) != int32(3) { break } z++ @@ -14936,7 +11355,7 @@ func _parseModifier(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, p uintptr, rc = 0 break } - if libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 11))])&int32(0x01) != 0 && _getDigits(tls, z+12, __ccgo_ts+1176, libc.VaList(bp+136, bp+68, bp+72)) == int32(2) { + if libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + 11))])&int32(0x01) != 0 && _getDigits(tls, z+12, __ccgo_ts+1167, libc.VaList(bp+136, bp+68, bp+72)) == int32(2) { z2 = z + 12 n = int32(2) } else { @@ -15413,9 +11832,9 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { fallthrough case int32('e'): if libc.Int32FromUint8(cf) == int32('d') { - v3 = __ccgo_ts + 1363 + v3 = __ccgo_ts + 1354 } else { - v3 = __ccgo_ts + 1368 + v3 = __ccgo_ts + 1359 } Xsqlite3_str_appendf(tls, bp+48, v3, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) case int32('f'): /* Fractional seconds. (Non-standard) */ @@ -15423,9 +11842,9 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { if s > float64(59.999) { s = float64(59.999) } - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1372, libc.VaList(bp+184, s)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1363, libc.VaList(bp+184, s)) case int32('F'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1379, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY, (*(*TDateTime)(unsafe.Pointer(bp))).FM, (*(*TDateTime)(unsafe.Pointer(bp))).FD)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1370, 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'): @@ -15435,17 +11854,17 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { (*(*TDateTime)(unsafe.Pointer(bp + 80))).FvalidYMD = uint8(0) _computeYMD(tls, bp+80) if libc.Int32FromUint8(cf) == int32('g') { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1363, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1354, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY%int32(100))) } else { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1394, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1385, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp + 80))).FY)) } case int32('H'): fallthrough case int32('k'): if libc.Int32FromUint8(cf) == int32('H') { - v4 = __ccgo_ts + 1363 + v4 = __ccgo_ts + 1354 } else { - v4 = __ccgo_ts + 1368 + v4 = __ccgo_ts + 1359 } Xsqlite3_str_appendf(tls, bp+48, v4, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh)) case int32('I'): /* Fall thru */ @@ -15459,50 +11878,50 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { h = int32(12) } if libc.Int32FromUint8(cf) == int32('I') { - v5 = __ccgo_ts + 1363 + v5 = __ccgo_ts + 1354 } else { - v5 = __ccgo_ts + 1368 + v5 = __ccgo_ts + 1359 } 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+1399, libc.VaList(bp+184, _daysAfterJan01(tls, bp)+int32(1))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1390, 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+1404, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD)/float64(8.64e+07))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1395, 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+1363, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1354, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FM)) case int32('M'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1363, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1354, 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 libc.Int32FromUint8(cf) == int32('p') { - v6 = __ccgo_ts + 1410 + v6 = __ccgo_ts + 1401 } else { - v6 = __ccgo_ts + 1413 + v6 = __ccgo_ts + 1404 } Xsqlite3_str_append(tls, bp+48, v6, int32(2)) } else { if libc.Int32FromUint8(cf) == int32('p') { - v7 = __ccgo_ts + 1416 + v7 = __ccgo_ts + 1407 } else { - v7 = __ccgo_ts + 1419 + v7 = __ccgo_ts + 1410 } Xsqlite3_str_append(tls, bp+48, v7, int32(2)) } case int32('R'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1422, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1413, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm)) case int32('s'): if int32(uint32(*(*uint8)(unsafe.Pointer(bp + 44))&0x4>>2)) != 0 { - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1432, libc.VaList(bp+184, float64((*(*TDateTime)(unsafe.Pointer(bp))).FiJD-libc.Int64FromInt32(21086676)*libc.Int64FromInt32(10000000))/float64(1000))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1423, 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+1437, libc.VaList(bp+184, iS)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1428, libc.VaList(bp+184, iS)) } case int32('S'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1363, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1354, libc.VaList(bp+184, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) case int32('T'): - Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1442, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).Fh, (*(*TDateTime)(unsafe.Pointer(bp))).Fm, int32((*(*TDateTime)(unsafe.Pointer(bp))).Fs))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1433, 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'): /* Day of week. 0 to 6. Sunday==0, Monday==1 */ @@ -15512,18 +11931,18 @@ func _strftimeFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { } 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+1363, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterSunday(tls, bp)+int32(7))/int32(7))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1354, 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+1363, libc.VaList(bp+184, _daysAfterJan01(tls, bp+128)/int32(7)+int32(1))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1354, 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+1363, libc.VaList(bp+184, (_daysAfterJan01(tls, bp)-_daysAfterMonday(tls, bp)+int32(7))/int32(7))) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1354, 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+1394, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) + Xsqlite3_str_appendf(tls, bp+48, __ccgo_ts+1385, libc.VaList(bp+184, (*(*TDateTime)(unsafe.Pointer(bp))).FY)) case int32('%'): Xsqlite3_str_appendchar(tls, bp+48, int32(1), uint8('%')) default: @@ -15679,7 +12098,7 @@ func _timediffFunc(tls *libc.TLS, context uintptr, NotUsed1 int32, argv uintptr) _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+1457, libc.VaList(bp+136, libc.Int32FromUint8(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+1448, libc.VaList(bp+136, libc.Int32FromUint8(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) } @@ -15712,55 +12131,55 @@ var _aDateTimeFuncs = [10]TFuncDef{ FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 1263, + FzName: __ccgo_ts + 1254, }, 1: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 1283, + FzName: __ccgo_ts + 1274, }, 2: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 1482, }, 3: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 1496, + FzName: __ccgo_ts + 1487, }, 4: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 1492, }, 5: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 1510, + FzName: __ccgo_ts + 1501, }, 6: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 1519, + FzName: __ccgo_ts + 1510, }, 7: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1528, + FzName: __ccgo_ts + 1519, }, 8: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1541, + FzName: __ccgo_ts + 1532, }, 9: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1559, + FzName: __ccgo_ts + 1550, }, } @@ -15842,28 +12261,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15871,19 +12290,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15900,12 +12319,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15913,7 +12332,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15926,34 +12345,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16266,14 +12685,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16288,9 +12700,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -16431,7 +12843,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+1572, libc.VaList(bp+8, nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1563, libc.VaList(bp+8, nByte)) } return p } @@ -16493,7 +12905,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+1610, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) + Xsqlite3_log(tls, int32(SQLITE_NOMEM), __ccgo_ts+1601, libc.VaList(bp+8, _sqlite3MemSize(tls, pPrior), nByte)) } return p } @@ -17037,27 +13449,6 @@ type t__ptcb = struct { F__next uintptr } -type Tcpu_set_t1 = struct { - F__bits [16]uint64 -} - -type cpu_set_t1 = Tcpu_set_t1 - -/* -** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two conditions: (1) Debug builds and (2) using -** home-grown mutexes. Encapsulate these conditions into a single #define. - */ - -/* -** Each recursive mutex is an instance of the following structure. - */ -type Tsqlite3_mutex1 = struct { - Fmutex Tpthread_mutex_t -} - -type sqlite3_mutex1 = Tsqlite3_mutex1 - /* ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are ** intended for use only inside assert() statements. On some platforms, @@ -17341,6 +13732,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -17348,8 +13741,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -18168,7 +14561,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+1646, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1637, 0) (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).Frc = int32(SQLITE_NOMEM) pParse = (*TParse)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpParse)).FpOuterParse for { @@ -18591,7 +14984,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li v3 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(v4))) c = v3 if v3 == 0 { - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1660, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1651, int32(1)) break } /* Find out what flags are present */ @@ -19006,9 +15399,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial != 0 { if libc.Int32FromUint8((*(*TFpDecode)(unsafe.Pointer(bp + 72))).FisSpecial) == int32(2) { if flag_zeropad != 0 { - v57 = __ccgo_ts + 1662 + v57 = __ccgo_ts + 1653 } else { - v57 = __ccgo_ts + 1667 + v57 = __ccgo_ts + 1658 } bufpt = v57 length = _sqlite3Strlen30(tls, bufpt) @@ -19019,7 +15412,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+1671, uint64(5)) + libc.Xmemcpy(tls, bp, __ccgo_ts+1662, uint64(5)) bufpt = bp if libc.Int32FromUint8((*(*TFpDecode)(unsafe.Pointer(bp + 72))).Fsign) == int32('-') { /* no-op */ @@ -19330,7 +15723,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 + 1676 + bufpt = __ccgo_ts + 1667 } else { if libc.Int32FromUint8(xtype) == int32(etDYNSTRING) { if (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FnChar == uint32(0) && (*Tsqlite3_str)(unsafe.Pointer(pAccum)).FmxAlloc != 0 && width == 0 && precision < 0 && libc.Int32FromUint8((*Tsqlite3_str)(unsafe.Pointer(pAccum)).FaccError) == 0 { @@ -19412,9 +15805,9 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li } if escarg == uintptr(0) { if libc.Int32FromUint8(xtype) == int32(etESCAPE_Q) { - v97 = __ccgo_ts + 1677 + v97 = __ccgo_ts + 1668 } else { - v97 = __ccgo_ts + 1682 + v97 = __ccgo_ts + 1673 } escarg = v97 } else { @@ -19507,7 +15900,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li j1 = 0 if needQuote != 0 { if needQuote == int32(2) { - libc.Xmemcpy(tls, bufpt+uintptr(j1), __ccgo_ts+1689, uint64(8)) + libc.Xmemcpy(tls, bufpt+uintptr(j1), __ccgo_ts+1680, uint64(8)) j1 += int64(8) } else { v104 = j1 @@ -19558,7 +15951,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li *(*uint8)(unsafe.Pointer(bufpt + uintptr(v113))) = libc.Uint8FromInt32(v114) v115 = j1 j1++ - *(*uint8)(unsafe.Pointer(bufpt + uintptr(v115))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 1698 + uintptr(libc.Int32FromUint8(ch1)&int32(0xf)))) + *(*uint8)(unsafe.Pointer(bufpt + uintptr(v115))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 1689 + uintptr(libc.Int32FromUint8(ch1)&int32(0xf)))) } } } @@ -19638,7 +16031,7 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if (*TSrcItem)(unsafe.Pointer(pItem)).FzName != 0 { if int32(*(*uint32)(unsafe.Pointer(pItem + 24 + 4))&0x10000>>16) == 0 && int32(*(*uint32)(unsafe.Pointer(pItem + 24 + 4))&0x4>>2) == 0 && *(*uintptr)(unsafe.Pointer(pItem + 72)) != uintptr(0) { Xsqlite3_str_appendall(tls, pAccum, *(*uintptr)(unsafe.Pointer(pItem + 72))) - Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1715, int32(1)) + Xsqlite3_str_append(tls, pAccum, __ccgo_ts+1706, int32(1)) } Xsqlite3_str_appendall(tls, pAccum, (*TSrcItem)(unsafe.Pointer(pItem)).FzName) } else { @@ -19648,12 +16041,12 @@ func Xsqlite3_str_vappendf(tls *libc.TLS, pAccum uintptr, fmt uintptr, ap Tva_li if int32(*(*uint32)(unsafe.Pointer(pItem + 24 + 4))&0x4>>2) != 0 { /* Because of tag-20240424-1 */ pSel = (*TSubquery)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pItem + 72)))).FpSelect if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_NestedFrom) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1717, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1708, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } else { if (*TSelect)(unsafe.Pointer(pSel)).FselFlags&uint32(SF_MultiValue) != 0 { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1727, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1718, libc.VaList(bp+128, *(*Tu32)(unsafe.Pointer(&(*TSrcItem)(unsafe.Pointer(pItem)).Fu1)))) } else { - Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1748, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) + Xsqlite3_str_appendf(tls, pAccum, __ccgo_ts+1739, libc.VaList(bp+128, (*TSelect)(unsafe.Pointer(pSel)).FselId)) } } } @@ -19937,7 +16330,7 @@ func _sqlite3ResultStrAccum(tls *libc.TLS, pCtx uintptr, p uintptr) { if libc.Int32FromUint8((*TStrAccum)(unsafe.Pointer(p)).FprintfFlags)&int32(SQLITE_PRINTF_MALLOCED) != 0 { Xsqlite3_result_text(tls, pCtx, (*TStrAccum)(unsafe.Pointer(p)).FzText, libc.Int32FromUint32((*TStrAccum)(unsafe.Pointer(p)).FnChar), __ccgo_fp(_sqlite3OomClear)) } else { - Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1676, 0, libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1667, 0, libc.UintptrFromInt32(0)) Xsqlite3_str_reset(tls, p) } } @@ -20657,56 +17050,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ - -/* #include */ - -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid Tpthread_t - Fdone int32 - FpOut uintptr - FxTask uintptr - FpIn uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -20717,7 +17064,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } libc.Xmemset(tls, p, 0, uint64(40)) - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a ** function that returns SQLITE_ERROR when passed the argument 200, that @@ -20726,11 +17073,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if _sqlite3FaultSim(tls, int32(200)) != 0 { rc = int32(1) } else { - rc = libc.Xpthread_create(tls, p, uintptr(0), xTask, pIn) + rc = libc.Xpthread_create(tls, p, uintptr(0), __ccgo_fp_xTask, pIn) } if rc != 0 { (*TSQLiteThread)(unsafe.Pointer(p)).Fdone = int32(1) - (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -21831,7 +18178,7 @@ func _sqlite3DequoteNumber(tls *libc.TLS, pParse uintptr, p uintptr) { } } else { if bHex == 0 && (!(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x04) != 0) || !(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x04) != 0)) || bHex == int32(1) && (!(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + uintptr(-libc.Int32FromInt32(1))))])&libc.Int32FromInt32(0x08) != 0) || !(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(pIn + 1))])&libc.Int32FromInt32(0x08) != 0)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1762, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1753, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(p + 8)))) } } goto _2 @@ -22373,7 +18720,7 @@ func _compare2pow63(tls *libc.TLS, zNum uintptr, incr int32) (r int32) { _, _, _ = c, i, pow63 c = 0 /* 012345678901234567 */ - pow63 = __ccgo_ts + 1787 + pow63 = __ccgo_ts + 1778 i = 0 for { if !(c == 0 && i < int32(18)) { @@ -22600,7 +18947,7 @@ func _sqlite3DecOrHexToI64(tls *libc.TLS, z uintptr, pOut uintptr) (r int32) { } return 0 } else { - n = libc.Int32FromUint64(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1806)) + n = libc.Int32FromUint64(libc.Uint64FromInt32(0x3fffffff) & libc.Xstrspn(tls, z, __ccgo_ts+1797)) if *(*uint8)(unsafe.Pointer(z + uintptr(n))) != 0 { n++ } @@ -22760,7 +19107,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 + 1822 + (*TFpDecode)(unsafe.Pointer(p)).Fz = __ccgo_ts + 1813 return } else { (*TFpDecode)(unsafe.Pointer(p)).Fsign = uint8('+') @@ -23285,7 +19632,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+1824, libc.VaList(bp+8, zType)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+1815, libc.VaList(bp+8, zType)) } // C documentation @@ -23308,13 +19655,13 @@ func _sqlite3SafetyCheckOk(tls *libc.TLS, db uintptr) (r int32) { var eOpenState Tu8 _ = eOpenState if db == uintptr(0) { - _logBadConnection(tls, __ccgo_ts+1677) + _logBadConnection(tls, __ccgo_ts+1668) return 0 } eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if libc.Int32FromUint8(eOpenState) != int32(SQLITE_STATE_OPEN) { if _sqlite3SafetyCheckSickOrOk(tls, db) != 0 { - _logBadConnection(tls, __ccgo_ts+1869) + _logBadConnection(tls, __ccgo_ts+1860) } return 0 } else { @@ -23328,7 +19675,7 @@ func _sqlite3SafetyCheckSickOrOk(tls *libc.TLS, db uintptr) (r int32) { _ = eOpenState eOpenState = (*Tsqlite3)(unsafe.Pointer(db)).FeOpenState if libc.Int32FromUint8(eOpenState) != int32(SQLITE_STATE_SICK) && libc.Int32FromUint8(eOpenState) != int32(SQLITE_STATE_OPEN) && libc.Int32FromUint8(eOpenState) != int32(SQLITE_STATE_BUSY) { - _logBadConnection(tls, __ccgo_ts+1878) + _logBadConnection(tls, __ccgo_ts+1869) return 0 } else { return int32(1) @@ -23965,196 +20312,196 @@ func _sqlite3OpcodeName(tls *libc.TLS, i int32) (r uintptr) { } var _azName = [190]uintptr{ - 0: __ccgo_ts + 1886, - 1: __ccgo_ts + 1896, - 2: __ccgo_ts + 1907, - 3: __ccgo_ts + 1919, - 4: __ccgo_ts + 1930, - 5: __ccgo_ts + 1942, - 6: __ccgo_ts + 1949, - 7: __ccgo_ts + 1957, - 8: __ccgo_ts + 1965, - 9: __ccgo_ts + 1970, - 10: __ccgo_ts + 1975, - 11: __ccgo_ts + 1981, - 12: __ccgo_ts + 1995, - 13: __ccgo_ts + 2001, - 14: __ccgo_ts + 2011, - 15: __ccgo_ts + 2016, - 16: __ccgo_ts + 2021, - 17: __ccgo_ts + 2024, - 18: __ccgo_ts + 2030, - 19: __ccgo_ts + 2037, - 20: __ccgo_ts + 2041, - 21: __ccgo_ts + 2051, - 22: __ccgo_ts + 2058, - 23: __ccgo_ts + 2065, - 24: __ccgo_ts + 2072, - 25: __ccgo_ts + 2079, - 26: __ccgo_ts + 2089, - 27: __ccgo_ts + 2098, - 28: __ccgo_ts + 2109, - 29: __ccgo_ts + 2118, - 30: __ccgo_ts + 2124, - 31: __ccgo_ts + 2134, - 32: __ccgo_ts + 2144, - 33: __ccgo_ts + 2149, - 34: __ccgo_ts + 2163, - 35: __ccgo_ts + 2174, - 36: __ccgo_ts + 2179, - 37: __ccgo_ts + 2186, - 38: __ccgo_ts + 2197, - 39: __ccgo_ts + 2202, - 40: __ccgo_ts + 2207, - 41: __ccgo_ts + 2213, - 42: __ccgo_ts + 2219, - 43: __ccgo_ts + 2225, - 44: __ccgo_ts + 2228, - 45: __ccgo_ts + 2232, - 46: __ccgo_ts + 2238, - 47: __ccgo_ts + 2249, - 48: __ccgo_ts + 2260, - 49: __ccgo_ts + 2268, - 50: __ccgo_ts + 2277, - 51: __ccgo_ts + 2283, - 52: __ccgo_ts + 2290, - 53: __ccgo_ts + 2298, - 54: __ccgo_ts + 2301, - 55: __ccgo_ts + 2304, - 56: __ccgo_ts + 2307, - 57: __ccgo_ts + 2310, - 58: __ccgo_ts + 2313, - 59: __ccgo_ts + 2316, - 60: __ccgo_ts + 2323, - 61: __ccgo_ts + 2333, - 62: __ccgo_ts + 2346, - 63: __ccgo_ts + 2357, - 64: __ccgo_ts + 2363, - 65: __ccgo_ts + 2370, - 66: __ccgo_ts + 2379, - 67: __ccgo_ts + 2388, - 68: __ccgo_ts + 2395, - 69: __ccgo_ts + 2408, - 70: __ccgo_ts + 2419, - 71: __ccgo_ts + 2424, - 72: __ccgo_ts + 2432, - 73: __ccgo_ts + 2438, - 74: __ccgo_ts + 2445, - 75: __ccgo_ts + 2457, - 76: __ccgo_ts + 2462, - 77: __ccgo_ts + 2471, - 78: __ccgo_ts + 2476, - 79: __ccgo_ts + 2485, - 80: __ccgo_ts + 2490, - 81: __ccgo_ts + 2495, - 82: __ccgo_ts + 2501, - 83: __ccgo_ts + 2509, - 84: __ccgo_ts + 2517, - 85: __ccgo_ts + 2527, - 86: __ccgo_ts + 2535, - 87: __ccgo_ts + 2542, - 88: __ccgo_ts + 2555, - 89: __ccgo_ts + 2560, - 90: __ccgo_ts + 2572, - 91: __ccgo_ts + 2580, - 92: __ccgo_ts + 2587, - 93: __ccgo_ts + 2598, - 94: __ccgo_ts + 2605, - 95: __ccgo_ts + 2612, - 96: __ccgo_ts + 2622, - 97: __ccgo_ts + 2631, - 98: __ccgo_ts + 2642, - 99: __ccgo_ts + 2648, - 100: __ccgo_ts + 2659, - 101: __ccgo_ts + 2669, - 102: __ccgo_ts + 2679, - 103: __ccgo_ts + 2688, - 104: __ccgo_ts + 2695, - 105: __ccgo_ts + 2701, - 106: __ccgo_ts + 2711, - 107: __ccgo_ts + 2722, - 108: __ccgo_ts + 2726, - 109: __ccgo_ts + 2735, - 110: __ccgo_ts + 2744, - 111: __ccgo_ts + 2751, - 112: __ccgo_ts + 2761, - 113: __ccgo_ts + 2768, - 114: __ccgo_ts + 2778, - 115: __ccgo_ts + 2786, - 116: __ccgo_ts + 2793, - 117: __ccgo_ts + 2807, - 118: __ccgo_ts + 2821, - 119: __ccgo_ts + 2829, - 120: __ccgo_ts + 2840, - 121: __ccgo_ts + 2853, - 122: __ccgo_ts + 2864, - 123: __ccgo_ts + 2870, - 124: __ccgo_ts + 2882, - 125: __ccgo_ts + 2891, - 126: __ccgo_ts + 2899, - 127: __ccgo_ts + 2908, - 128: __ccgo_ts + 2917, - 129: __ccgo_ts + 2924, - 130: __ccgo_ts + 2932, - 131: __ccgo_ts + 2939, - 132: __ccgo_ts + 2950, - 133: __ccgo_ts + 2964, - 134: __ccgo_ts + 2975, - 135: __ccgo_ts + 2983, - 136: __ccgo_ts + 2989, - 137: __ccgo_ts + 2997, - 138: __ccgo_ts + 3005, - 139: __ccgo_ts + 3015, - 140: __ccgo_ts + 3028, - 141: __ccgo_ts + 3038, - 142: __ccgo_ts + 3051, - 143: __ccgo_ts + 3060, - 144: __ccgo_ts + 3071, - 145: __ccgo_ts + 3079, - 146: __ccgo_ts + 3085, - 147: __ccgo_ts + 3097, - 148: __ccgo_ts + 3109, - 149: __ccgo_ts + 3117, - 150: __ccgo_ts + 3129, - 151: __ccgo_ts + 3142, - 152: __ccgo_ts + 3152, - 153: __ccgo_ts + 3162, - 154: __ccgo_ts + 3174, - 155: __ccgo_ts + 3179, - 156: __ccgo_ts + 3191, - 157: __ccgo_ts + 3201, - 158: __ccgo_ts + 3207, - 159: __ccgo_ts + 3217, - 160: __ccgo_ts + 3224, - 161: __ccgo_ts + 3236, - 162: __ccgo_ts + 3247, - 163: __ccgo_ts + 3255, - 164: __ccgo_ts + 3264, - 165: __ccgo_ts + 3273, - 166: __ccgo_ts + 3282, - 167: __ccgo_ts + 3289, - 168: __ccgo_ts + 3300, - 169: __ccgo_ts + 3313, - 170: __ccgo_ts + 3323, - 171: __ccgo_ts + 3330, - 172: __ccgo_ts + 3338, - 173: __ccgo_ts + 3347, - 174: __ccgo_ts + 3353, - 175: __ccgo_ts + 3360, - 176: __ccgo_ts + 3368, - 177: __ccgo_ts + 3376, - 178: __ccgo_ts + 3384, - 179: __ccgo_ts + 3394, - 180: __ccgo_ts + 3403, - 181: __ccgo_ts + 3414, - 182: __ccgo_ts + 3425, - 183: __ccgo_ts + 3436, - 184: __ccgo_ts + 3446, - 185: __ccgo_ts + 3452, - 186: __ccgo_ts + 3463, - 187: __ccgo_ts + 3474, - 188: __ccgo_ts + 3479, - 189: __ccgo_ts + 3487, + 0: __ccgo_ts + 1877, + 1: __ccgo_ts + 1887, + 2: __ccgo_ts + 1898, + 3: __ccgo_ts + 1910, + 4: __ccgo_ts + 1921, + 5: __ccgo_ts + 1933, + 6: __ccgo_ts + 1940, + 7: __ccgo_ts + 1948, + 8: __ccgo_ts + 1956, + 9: __ccgo_ts + 1961, + 10: __ccgo_ts + 1966, + 11: __ccgo_ts + 1972, + 12: __ccgo_ts + 1986, + 13: __ccgo_ts + 1992, + 14: __ccgo_ts + 2002, + 15: __ccgo_ts + 2007, + 16: __ccgo_ts + 2012, + 17: __ccgo_ts + 2015, + 18: __ccgo_ts + 2021, + 19: __ccgo_ts + 2028, + 20: __ccgo_ts + 2032, + 21: __ccgo_ts + 2042, + 22: __ccgo_ts + 2049, + 23: __ccgo_ts + 2056, + 24: __ccgo_ts + 2063, + 25: __ccgo_ts + 2070, + 26: __ccgo_ts + 2080, + 27: __ccgo_ts + 2089, + 28: __ccgo_ts + 2100, + 29: __ccgo_ts + 2109, + 30: __ccgo_ts + 2115, + 31: __ccgo_ts + 2125, + 32: __ccgo_ts + 2135, + 33: __ccgo_ts + 2140, + 34: __ccgo_ts + 2154, + 35: __ccgo_ts + 2165, + 36: __ccgo_ts + 2170, + 37: __ccgo_ts + 2177, + 38: __ccgo_ts + 2188, + 39: __ccgo_ts + 2193, + 40: __ccgo_ts + 2198, + 41: __ccgo_ts + 2204, + 42: __ccgo_ts + 2210, + 43: __ccgo_ts + 2216, + 44: __ccgo_ts + 2219, + 45: __ccgo_ts + 2223, + 46: __ccgo_ts + 2229, + 47: __ccgo_ts + 2240, + 48: __ccgo_ts + 2251, + 49: __ccgo_ts + 2259, + 50: __ccgo_ts + 2268, + 51: __ccgo_ts + 2274, + 52: __ccgo_ts + 2281, + 53: __ccgo_ts + 2289, + 54: __ccgo_ts + 2292, + 55: __ccgo_ts + 2295, + 56: __ccgo_ts + 2298, + 57: __ccgo_ts + 2301, + 58: __ccgo_ts + 2304, + 59: __ccgo_ts + 2307, + 60: __ccgo_ts + 2314, + 61: __ccgo_ts + 2324, + 62: __ccgo_ts + 2337, + 63: __ccgo_ts + 2348, + 64: __ccgo_ts + 2354, + 65: __ccgo_ts + 2361, + 66: __ccgo_ts + 2370, + 67: __ccgo_ts + 2379, + 68: __ccgo_ts + 2386, + 69: __ccgo_ts + 2399, + 70: __ccgo_ts + 2410, + 71: __ccgo_ts + 2415, + 72: __ccgo_ts + 2423, + 73: __ccgo_ts + 2429, + 74: __ccgo_ts + 2436, + 75: __ccgo_ts + 2448, + 76: __ccgo_ts + 2453, + 77: __ccgo_ts + 2462, + 78: __ccgo_ts + 2467, + 79: __ccgo_ts + 2476, + 80: __ccgo_ts + 2481, + 81: __ccgo_ts + 2486, + 82: __ccgo_ts + 2492, + 83: __ccgo_ts + 2500, + 84: __ccgo_ts + 2508, + 85: __ccgo_ts + 2518, + 86: __ccgo_ts + 2526, + 87: __ccgo_ts + 2533, + 88: __ccgo_ts + 2546, + 89: __ccgo_ts + 2551, + 90: __ccgo_ts + 2563, + 91: __ccgo_ts + 2571, + 92: __ccgo_ts + 2578, + 93: __ccgo_ts + 2589, + 94: __ccgo_ts + 2596, + 95: __ccgo_ts + 2603, + 96: __ccgo_ts + 2613, + 97: __ccgo_ts + 2622, + 98: __ccgo_ts + 2633, + 99: __ccgo_ts + 2639, + 100: __ccgo_ts + 2650, + 101: __ccgo_ts + 2660, + 102: __ccgo_ts + 2670, + 103: __ccgo_ts + 2679, + 104: __ccgo_ts + 2686, + 105: __ccgo_ts + 2692, + 106: __ccgo_ts + 2702, + 107: __ccgo_ts + 2713, + 108: __ccgo_ts + 2717, + 109: __ccgo_ts + 2726, + 110: __ccgo_ts + 2735, + 111: __ccgo_ts + 2742, + 112: __ccgo_ts + 2752, + 113: __ccgo_ts + 2759, + 114: __ccgo_ts + 2769, + 115: __ccgo_ts + 2777, + 116: __ccgo_ts + 2784, + 117: __ccgo_ts + 2798, + 118: __ccgo_ts + 2812, + 119: __ccgo_ts + 2820, + 120: __ccgo_ts + 2831, + 121: __ccgo_ts + 2844, + 122: __ccgo_ts + 2855, + 123: __ccgo_ts + 2861, + 124: __ccgo_ts + 2873, + 125: __ccgo_ts + 2882, + 126: __ccgo_ts + 2890, + 127: __ccgo_ts + 2899, + 128: __ccgo_ts + 2908, + 129: __ccgo_ts + 2915, + 130: __ccgo_ts + 2923, + 131: __ccgo_ts + 2930, + 132: __ccgo_ts + 2941, + 133: __ccgo_ts + 2955, + 134: __ccgo_ts + 2966, + 135: __ccgo_ts + 2974, + 136: __ccgo_ts + 2980, + 137: __ccgo_ts + 2988, + 138: __ccgo_ts + 2996, + 139: __ccgo_ts + 3006, + 140: __ccgo_ts + 3019, + 141: __ccgo_ts + 3029, + 142: __ccgo_ts + 3042, + 143: __ccgo_ts + 3051, + 144: __ccgo_ts + 3062, + 145: __ccgo_ts + 3070, + 146: __ccgo_ts + 3076, + 147: __ccgo_ts + 3088, + 148: __ccgo_ts + 3100, + 149: __ccgo_ts + 3108, + 150: __ccgo_ts + 3120, + 151: __ccgo_ts + 3133, + 152: __ccgo_ts + 3143, + 153: __ccgo_ts + 3153, + 154: __ccgo_ts + 3165, + 155: __ccgo_ts + 3170, + 156: __ccgo_ts + 3182, + 157: __ccgo_ts + 3192, + 158: __ccgo_ts + 3198, + 159: __ccgo_ts + 3208, + 160: __ccgo_ts + 3215, + 161: __ccgo_ts + 3227, + 162: __ccgo_ts + 3238, + 163: __ccgo_ts + 3246, + 164: __ccgo_ts + 3255, + 165: __ccgo_ts + 3264, + 166: __ccgo_ts + 3273, + 167: __ccgo_ts + 3280, + 168: __ccgo_ts + 3291, + 169: __ccgo_ts + 3304, + 170: __ccgo_ts + 3314, + 171: __ccgo_ts + 3321, + 172: __ccgo_ts + 3329, + 173: __ccgo_ts + 3338, + 174: __ccgo_ts + 3344, + 175: __ccgo_ts + 3351, + 176: __ccgo_ts + 3359, + 177: __ccgo_ts + 3367, + 178: __ccgo_ts + 3375, + 179: __ccgo_ts + 3385, + 180: __ccgo_ts + 3394, + 181: __ccgo_ts + 3405, + 182: __ccgo_ts + 3416, + 183: __ccgo_ts + 3427, + 184: __ccgo_ts + 3437, + 185: __ccgo_ts + 3443, + 186: __ccgo_ts + 3454, + 187: __ccgo_ts + 3465, + 188: __ccgo_ts + 3470, + 189: __ccgo_ts + 3478, } type Tregister_t = int64 @@ -24538,22 +20885,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24584,30 +20915,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24689,91 +20996,91 @@ type unix_syscall = Tunix_syscall // */ var _aSyscall = [29]Tunix_syscall{ 0: { - FzName: __ccgo_ts + 3497, + FzName: __ccgo_ts + 3488, }, 1: { - FzName: __ccgo_ts + 3502, + FzName: __ccgo_ts + 3493, }, 2: { - FzName: __ccgo_ts + 3508, + FzName: __ccgo_ts + 3499, }, 3: { - FzName: __ccgo_ts + 3515, + FzName: __ccgo_ts + 3506, }, 4: { - FzName: __ccgo_ts + 3522, + FzName: __ccgo_ts + 3513, }, 5: { - FzName: __ccgo_ts + 3527, + FzName: __ccgo_ts + 3518, }, 6: { - FzName: __ccgo_ts + 3533, + FzName: __ccgo_ts + 3524, }, 7: { - FzName: __ccgo_ts + 3543, + FzName: __ccgo_ts + 3534, }, 8: { - FzName: __ccgo_ts + 3549, + FzName: __ccgo_ts + 3540, }, 9: { - FzName: __ccgo_ts + 3554, + FzName: __ccgo_ts + 3545, }, 10: { - FzName: __ccgo_ts + 3560, + FzName: __ccgo_ts + 3551, }, 11: { - FzName: __ccgo_ts + 3568, + FzName: __ccgo_ts + 3559, }, 12: { - FzName: __ccgo_ts + 3574, + FzName: __ccgo_ts + 3565, }, 13: { - FzName: __ccgo_ts + 3581, + FzName: __ccgo_ts + 3572, }, 14: { - FzName: __ccgo_ts + 3590, + FzName: __ccgo_ts + 3581, }, 15: { - FzName: __ccgo_ts + 3597, + FzName: __ccgo_ts + 3588, }, 16: { - FzName: __ccgo_ts + 3607, + FzName: __ccgo_ts + 3598, }, 17: { - FzName: __ccgo_ts + 3614, + FzName: __ccgo_ts + 3605, }, 18: { - FzName: __ccgo_ts + 3628, + FzName: __ccgo_ts + 3619, }, 19: { - FzName: __ccgo_ts + 3634, + FzName: __ccgo_ts + 3625, }, 20: { - FzName: __ccgo_ts + 3640, + FzName: __ccgo_ts + 3631, }, 21: { - FzName: __ccgo_ts + 3647, + FzName: __ccgo_ts + 3638, }, 22: { - FzName: __ccgo_ts + 3655, + FzName: __ccgo_ts + 3646, }, 23: { - FzName: __ccgo_ts + 3660, + FzName: __ccgo_ts + 3651, }, 24: { - FzName: __ccgo_ts + 3667, + FzName: __ccgo_ts + 3658, }, 25: { - FzName: __ccgo_ts + 3674, + FzName: __ccgo_ts + 3665, }, 26: { - FzName: __ccgo_ts + 3686, + FzName: __ccgo_ts + 3677, }, 27: { - FzName: __ccgo_ts + 3695, + FzName: __ccgo_ts + 3686, }, 28: { - FzName: __ccgo_ts + 3701, + FzName: __ccgo_ts + 3692, }, } @@ -24834,7 +21141,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24872,10 +21179,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -25012,9 +21319,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+3707, libc.VaList(bp+152, z, fd)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3698, 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+3750, O_RDONLY, libc.Int32FromUint32(m)) < 0 { + if (*(*func(*libc.TLS, uintptr, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[0].FpCurrent})))(tls, __ccgo_ts+3741, O_RDONLY, libc.Int32FromUint32(m)) < 0 { break } } @@ -25250,47 +21557,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25330,11 +21596,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 + 1676 + zErr = __ccgo_ts + 1667 if zPath == uintptr(0) { - zPath = __ccgo_ts + 1676 + zPath = __ccgo_ts + 1667 } - Xsqlite3_log(tls, errcode, __ccgo_ts+3760, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) + Xsqlite3_log(tls, errcode, __ccgo_ts+3751, libc.VaList(bp+8, iLine, iErrno, zFunc, zPath, zErr)) return errcode } @@ -25362,7 +21628,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+3844, 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 } if _fileHasMoved(tls, pFile) != 0 { - Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3871, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+3862, libc.VaList(bp+152, (*TunixFile)(unsafe.Pointer(pFile)).FzPath)) return } } @@ -26021,7 +22287,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26626,7 +22892,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+3899, libc.VaList(bp+528, zFilename)) + Xsqlite3_snprintf(tls, int32(MAX_PATHNAME), bp, __ccgo_ts+3890, libc.VaList(bp+528, zFilename)) ii = libc.Int32FromUint64(libc.Xstrlen(tls, bp)) for { if !(ii > 0 && libc.Int32FromUint8((*(*[513]uint8)(unsafe.Pointer(bp)))[ii]) != int32('/')) { @@ -26652,7 +22918,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3614, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3605, bp, int32(42579)) } // C documentation @@ -26689,7 +22955,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+1676, int32(1)) + nWrite = _seekAndWrite(tls, pFile, iWrite, __ccgo_ts+1667, int32(1)) if nWrite != int32(1) { return libc.Int32FromInt32(SQLITE_IOERR) | libc.Int32FromInt32(3)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -27237,7 +23414,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27300,7 +23477,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27531,9 +23708,9 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte break } *(*int32)(unsafe.Pointer(bp + 144)) = 0 - if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1676, int32(1), bp+144) != int32(1) { + if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1667, int32(1), bp+144) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28300,10 +24477,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 + 3956, - 3: __ccgo_ts + 3965, - 4: __ccgo_ts + 3974, - 5: __ccgo_ts + 1715, + 2: __ccgo_ts + 3947, + 3: __ccgo_ts + 3956, + 4: __ccgo_ts + 3965, + 5: __ccgo_ts + 1706, } // C documentation @@ -28312,8 +24489,8 @@ var _azTempDirs = [6]uintptr{ // ** Initialize first two members of azTempDirs[] array. // */ func _unixTempFileInit(tls *libc.TLS) { - _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3979) - _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3993) + _azTempDirs[0] = libc.Xgetenv(tls, __ccgo_ts+3970) + _azTempDirs[int32(1)] = libc.Xgetenv(tls, __ccgo_ts+3984) } // C documentation @@ -28375,7 +24552,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+4000, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) + Xsqlite3_snprintf(tls, nBuf, zBuf, __ccgo_ts+3991, libc.VaList(bp+16, zDir, *(*Tu64)(unsafe.Pointer(bp)), 0)) if v2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zBuf + uintptr(nBuf-int32(2))))) != 0; !v2 { v1 = iLimit iLimit++ @@ -28547,7 +24724,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+4017) + z = Xsqlite3_uri_parameter(tls, zPath, __ccgo_ts+4008) if z != 0 { rc = _getFileMode(tls, z, pMode, pUid, pGid) } @@ -28702,7 +24879,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3497, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3488, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28779,7 +24956,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3686, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3677, zIn, int32(45510)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 144)))[got] = uint8(0) @@ -28977,14 +25144,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if libc.Int32FromUint8(*(*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(45566)), __ccgo_ts+3515, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3506, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -31056,66 +27063,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31289,14 +27236,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -32112,123 +28059,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33425,25 +29255,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34405,258 +30216,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]uint8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34755,7 +30314,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -36684,7 +32243,7 @@ end_playback: rc = _pager_delsuper(tls, pPager, zSuper) } if isHot != 0 && nPlayback != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(2)<= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37431,10 +32990,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38335,7 +33894,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38410,7 +33969,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38496,7 +34055,7 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzJournal = pPtr libc.Xmemcpy(tls, pPtr, zPathname, libc.Uint64FromInt32(nPathname)) pPtr += uintptr(nPathname) - libc.Xmemcpy(tls, pPtr, __ccgo_ts+4182, uint64(8)) + libc.Xmemcpy(tls, pPtr, __ccgo_ts+4173, uint64(8)) pPtr += uintptr(libc.Int32FromInt32(8) + libc.Int32FromInt32(1)) } else { (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzJournal = uintptr(0) @@ -38506,7 +34065,7 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzWal = pPtr libc.Xmemcpy(tls, pPtr, zPathname, libc.Uint64FromInt32(nPathname)) pPtr += uintptr(nPathname) - libc.Xmemcpy(tls, pPtr, __ccgo_ts+4191, uint64(4)) + libc.Xmemcpy(tls, pPtr, __ccgo_ts+4182, uint64(4)) pPtr += uintptr(libc.Int32FromInt32(4) + libc.Int32FromInt32(1)) } else { (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzWal = uintptr(0) @@ -38548,8 +34107,8 @@ func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename u } } } - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnoLock = libc.Uint8FromInt32(Xsqlite3_uri_boolean(tls, (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, __ccgo_ts+4196, 0)) - if iDc&int32(SQLITE_IOCAP_IMMUTABLE) != 0 || Xsqlite3_uri_boolean(tls, (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, __ccgo_ts+4203, 0) != 0 { + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FnoLock = libc.Uint8FromInt32(Xsqlite3_uri_boolean(tls, (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, __ccgo_ts+4187, 0)) + if iDc&int32(SQLITE_IOCAP_IMMUTABLE) != 0 || Xsqlite3_uri_boolean(tls, (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FzFilename, __ccgo_ts+4194, 0) != 0 { vfsFlags |= int32(SQLITE_OPEN_READONLY) goto act_like_temp_file } @@ -38632,7 +34191,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38888,7 +34447,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -39063,7 +34622,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -39094,7 +34653,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -39166,7 +34725,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -40523,7 +36082,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -40791,7 +36350,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+4213, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+4204, uintptr(0), uintptr(0), uintptr(0)) } if (*TPager)(unsafe.Pointer(pPager)).FpWal != 0 { if eMode == SQLITE_CHECKPOINT_PASSIVE { @@ -41372,232 +36931,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41616,29 +36949,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -42067,14 +37377,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42241,7 +37543,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42329,7 +37631,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42468,7 +37770,7 @@ finished: ** checkpointing the log file. */ if (*TWal)(unsafe.Pointer(pWal)).Fhdr.FnPage != 0 { - Xsqlite3_log(tls, libc.Int32FromInt32(SQLITE_NOTICE)|libc.Int32FromInt32(1)< y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -43062,7 +38364,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -43078,7 +38380,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -43099,7 +38401,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -43165,7 +38467,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43215,7 +38517,7 @@ func _walLimitSize(tls *libc.TLS, pWal uintptr, nMax Ti64) { } _sqlite3EndBenignMalloc(tls) if rx != 0 { - Xsqlite3_log(tls, rx, __ccgo_ts+4268, libc.VaList(bp+16, (*TWal)(unsafe.Pointer(pWal)).FzWalName)) + Xsqlite3_log(tls, rx, __ccgo_ts+4259, libc.VaList(bp+16, (*TWal)(unsafe.Pointer(pWal)).FzWalName)) } } @@ -43463,7 +38765,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44274,7 +39576,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44420,7 +39722,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44447,7 +39749,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44775,7 +40077,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44956,7 +40258,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -44965,7 +40267,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -45017,14 +40319,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45570,288 +40872,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -45984,27 +41004,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46887,11 +41886,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -47065,7 +42064,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47078,12 +42077,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47127,7 +42126,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -47135,7 +42134,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47555,7 +42554,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47595,12 +42594,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47608,21 +42607,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47669,12 +42668,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47690,7 +42689,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47750,7 +42749,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47767,14 +42766,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47817,11 +42816,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47835,7 +42834,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47916,12 +42915,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47932,11 +42931,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -47957,7 +42956,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -47974,10 +42973,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -48038,7 +43037,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -48064,7 +43063,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -48103,12 +43102,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48135,7 +43134,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -48166,11 +43165,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -48199,7 +43198,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48212,7 +43211,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48363,7 +43362,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48425,7 +43424,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -48513,7 +43512,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+4294) == 0 || isTempDb != 0 && _sqlite3TempInMemory(tls, db) != 0 || vfsFlags&int32(SQLITE_OPEN_MEMORY) != 0) + isMemdb = libc.BoolInt32(zFilename != 0 && libc.Xstrcmp(tls, zFilename, __ccgo_ts+4285) == 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 */ @@ -49299,7 +44298,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+4303, uint64(3)) != 0 { + if libc.Xmemcmp(tls, page1+21, __ccgo_ts+4294, uint64(3)) != 0 { goto page1_init_failed } /* EVIDENCE-OF: R-51873-39618 The page size for a database file is @@ -49337,7 +44336,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -49778,7 +44777,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49802,7 +44801,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49811,7 +44810,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49825,7 +44824,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49855,7 +44854,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -49951,7 +44950,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49989,7 +44988,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -50056,7 +45055,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50099,7 +45098,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -50129,7 +45128,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50595,7 +45594,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50987,7 +45986,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50997,7 +45996,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -51054,7 +46053,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -51128,7 +46127,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51263,7 +46262,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51275,7 +46274,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -51391,7 +46390,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51405,7 +46404,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51639,7 +46638,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51723,7 +46722,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51735,7 +46734,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -51937,7 +46936,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -51970,7 +46969,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51979,7 +46978,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -52108,7 +47107,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52218,7 +47217,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52306,7 +47305,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52361,7 +47360,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52387,7 +47386,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52414,7 +47413,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -52485,7 +47484,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52623,7 +47622,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52674,7 +47673,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52683,7 +47682,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52773,7 +47772,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52791,7 +47790,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52814,7 +47813,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -53035,7 +48034,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53329,17 +48328,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53429,12 +48417,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53442,7 +48430,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -53537,7 +48525,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz)) @@ -53685,7 +48673,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2))) nCell -= nShift @@ -53756,7 +48744,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53801,7 +48789,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -54165,7 +49153,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -54188,7 +49176,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54319,7 +49307,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -54362,7 +49350,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54421,7 +49409,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54453,7 +49441,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54683,7 +49671,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54929,7 +49917,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -55002,7 +49990,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -55161,7 +50149,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -55192,7 +50180,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55277,7 +50265,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55369,7 +50357,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55405,7 +50393,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55435,10 +50423,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55556,7 +50544,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55578,7 +50566,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55678,21 +50666,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&libc.Int32FromUint16(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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55786,7 +50774,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } nCell = libc.Int32FromUint16((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55896,7 +50884,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55937,7 +50925,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -56018,14 +51006,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -56162,7 +51150,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -56427,7 +51415,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+4307, int32(1)) + Xsqlite3_str_append(tls, pCheck+72, __ccgo_ts+4298, 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)) @@ -56475,11 +51463,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+4309, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4300, libc.VaList(bp+8, iPage)) return int32(1) } if _getPageReferenced(tls, pCheck, iPage) != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4332, libc.VaList(bp+8, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4323, libc.VaList(bp+8, iPage)) return int32(1) } _setPageReferenced(tls, pCheck, iPage) @@ -56505,11 +51493,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+4462, libc.VaList(bp+16, iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4453, libc.VaList(bp+16, iPage)) N-- } else { i = 0 @@ -56581,11 +51569,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 + 4501 + v2 = __ccgo_ts + 4492 } else { - v2 = __ccgo_ts + 4506 + v2 = __ccgo_ts + 4497 } - _checkAppendMsg(tls, pCheck, __ccgo_ts+4527, libc.VaList(bp+16, v2, expected-N, expected)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4518, libc.VaList(bp+16, v2, expected-N, expected)) } } @@ -56721,12 +51709,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 + 4553 + (*TIntegrityCk)(unsafe.Pointer(pCheck)).FzPfx = __ccgo_ts + 4544 (*TIntegrityCk)(unsafe.Pointer(pCheck)).Fv1 = iPage v1 = _btreeGetPage(tls, pBt, iPage, bp+8, 0) rc = v1 if v1 != 0 { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4571, libc.VaList(bp+56, rc)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4562, libc.VaList(bp+56, rc)) if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(12)< usableSize-uint32(4) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4725, libc.VaList(bp+56, pc, contentOffset, usableSize-uint32(4))) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4716, 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+4755, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4746, 0) doCoverageCheck = 0 goto _4 } @@ -56811,7 +51799,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+4779, libc.VaList(bp+56, (*(*TCellInfo)(unsafe.Pointer(bp + 24))).FnKey)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4770, 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 */ @@ -56834,7 +51822,7 @@ func _checkTreePage(tls *libc.TLS, pCheck uintptr, iPage TPgno, piMinKey uintptr d2 = _checkTreePage(tls, pCheck, libc.Uint32FromInt32(pgno), bp, *(*Ti64)(unsafe.Pointer(bp))) keyCanBeEqual = 0 if d2 != depth { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4803, 0) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4794, 0) depth = d2 } } else { @@ -56911,7 +51899,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+4828, libc.VaList(bp+56, *(*Tu32)(unsafe.Pointer(bp + 16))>>int32(16), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4819, 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))) @@ -56925,7 +51913,7 @@ 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 != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) { - _checkAppendMsg(tls, pCheck, __ccgo_ts+4865, libc.VaList(bp+56, nFrag, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) + _checkAppendMsg(tls, pCheck, __ccgo_ts+4856, libc.VaList(bp+56, nFrag, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))), iPage)) } } goto end_of_check @@ -57016,7 +52004,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 + 4917 + (*(*TIntegrityCk)(unsafe.Pointer(bp))).FzPfx = __ccgo_ts + 4908 _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) } @@ -57040,11 +52028,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+4928, libc.VaList(bp+248, mx, mxInHdr)) + _checkAppendMsg(tls, bp, __ccgo_ts+4919, 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+4973, 0) + _checkAppendMsg(tls, bp, __ccgo_ts+4964, 0) } } } @@ -57081,10 +52069,10 @@ func _sqlite3BtreeIntegrityCheck(tls *libc.TLS, db uintptr, p uintptr, aRoot uin ** references to pointer-map pages. */ if _getPageReferenced(tls, bp, i) == 0 && (_ptrmapPageno(tls, pBt, i) != i || !((*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0)) { - _checkAppendMsg(tls, bp, __ccgo_ts+5028, libc.VaList(bp+248, i)) + _checkAppendMsg(tls, bp, __ccgo_ts+5019, libc.VaList(bp+248, i)) } if _getPageReferenced(tls, bp, i) != 0 && (_ptrmapPageno(tls, pBt, i) == i && (*TBtShared)(unsafe.Pointer(pBt)).FautoVacuum != 0) { - _checkAppendMsg(tls, bp, __ccgo_ts+5048, libc.VaList(bp+248, i)) + _checkAppendMsg(tls, bp, __ccgo_ts+5039, libc.VaList(bp+248, i)) } goto _3 _3: @@ -57214,14 +52202,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57432,45 +52420,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -57523,7 +52472,7 @@ func _findBtree(tls *libc.TLS, pErrorDb uintptr, pDb uintptr, zDb uintptr) (r ui rc = 0 _sqlite3ParseObjectInit(tls, bp, pDb) if _sqlite3OpenTempDatabase(tls, bp) != 0 { - _sqlite3ErrorWithMsg(tls, pErrorDb, (*(*TParse)(unsafe.Pointer(bp))).Frc, __ccgo_ts+3899, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, pErrorDb, (*(*TParse)(unsafe.Pointer(bp))).Frc, __ccgo_ts+3890, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) rc = int32(SQLITE_ERROR) } _sqlite3DbFree(tls, pErrorDb, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) @@ -57533,7 +52482,7 @@ func _findBtree(tls *libc.TLS, pErrorDb uintptr, pDb uintptr, zDb uintptr) (r ui } } if i < 0 { - _sqlite3ErrorWithMsg(tls, pErrorDb, int32(SQLITE_ERROR), __ccgo_ts+5080, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, pErrorDb, int32(SQLITE_ERROR), __ccgo_ts+5071, libc.VaList(bp+432, zDb)) return uintptr(0) } return (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(pDb)).FaDb + uintptr(i)*32))).FpBt @@ -57562,7 +52511,7 @@ func _setDestPgsz(tls *libc.TLS, p uintptr) (r int32) { // */ func _checkReadTransaction(tls *libc.TLS, db uintptr, p uintptr) (r int32) { if _sqlite3BtreeTxnState(tls, p) != SQLITE_TXN_NONE { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+5100, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+5091, 0) return int32(SQLITE_ERROR) } return SQLITE_OK @@ -57592,7 +52541,7 @@ func Xsqlite3_backup_init(tls *libc.TLS, pDestDb uintptr, zDestDb uintptr, pSrcD Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(pSrcDb)).Fmutex) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(pDestDb)).Fmutex) if pSrcDb == pDestDb { - _sqlite3ErrorWithMsg(tls, pDestDb, int32(SQLITE_ERROR), __ccgo_ts+5131, 0) + _sqlite3ErrorWithMsg(tls, pDestDb, int32(SQLITE_ERROR), __ccgo_ts+5122, 0) p = uintptr(0) } else { /* Allocate space for a new sqlite3_backup object... @@ -58270,7 +53219,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+5171, libc.VaList(bp+48, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5162, libc.VaList(bp+48, v1)) *(*uint8)(unsafe.Pointer(zBuf + uintptr((*(*TStrAccum)(unsafe.Pointer(bp))).FnChar))) = uint8(0) /* Fast version of sqlite3StrAccumFinish(&acc) */ (*TMem)(unsafe.Pointer(p)).Fn = libc.Int32FromUint32((*(*TStrAccum)(unsafe.Pointer(bp))).FnChar) } @@ -59072,21 +54021,21 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) if zPType != 0 { v1 = zPType } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } *(*uintptr)(unsafe.Pointer(pMem)) = v1 (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59245,7 +54194,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59287,11 +54236,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59301,7 +54250,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59323,12 +54272,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59367,7 +54316,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59479,8 +54428,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -59651,7 +54600,7 @@ 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+3899, libc.VaList(bp+56, Xsqlite3_value_text(tls, pVal))) + _sqlite3ErrorMsg(tls, (*TValueNewStat4Ctx)(unsafe.Pointer(pCtx)).FpParse, __ccgo_ts+3890, libc.VaList(bp+56, Xsqlite3_value_text(tls, pVal))) } else { _sqlite3ValueApplyAffinity(tls, pVal, aff, uint8(SQLITE_UTF8)) rc = _sqlite3VdbeChangeEncoding(tls, pVal, libc.Int32FromUint8(enc)) @@ -59709,7 +54658,7 @@ func _valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc Tu8, affinity zVal = uintptr(0) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) negInt = int32(1) - zNeg = __ccgo_ts + 1676 + zNeg = __ccgo_ts + 1667 rc = SQLITE_OK for { v1 = libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) @@ -59751,7 +54700,7 @@ func _valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc Tu8, affinity pExpr = pLeft op = libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) negInt = -int32(1) - zNeg = __ccgo_ts + 5178 + zNeg = __ccgo_ts + 5169 } } } @@ -59766,7 +54715,7 @@ func _valueFromExpr(tls *libc.TLS, db uintptr, pExpr uintptr, enc Tu8, affinity 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(negInt)) } else { - zVal = _sqlite3MPrintf(tls, db, __ccgo_ts+5180, libc.VaList(bp+24, zNeg, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + zVal = _sqlite3MPrintf(tls, db, __ccgo_ts+5171, libc.VaList(bp+24, zNeg, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) if zVal == uintptr(0) { goto no_mem } @@ -60070,7 +55019,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -60086,7 +55035,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -60096,7 +55045,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -60147,9 +55096,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60223,7 +55172,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -61417,7 +56366,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+5185, libc.VaList(bp+40, libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5176, libc.VaList(bp+40, libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField))) j = 0 for { if !(j < libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnKeyField)) { @@ -61427,66 +56376,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 + 1676 + v2 = __ccgo_ts + 1667 } zColl = v2 - if libc.Xstrcmp(tls, zColl, __ccgo_ts+5190) == 0 { - zColl = __ccgo_ts + 5197 + if libc.Xstrcmp(tls, zColl, __ccgo_ts+5181) == 0 { + zColl = __ccgo_ts + 5188 } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_DESC) != 0 { - v3 = __ccgo_ts + 5178 + v3 = __ccgo_ts + 5169 } else { - v3 = __ccgo_ts + 1676 + v3 = __ccgo_ts + 1667 } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FaSortFlags + uintptr(j))))&int32(KEYINFO_ORDER_BIGNULL) != 0 { - v4 = __ccgo_ts + 5199 + v4 = __ccgo_ts + 5190 } else { - v4 = __ccgo_ts + 1676 + v4 = __ccgo_ts + 1667 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5202, libc.VaList(bp+40, v3, v4, zColl)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5193, libc.VaList(bp+40, v3, v4, zColl)) goto _1 _1: ; j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5210, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5201, int32(1)) case -int32(2): pColl1 = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5226, libc.VaList(bp+40, (*TCollSeq)(unsafe.Pointer(pColl1)).FzName, _encnames[(*TCollSeq)(unsafe.Pointer(pColl1)).Fenc])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5217, 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+5235, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5226, 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+5235, libc.VaList(bp+40, (*TFuncDef)(unsafe.Pointer(pDef1)).FzName, int32((*TFuncDef)(unsafe.Pointer(pDef1)).FnArg))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5226, 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+1437, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1428, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(3): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5242, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5233, libc.VaList(bp+40, (*TOp)(unsafe.Pointer(pOp)).Fp4.Fi)) case -int32(12): - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1395, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))))) case -int32(10): pMem = *(*uintptr)(unsafe.Pointer(pOp + 16)) if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Str) != 0 { zP4 = (*TMem)(unsafe.Pointer(pMem)).Fz } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pMem)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1437, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1428, libc.VaList(bp+40, *(*Ti64)(unsafe.Pointer(pMem)))) } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1404, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+1395, libc.VaList(bp+40, *(*float64)(unsafe.Pointer(pMem)))) } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pMem)).Fflags)&int32(MEM_Null) != 0 { - zP4 = __ccgo_ts + 1677 + zP4 = __ccgo_ts + 1668 } else { - zP4 = __ccgo_ts + 5245 + zP4 = __ccgo_ts + 5236 } } } } case -int32(11): pVtab = (*TVTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FpVtab - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5252, libc.VaList(bp+40, pVtab)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5243, 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 @@ -61501,20 +56450,20 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } else { v6 = int32(',') } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5260, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5251, libc.VaList(bp+40, v6, *(*Tu32)(unsafe.Pointer(ai + uintptr(i)*4)))) goto _5 _5: ; i++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5265, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5256, int32(1)) case -int32(4): - zP4 = __ccgo_ts + 5267 + zP4 = __ccgo_ts + 5258 case -int32(5): zP4 = (*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pOp + 16)))).FzName case -int32(17): pSig = *(*uintptr)(unsafe.Pointer(pOp + 16)) - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5275, libc.VaList(bp+40, (*TSubrtnSig)(unsafe.Pointer(pSig)).FselId, (*TSubrtnSig)(unsafe.Pointer(pSig)).FzAff)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+5266, libc.VaList(bp+40, (*TSubrtnSig)(unsafe.Pointer(pSig)).FselId, (*TSubrtnSig)(unsafe.Pointer(pSig)).FzAff)) default: zP4 = *(*uintptr)(unsafe.Pointer(pOp + 16)) } @@ -61528,10 +56477,10 @@ func _sqlite3VdbeDisplayP4(tls *libc.TLS, db uintptr, pOp uintptr) (r uintptr) { } var _encnames = [4]uintptr{ - 0: __ccgo_ts + 5212, - 1: __ccgo_ts + 5214, - 2: __ccgo_ts + 5216, - 3: __ccgo_ts + 5221, + 0: __ccgo_ts + 5203, + 1: __ccgo_ts + 5205, + 2: __ccgo_ts + 5207, + 3: __ccgo_ts + 5212, } // C documentation @@ -62347,7 +57296,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62355,7 +57304,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -62482,7 +57431,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+5291, libc.VaList(bp+24, 0, zMainFile, 0)) + zSuper = _sqlite3MPrintf(tls, db, __ccgo_ts+5282, libc.VaList(bp+24, 0, zMainFile, 0)) if zSuper == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -62490,18 +57439,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+5303, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5294, libc.VaList(bp+24, zSuper)) _sqlite3OsDelete(tls, pVfs, zSuper, 0) break } else { if retryCount == int32(1) { - Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5317, libc.VaList(bp+24, zSuper)) + Xsqlite3_log(tls, int32(SQLITE_FULL), __ccgo_ts+5308, libc.VaList(bp+24, zSuper)) } } } retryCount++ Xsqlite3_randomness(tls, int32(4), bp+12) - Xsqlite3_snprintf(tls, int32(13), zSuper+uintptr(nMainFile), __ccgo_ts+5332, 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+5323, 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) @@ -62732,7 +57681,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)< libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -64120,7 +59069,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -64155,7 +59104,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64209,7 +59158,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64341,7 +59290,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64493,7 +59442,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64524,7 +59473,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -64675,15 +59624,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 libc.Int32FromUint8((*TVdbeOp)(unsafe.Pointer(pOp)).Fopcode) == int32(OP_PureFunc) { if libc.Int32FromUint16((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_IsCheck) != 0 { - zContext = __ccgo_ts + 5375 + zContext = __ccgo_ts + 5366 } else { if libc.Int32FromUint16((*TVdbeOp)(unsafe.Pointer(pOp)).Fp5)&int32(NC_GenCol) != 0 { - zContext = __ccgo_ts + 5394 + zContext = __ccgo_ts + 5385 } else { - zContext = __ccgo_ts + 5413 + zContext = __ccgo_ts + 5404 } } - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5422, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpFunc)).FzName, zContext)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+5413, 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 @@ -64873,7 +59822,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+5458, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5449, 0) return int32(1) } else { return 0 @@ -64883,7 +59832,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+5503, 0) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5494, 0) return int32(1) } else { return _vdbeSafety(tls, p) @@ -64941,7 +59890,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65268,12 +60217,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65290,29 +60239,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65342,13 +60295,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65360,11 +60315,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65372,23 +60331,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65444,7 +60409,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+5543, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) + _sqlite3VdbeMemSetStr(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut, __ccgo_ts+5534, int64(-int32(1)), uint8(SQLITE_UTF8), libc.UintptrFromInt32(0)) } // C documentation @@ -65645,7 +60610,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65775,7 +60740,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65944,6 +60909,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -65957,7 +60924,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -65995,13 +60962,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66235,18 +61202,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 + 5566, - 1: __ccgo_ts + 5571, - 2: __ccgo_ts + 5578, - 3: __ccgo_ts + 5581, - 4: __ccgo_ts + 5584, - 5: __ccgo_ts + 5587, - 6: __ccgo_ts + 5590, - 7: __ccgo_ts + 5593, - 8: __ccgo_ts + 5601, - 9: __ccgo_ts + 5604, - 10: __ccgo_ts + 5611, - 11: __ccgo_ts + 5619, + 0: __ccgo_ts + 5557, + 1: __ccgo_ts + 5562, + 2: __ccgo_ts + 5569, + 3: __ccgo_ts + 5572, + 4: __ccgo_ts + 5575, + 5: __ccgo_ts + 5578, + 6: __ccgo_ts + 5581, + 7: __ccgo_ts + 5584, + 8: __ccgo_ts + 5592, + 9: __ccgo_ts + 5595, + 10: __ccgo_ts + 5602, + 11: __ccgo_ts + 5610, } var _azExplainColNames16data = [60]Tu16{ 0: uint16('a'), @@ -66501,14 +61468,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) - Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5626, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5617, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66546,7 +61513,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66556,7 +61523,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66567,24 +61534,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66632,7 +61603,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66640,32 +61613,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -67082,7 +62061,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -67144,7 +62123,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol)).Faffinity, bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67245,7 +62224,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -67421,7 +62400,7 @@ func _sqlite3VdbeExpandSql(tls *libc.TLS, p uintptr, zRawSql uintptr) (r uintptr break } } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5666, int32(3)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5657, int32(3)) Xsqlite3_str_append(tls, bp+8, zStart, int32(int64(zRawSql)-int64(zStart))) } } else { @@ -67453,13 +62432,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 libc.Int32FromUint16((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Null) != 0 { - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1677, int32(4)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+1668, int32(4)) } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pVar)).Fflags)&(libc.Int32FromInt32(MEM_Int)|libc.Int32FromInt32(MEM_IntReal)) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1437, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+1428, libc.VaList(bp+104, *(*Ti64)(unsafe.Pointer(pVar)))) } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Real) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5171, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5162, libc.VaList(bp+104, *(*float64)(unsafe.Pointer(pVar)))) } else { if libc.Int32FromUint16((*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 @@ -67474,28 +62453,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+5670, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5661, libc.VaList(bp+104, nOut, (*TMem)(unsafe.Pointer(pVar)).Fz)) if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { _sqlite3VdbeMemRelease(tls, bp+40) } } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pVar)).Fflags)&int32(MEM_Zero) != 0 { - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5677, libc.VaList(bp+104, *(*int32)(unsafe.Pointer(&(*TMem)(unsafe.Pointer(pVar)).Fu)))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5668, 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+5690, int32(2)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5681, int32(2)) nOut1 = (*TMem)(unsafe.Pointer(pVar)).Fn i = 0 for { if !(i < nOut1) { break } - Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5693, libc.VaList(bp+104, libc.Int32FromUint8(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) + Xsqlite3_str_appendf(tls, bp+8, __ccgo_ts+5684, libc.VaList(bp+104, libc.Int32FromUint8(*(*uint8)(unsafe.Pointer((*TMem)(unsafe.Pointer(pVar)).Fz + uintptr(i))))&int32(0xff))) goto _3 _3: ; i++ } - Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5698, int32(1)) + Xsqlite3_str_append(tls, bp+8, __ccgo_ts+5689, int32(1)) } } } @@ -68093,11 +63072,11 @@ func _vdbeMemTypeName(tls *libc.TLS, pMem uintptr) (r uintptr) { } var _azTypes = [5]uintptr{ - 0: __ccgo_ts + 1146, - 1: __ccgo_ts + 1158, - 2: __ccgo_ts + 1163, - 3: __ccgo_ts + 1141, - 4: __ccgo_ts + 1677, + 0: __ccgo_ts + 1137, + 1: __ccgo_ts + 1149, + 2: __ccgo_ts + 1154, + 3: __ccgo_ts + 1132, + 4: __ccgo_ts + 1668, } // C documentation @@ -68865,19 +63844,19 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { if (*TVdbe)(unsafe.Pointer(p)).Frc != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp3 > 0 && int32((*TOp)(unsafe.Pointer(pOp)).Fp4type) == P4_NOTUSED { zErr = _sqlite3ValueText(tls, aMem+uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56, uint8(SQLITE_UTF8)) - _sqlite3VdbeError(tls, p, __ccgo_ts+3899, libc.VaList(bp+936, zErr)) + _sqlite3VdbeError(tls, p, __ccgo_ts+3890, libc.VaList(bp+936, zErr)) } else { if (*TOp)(unsafe.Pointer(pOp)).Fp5 != 0 { - _sqlite3VdbeError(tls, p, __ccgo_ts+5734, libc.VaList(bp+936, _azType[libc.Int32FromUint16((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) + _sqlite3VdbeError(tls, p, __ccgo_ts+5725, libc.VaList(bp+936, _azType[libc.Int32FromUint16((*TOp)(unsafe.Pointer(pOp)).Fp5)-int32(1)])) if *(*uintptr)(unsafe.Pointer(pOp + 16)) != 0 { - (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5755, libc.VaList(bp+936, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+5746, libc.VaList(bp+936, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } else { - _sqlite3VdbeError(tls, p, __ccgo_ts+3899, libc.VaList(bp+936, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3890, libc.VaList(bp+936, *(*uintptr)(unsafe.Pointer(pOp + 16)))) } } pcx = int32((int64(pOp) - int64(aOp)) / 24) - Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5762, libc.VaList(bp+936, pcx, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, (*TVdbe)(unsafe.Pointer(p)).FzSql)) + Xsqlite3_log(tls, (*TOp)(unsafe.Pointer(pOp)).Fp1, __ccgo_ts+5753, libc.VaList(bp+936, pcx, (*TVdbe)(unsafe.Pointer(p)).FzErrMsg, (*TVdbe)(unsafe.Pointer(p)).FzSql)) } rc = _sqlite3VdbeHalt(tls, p) if rc == int32(SQLITE_BUSY) { @@ -70606,7 +65585,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -70709,7 +65688,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_type_error vdbe_type_error: ; - _sqlite3VdbeError(tls, p, __ccgo_ts+5784, libc.VaList(bp+936, _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+5775, libc.VaList(bp+936, _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+5898, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5889, 0) rc = int32(SQLITE_BUSY) } else { /* Determine whether or not this is a transaction savepoint. If so, @@ -71305,7 +66284,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+5952, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+5943, 0) rc = int32(SQLITE_BUSY) goto abort_due_to_error } else { @@ -71335,12 +66314,12 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { goto vdbe_return } else { if !(desiredAutoCommit != 0) { - v250 = __ccgo_ts + 6007 + v250 = __ccgo_ts + 5998 } else { if iRollback != 0 { - v251 = __ccgo_ts + 6055 + v251 = __ccgo_ts + 6046 } else { - v251 = __ccgo_ts + 6098 + v251 = __ccgo_ts + 6089 } v250 = v251 } @@ -71432,7 +66411,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+6139) + (*TVdbe)(unsafe.Pointer(p)).FzErrMsg = _sqlite3DbStrDup(tls, db, __ccgo_ts+6130) /* 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. @@ -71750,7 +66729,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 + 1676 + (*(*TMem)(unsafe.Pointer(aMem + uintptr((*TOp)(unsafe.Pointer(pOp)).Fp3)*56))).Fz = __ccgo_ts + 1667 } 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) { @@ -72516,7 +67495,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, uint8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72543,7 +67522,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73435,7 +68414,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -73765,7 +68744,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*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+3899, libc.VaList(bp+936, *(*uintptr)(unsafe.Pointer(bp + 632)))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3890, libc.VaList(bp+936, *(*uintptr)(unsafe.Pointer(bp + 632)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 632))) if rc == int32(SQLITE_NOMEM) { goto no_mem @@ -73796,13 +68775,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 + 6184 + zSchema = __ccgo_ts + 6175 (*(*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+6198, libc.VaList(bp+936, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb3)*32))).FzDbSName, zSchema, *(*uintptr)(unsafe.Pointer(pOp + 16)))) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+6189, libc.VaList(bp+936, (*(*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 { @@ -73817,7 +68796,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -74054,7 +69033,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+6241, 0) + _sqlite3VdbeError(tls, p, __ccgo_ts+6232, 0) goto abort_due_to_error } /* Register pRt is used to store the memory required to save the state @@ -74426,7 +69405,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+3899, libc.VaList(bp+936, Xsqlite3_value_text(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx1)).FpOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3890, libc.VaList(bp+936, 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 { @@ -74482,7 +69461,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+3899, libc.VaList(bp+936, Xsqlite3_value_text(tls, pMem3))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3890, libc.VaList(bp+936, Xsqlite3_value_text(tls, pMem3))) goto abort_due_to_error } _sqlite3VdbeChangeEncoding(tls, pMem3, libc.Int32FromUint8(encoding)) @@ -74561,11 +69540,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 + 6278 + v286 = __ccgo_ts + 6269 } else { - v286 = __ccgo_ts + 6283 + v286 = __ccgo_ts + 6274 } - _sqlite3VdbeError(tls, p, __ccgo_ts+6290, libc.VaList(bp+936, v286)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6281, libc.VaList(bp+936, v286)) goto abort_due_to_error } else { if eOld == int32(PAGER_JOURNALMODE_WAL) { @@ -74718,7 +69697,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+6342, libc.VaList(bp+936, z1)) + _sqlite3VdbeError(tls, p, __ccgo_ts+6333, libc.VaList(bp+936, z1)) } goto abort_due_to_error } @@ -74880,7 +69859,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+6371, __ccgo_fp(_sqlite3VdbeValueListFree)) + _sqlite3VdbeMemSetPointer(tls, pOut, pRhs, __ccgo_ts+6362, __ccgo_fp(_sqlite3VdbeValueListFree)) goto _187 /* Opcode: VFilter P1 P2 P3 P4 * ** Synopsis: iplan=r[P3] zplan='P4' @@ -74976,7 +69955,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+3899, libc.VaList(bp+936, Xsqlite3_value_text(tls, pDest2))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3890, libc.VaList(bp+936, Xsqlite3_value_text(tls, pDest2))) rc = (*(*Tsqlite3_context)(unsafe.Pointer(bp + 800))).FisError } _sqlite3VdbeChangeEncoding(tls, pDest2, libc.Int32FromUint8(encoding)) @@ -75230,7 +70209,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+3899, libc.VaList(bp+936, Xsqlite3_value_text(tls, pOut))) + _sqlite3VdbeError(tls, p, __ccgo_ts+3890, libc.VaList(bp+936, 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) @@ -75381,7 +70360,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+6381, libc.VaList(bp+936, zTrace)) + z3 = _sqlite3MPrintf(tls, db, __ccgo_ts+6372, libc.VaList(bp+936, 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 { @@ -75468,15 +70447,15 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76870,7 +71570,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77361,8 +72061,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77557,7 +72257,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -79209,57 +73909,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79556,7 +74205,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -80259,25 +74908,25 @@ func _extendFJMatch(tls *libc.TLS, pParse uintptr, ppList uintptr, pMatch uintpt func _isValidSchemaTableName(tls *libc.TLS, zTab uintptr, pTab uintptr, zDb uintptr) (r int32) { var zLegacy uintptr _ = zLegacy - if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6689, int32(7)) != 0 { + if Xsqlite3_strnicmp(tls, zTab, __ccgo_ts+6680, int32(7)) != 0 { return 0 } zLegacy = (*TTable)(unsafe.Pointer(pTab)).FzName - if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6697+7) == 0 { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6716+7) == 0 { + if libc.Xstrcmp(tls, zLegacy+uintptr(7), __ccgo_ts+6688+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6707+7) == 0 { return int32(1) } if zDb == uintptr(0) { return 0 } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6184+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6175+7) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6735+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6726+7) == 0 { return int32(1) } } else { - if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6735+7) == 0 { + if _sqlite3StrICmp(tls, zTab+uintptr(7), __ccgo_ts+6726+7) == 0 { return int32(1) } } @@ -80363,7 +75012,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRigh ; i++ } - if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6749, zDb) == 0 { + if i == (*Tsqlite3)(unsafe.Pointer(db)).FnDb && _sqlite3StrICmp(tls, __ccgo_ts+6740, 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 @@ -80457,7 +75106,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRigh if (*TTable)(unsafe.Pointer(pTab)).FpSchema != pSchema { goto _2 } - if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6754) != 0 { + if pSchema == uintptr(0) && libc.Xstrcmp(tls, zDb, __ccgo_ts+6745) != 0 { goto _2 } } @@ -80561,11 +75210,11 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRigh pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } } else { - if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6756, zTab) == 0 { + if op != int32(TK_DELETE) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6747, 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+6760, zTab) == 0 { + if op != int32(TK_INSERT) && zTab != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6751, zTab) == 0 { (*TExpr)(unsafe.Pointer(pExpr)).FiTable = 0 pTab = (*TParse)(unsafe.Pointer(pParse)).FpTriggerTab } @@ -80574,7 +75223,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRigh } 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+6764, zTab) == 0 { + if pUpsert != 0 && _sqlite3StrICmp(tls, __ccgo_ts+6755, zTab) == 0 { pTab = (*(*TSrcItem)(unsafe.Pointer((*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertSrc + 8))).FpSTab (*TExpr)(unsafe.Pointer(pExpr)).FiTable = int32(EXCLUDED_TABLE_NUMBER) } @@ -80679,15 +75328,15 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRigh 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&libc.Uint32FromInt32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6773, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6764, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if (*TExpr)(unsafe.Pointer(pOrig)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_Win)) != uint32(0) && ((*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_AllowWin) == 0 || pNC != pTopNC) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6804, libc.VaList(bp+24, zAs)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6795, libc.VaList(bp+24, zAs)) return int32(WRC_Abort) } if _sqlite3ExprVectorSize(tls, pOrig) != int32(1) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6841, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6832, 0) return int32(WRC_Abort) } _resolveAlias(tls, pParse, pEList, j, pExpr, nSubquery) @@ -80739,7 +75388,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRigh ** 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+6859, libc.VaList(bp+24, zCol)) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+6850, 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) @@ -80768,7 +75417,7 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRigh } _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 + 6894 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 6885 *(*uintptr)(unsafe.Pointer(pExpr + 32)) = *(*uintptr)(unsafe.Pointer(bp)) cnt = int32(1) goto lookupname_end @@ -80778,21 +75427,21 @@ func _lookupName(tls *libc.TLS, pParse uintptr, zDb uintptr, zTab uintptr, pRigh } } if cnt == 0 { - v8 = __ccgo_ts + 6903 + v8 = __ccgo_ts + 6894 } else { - v8 = __ccgo_ts + 6918 + v8 = __ccgo_ts + 6909 } zErr = v8 if zDb != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6940, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6931, libc.VaList(bp+24, zErr, zDb, zTab, zCol)) } else { if zTab != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6953, libc.VaList(bp+24, zErr, zTab, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6944, libc.VaList(bp+24, zErr, zTab, zCol)) } else { if cnt == 0 && (*TExpr)(unsafe.Pointer(pRight)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_DblQuoted)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6963, libc.VaList(bp+24, zErr, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6954, libc.VaList(bp+24, zErr, zCol)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7024, libc.VaList(bp+24, zErr, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7015, libc.VaList(bp+24, zErr, zCol)) } } } @@ -80921,19 +75570,19 @@ func _notValidImpl(tls *libc.TLS, pParse uintptr, pNC uintptr, zMsg uintptr, pEx defer tls.Free(32) var zIn uintptr _ = zIn - zIn = __ccgo_ts + 7031 + zIn = __ccgo_ts + 7022 if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IdxExpr) != 0 { - zIn = __ccgo_ts + 7059 + zIn = __ccgo_ts + 7050 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_IsCheck) != 0 { - zIn = __ccgo_ts + 7077 + zIn = __ccgo_ts + 7068 } else { if (*TNameContext)(unsafe.Pointer(pNC)).FncFlags&int32(NC_GenCol) != 0 { - zIn = __ccgo_ts + 7095 + zIn = __ccgo_ts + 7086 } } } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7113, libc.VaList(bp+8, zMsg, zIn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7104, libc.VaList(bp+8, zMsg, zIn)) if pExpr != 0 { (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) } @@ -81105,7 +75754,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } 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+7133, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7124, uintptr(0), pExpr) } pRight = (*TExpr)(unsafe.Pointer(pExpr)).FpRight if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pRight)).Fop) == int32(TK_ID) { @@ -81160,7 +75809,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+7150, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7141, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } } else { @@ -81184,7 +75833,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+7214, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7205, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_NULL) @@ -81226,7 +75875,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { ** in a CHECK constraint. SQLServer, MySQL, and PostgreSQL all ** allow 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+7250, uintptr(0), pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7241, uintptr(0), pExpr) } } else { /* Must fit in 8 bits */ @@ -81250,29 +75899,29 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } if 0 == libc.BoolInt32(libc.Int32FromUint8((*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+7278, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7269, 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 + 7321 + zType = __ccgo_ts + 7312 } else { - zType = __ccgo_ts + 7328 + zType = __ccgo_ts + 7319 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7338, libc.VaList(bp+8, zType, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7329, libc.VaList(bp+8, zType, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ is_agg = 0 } else { if no_such_func != 0 && libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7366, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7357, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if wrong_num_args != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7388, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7379, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7432, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7423, libc.VaList(bp+8, pExpr)) (*TNameContext)(unsafe.Pointer(pNC)).FnNcErr++ } else { if is_agg == 0 && (*TExpr)(unsafe.Pointer(pExpr)).FpLeft != 0 { @@ -81357,7 +76006,7 @@ 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+7480, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7471, pExpr, pExpr) } else { _sqlite3WalkSelect(tls, pWalker, *(*uintptr)(unsafe.Pointer(pExpr + 32))) } @@ -81369,7 +76018,7 @@ func _resolveExprStep(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) { } 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+7491, pExpr, pExpr) + _notValidImpl(tls, pParse, pNC, __ccgo_ts+7482, pExpr, pExpr) } case int32(TK_IS): fallthrough @@ -81415,7 +76064,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+6841, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6832, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } break @@ -81540,7 +76189,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+7502, libc.VaList(bp+8, i, zType, mx)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7493, libc.VaList(bp+8, i, zType, mx)) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pError) } @@ -81575,7 +76224,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+7558, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7549, 0) return int32(1) } i = 0 @@ -81613,7 +76262,7 @@ func _resolveCompoundOrderBy(tls *libc.TLS, pParse uintptr, pSelect uintptr) (r } if _sqlite3ExprIsInteger(tls, pE, bp, uintptr(0)) != 0 { if *(*int32)(unsafe.Pointer(bp)) <= 0 || *(*int32)(unsafe.Pointer(bp)) > (*TExprList)(unsafe.Pointer(pEList)).FnExpr { - _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7592, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) + _resolveOutOfRangeError(tls, pParse, __ccgo_ts+7583, i+int32(1), (*TExprList)(unsafe.Pointer(pEList)).FnExpr, pE) return int32(1) } } else { @@ -81683,7 +76332,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+7598, libc.VaList(bp+16, i+int32(1))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7589, libc.VaList(bp+16, i+int32(1))) return int32(1) } goto _3 @@ -81717,7 +76366,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+7659, libc.VaList(bp+8, zType)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7650, libc.VaList(bp+8, zType)) return int32(1) } pEList = (*TSelect)(unsafe.Pointer(pSelect)).FpEList @@ -82030,7 +76679,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+7690, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7681, 0) return int32(WRC_Abort) } if _sqlite3ResolveExprNames(tls, bp, (*TSelect)(unsafe.Pointer(p)).FpHaving) != 0 { @@ -82097,7 +76746,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+7592) != 0 { + if (*TSelect)(unsafe.Pointer(p)).FpOrderBy != uintptr(0) && isCompound <= nCompound && _resolveOrderGroupBy(tls, bp, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7583) != 0 { return int32(WRC_Abort) } if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -82108,7 +76757,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+7729) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { + if _resolveOrderGroupBy(tls, bp, p, pGroupBy, __ccgo_ts+7720) != 0 || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(WRC_Abort) } i = 0 @@ -82118,7 +76767,7 @@ func _resolveSelectStep(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { break } if (*TExpr)(unsafe.Pointer((*TExprList_item)(unsafe.Pointer(pItem2)).FpExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_Agg)) != uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7735, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7726, 0) return int32(WRC_Abort) } goto _6 @@ -83103,7 +77752,7 @@ func _codeVectorCompare(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32 return } if nLeft != _sqlite3ExprVectorSize(tls, pRight) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6841, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6832, 0) return } if libc.Int32FromUint8(op) == int32(TK_LE) { @@ -83182,7 +77831,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+7794, libc.VaList(bp+8, mxHeight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7785, libc.VaList(bp+8, mxHeight)) rc = int32(SQLITE_ERROR) } return rc @@ -83527,11 +78176,11 @@ func _sqlite3ExprListToValues(tls *libc.TLS, pParse uintptr, nElem int32, pEList } if nExprElem != nElem { if nExprElem > int32(1) { - v2 = __ccgo_ts + 7842 + v2 = __ccgo_ts + 7833 } else { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7844, libc.VaList(bp+8, nExprElem, v2, nElem)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7835, 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)) @@ -83580,7 +78229,7 @@ func _sqlite3ExprAnd(tls *libc.TLS, pParse uintptr, pLeft uintptr, pRight uintpt if f&libc.Uint32FromInt32(libc.Int32FromInt32(EP_OuterON)|libc.Int32FromInt32(EP_InnerON)|libc.Int32FromInt32(EP_IsFalse)|libc.Int32FromInt32(EP_HasFunc)) == uint32(EP_IsFalse) && !(libc.Int32FromUint8((*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+1822) + return _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1813) } else { return _sqlite3PExpr(tls, pParse, int32(TK_AND), pLeft, pRight) } @@ -83608,7 +78257,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+7888, libc.VaList(bp+8, pToken)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7879, libc.VaList(bp+8, pToken)) } *(*uintptr)(unsafe.Pointer(pNew + 32)) = pList *(*Tu32)(unsafe.Pointer(pNew + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_HasFunc)) @@ -83628,7 +78277,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+7922, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7913, libc.VaList(bp+8, p)) } // C documentation @@ -83699,7 +78348,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+7972, libc.VaList(bp+8, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7963, libc.VaList(bp+8, pExpr)) } } } @@ -83751,7 +78400,7 @@ func _sqlite3ExprAssignVarNumber(tls *libc.TLS, pParse uintptr, pExpr uintptr, n bOk = libc.BoolInt32(0 == _sqlite3Atoi64(tls, z+1, bp, libc.Int32FromUint32(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+7992, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7983, libc.VaList(bp+16, *(*int32)(unsafe.Pointer(db + 136 + 9*4)))) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) return } @@ -83784,7 +78433,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+8035, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8026, 0) _sqlite3RecordErrorOffsetOfExpr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) } } @@ -84020,12 +78669,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -84644,7 +79287,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+8058, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8049, libc.VaList(bp+8, (*TIdList)(unsafe.Pointer(pColumns)).FnId, n)) goto vector_append_error } i = 0 @@ -84773,7 +79416,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+8088, libc.VaList(bp+8, zObject)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8079, libc.VaList(bp+8, zObject)) } } @@ -84871,10 +79514,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+8111) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8102) == 0 { return uint32(EP_IsTrue) } - if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8116) == 0 { + if _sqlite3StrICmp(tls, zIn, __ccgo_ts+8107) == 0 { return uint32(EP_IsFalse) } return uint32(0) @@ -85552,13 +80195,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+8122) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8113) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+8130) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8121) == 0 { return int32(1) } - if _sqlite3StrICmp(tls, z, __ccgo_ts+8136) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+8127) == 0 { return int32(1) } return 0 @@ -85576,9 +80219,9 @@ func _sqlite3RowidAlias(tls *libc.TLS, pTab uintptr) (r uintptr) { var ii int32 _, _ = azOpt, ii azOpt = [3]uintptr{ - 0: __ccgo_ts + 8122, - 1: __ccgo_ts + 8130, - 2: __ccgo_ts + 8136, + 0: __ccgo_ts + 8113, + 1: __ccgo_ts + 8121, + 2: __ccgo_ts + 8127, } ii = 0 for { @@ -85847,7 +80490,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+8140, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+8131, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) _sqlite3VdbeJumpHere(tls, v, iAddr) } else { /* Iterator variable */ affinity_ok = int32(1) @@ -85947,7 +80590,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+1822) + pLimit = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1813) 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) @@ -86545,7 +81188,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+8355) + pLimit = _sqlite3Expr(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, int32(TK_INTEGER), __ccgo_ts+8346) (*TSelect)(unsafe.Pointer(pSel)).FpLimit = _sqlite3PExpr(tls, pParse, int32(TK_LIMIT), pLimit, uintptr(0)) } (*TSelect)(unsafe.Pointer(pSel)).FiLimit = 0 @@ -86941,13 +81584,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)<y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -87727,7 +82375,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+8448, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8439, libc.VaList(bp+160, pExpr)) } else { return (*TAggInfo)(unsafe.Pointer(pInfo)).FiFirstReg + (*TAggInfo)(unsafe.Pointer(pInfo)).FnColumn + int32((*TExpr)(unsafe.Pointer(pExpr)).FiAgg) } @@ -87754,7 +82402,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+8475, libc.VaList(bp+160, pExpr)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8466, libc.VaList(bp+160, pExpr)) break } if (*TFuncDef)(unsafe.Pointer(pDef)).FfuncFlags&uint32(SQLITE_FUNC_INLINE) != uint32(0) && pFarg != uintptr(0) { @@ -87859,7 +82507,7 @@ expr_code_doover: } n1 = _sqlite3ExprVectorSize(tls, pLeft2) if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != n1 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8058, libc.VaList(bp+160, (*TExpr)(unsafe.Pointer(pExpr)).FiTable, n1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8049, 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): @@ -87922,7 +82570,7 @@ expr_code_doover: _sqlite3VdbeAddOp1(tls, v, int32(OP_RealAffinity), target) } case int32(TK_VECTOR): - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6841, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6832, 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 @@ -88037,7 +82685,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+8499, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8490, 0) return 0 } if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).FaffExpr) == int32(OE_Abort) { @@ -88139,6 +82787,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88345,7 +83014,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -88372,8 +83041,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -89788,7 +84457,7 @@ func _findOrCreateAggInfoColumn(tls *libc.TLS, pParse uintptr, pAggInfo uintptr, return } if k > mxTerm { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8549, libc.VaList(bp+8, mxTerm)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8540, libc.VaList(bp+8, mxTerm)) k = mxTerm } pCol = (*TAggInfo)(unsafe.Pointer(pAggInfo)).FaCol + uintptr(k)*32 @@ -89973,7 +84642,7 @@ func _analyzeAggregate(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int32) pItem1 += 32 } if i > mxTerm { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8549, libc.VaList(bp+80, mxTerm)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8540, libc.VaList(bp+80, mxTerm)) i = mxTerm } else { if i >= (*TAggInfo)(unsafe.Pointer(pAggInfo)).FnFunc { @@ -90261,8 +84930,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+6689, 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+8578, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6680, 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+8569, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -90281,9 +84950,9 @@ func _renameTestSchema(tls *libc.TLS, pParse uintptr, zDb uintptr, bTemp int32, bp := tls.Alloc(48) defer tls.Free(48) libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 0, 0x1) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8606, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8597, libc.VaList(bp+8, zDb, zDb, bTemp, zWhen, bNoDQS)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+8781, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8772, libc.VaList(bp+8, zDb, zWhen, bNoDQS)) } } @@ -90299,9 +84968,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+8955, libc.VaList(bp+8, zDb, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+8946, libc.VaList(bp+8, zDb, zDb)) if bTemp == 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9102, 0) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9093, 0) } } @@ -90357,7 +85026,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+9253, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9244, libc.VaList(bp+8, zName)) goto exit_rename_table } /* Make sure it is not a system table being altered, or a reserved name @@ -90366,11 +85035,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+9312, zName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+9303, zName) { goto exit_rename_table } if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9318, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+9309, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_rename_table } /* Invoke the authorization callback. */ @@ -90400,21 +85069,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+9345, libc.VaList(bp+8, zDb, zDb, zTabName, zName, libc.BoolInt32(iDb == int32(1)), zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9336, 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+9529, libc.VaList(bp+8, zDb, zName, zName, zName, nTabName, zTabName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9520, 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+9834, zDb) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+9850, libc.VaList(bp+8, zDb, zName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if _sqlite3FindTable(tls, db, __ccgo_ts+9825, zDb) != 0 { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9841, 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+9908, libc.VaList(bp+8, zDb, zTabName, zName, zTabName, zDb, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+9899, 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 @@ -90430,7 +85099,7 @@ 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+10173, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+10164, 0) goto exit_rename_table exit_rename_table: ; @@ -90447,7 +85116,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+10186, libc.VaList(bp+8, zErr, zDb, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10177, libc.VaList(bp+8, zErr, zDb, zTab)) } // C documentation @@ -90487,11 +85156,11 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr ** column must not be NULL. */ if libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10224, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10215, 0) return } if (*TTable)(unsafe.Pointer(pNew)).FpIndex != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10256, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10247, 0) return } if libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) == 0 { @@ -90507,10 +85176,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+10283) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10274) } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 && !(pDflt != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10342) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10333) } /* Ensure the default expression is something that sqlite3ValueFromExpr() ** can handle (i.e. not CURRENT_TIME etc.) @@ -90522,13 +85191,13 @@ func _sqlite3AlterFinishAddColumn(tls *libc.TLS, pParse uintptr, pColDef uintptr return } if !(*(*uintptr)(unsafe.Pointer(bp)) != 0) { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10395) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10386) } _sqlite3ValueFree(tls, *(*uintptr)(unsafe.Pointer(bp))) } } else { if libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_STORED) != 0 { - _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10441) + _sqlite3ErrorIfNotEmpty(tls, pParse, zDb, zTab, __ccgo_ts+10432) } } /* Modify the CREATE TABLE statement. */ @@ -90542,7 +85211,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+10468, libc.VaList(bp+16, zDb, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10459, libc.VaList(bp+16, zDb, (*(*struct { FaddColOffset int32 FpFKey uintptr FpDfltList uintptr @@ -90570,7 +85239,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 && libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 || (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Strict) != uint32(0) { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+10614, libc.VaList(bp+16, zTab, zDb)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+10605, libc.VaList(bp+16, zTab, zDb)) } } } @@ -90608,12 +85277,12 @@ func _sqlite3AlterBeginAddColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr) { goto exit_begin_add_column } if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10967, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10958, 0) goto exit_begin_add_column } /* Make sure this is not an attempt to ALTER a view. */ if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11001, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+10992, 0) goto exit_begin_add_column } if SQLITE_OK != _isAlterableTable(tls, pParse, pTab) { @@ -90637,7 +85306,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(libc.Uint32FromInt32(nAlloc))) - (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+11031, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + (*TTable)(unsafe.Pointer(pNew)).FzName = _sqlite3MPrintf(tls, db, __ccgo_ts+11022, 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 } @@ -90698,18 +85367,18 @@ func _isRealTable(tls *libc.TLS, pParse uintptr, pTab uintptr, bDrop int32) (r i _, _ = zType, v1 zType = uintptr(0) if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 11050 + zType = __ccgo_ts + 11041 } if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 11055 + zType = __ccgo_ts + 11046 } if zType != 0 { if bDrop != 0 { - v1 = __ccgo_ts + 11069 + v1 = __ccgo_ts + 11060 } else { - v1 = __ccgo_ts + 11086 + v1 = __ccgo_ts + 11077 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11104, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11095, libc.VaList(bp+8, v1, zType, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -90758,11 +85427,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld } iCol = _sqlite3ColumnIndex(tls, pTab, zOld) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11122, libc.VaList(bp+8, pOld)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11113, 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+1676, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+1667, 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 @@ -90774,11 +85443,11 @@ func _sqlite3AlterRenameColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pOld goto exit_rename_column } bQuote = libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pNew)).Fz))]) & int32(0x80) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11143, 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+11325, libc.VaList(bp+8, zDb, (*TTable)(unsafe.Pointer(pTab)).FzName, iCol, zNew, bQuote)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11134, 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+11316, 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+10173, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iSchema == int32(1)), __ccgo_ts+10164, int32(1)) goto exit_rename_column exit_rename_column: ; @@ -90788,31 +85457,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90829,16 +85473,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -91141,9 +85775,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91254,11 +85888,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 + 11456 + v1 = __ccgo_ts + 11447 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } - zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11458, libc.VaList(bp+8, zT, zN, v1, zWhen, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg)) + zErr = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+11449, 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) } @@ -91336,8 +85970,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+11481, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11472, int32(7)) != 0 { + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91356,7 +85990,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -91394,7 +86028,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+11489, libc.VaList(bp+8, zNew)) + zQuot = _sqlite3MPrintf(tls, db, __ccgo_ts+11480, libc.VaList(bp+8, zNew)) if zQuot == uintptr(0) { return int32(SQLITE_NOMEM) } else { @@ -91439,11 +86073,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 libc.Int32FromUint8(*(*uint8)(unsafe.Pointer((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fz + uintptr((*TRenameToken)(unsafe.Pointer(pBest)).Ft.Fn)))) == int32('\'') { - v1 = __ccgo_ts + 11456 + v1 = __ccgo_ts + 11447 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } - Xsqlite3_snprintf(tls, int32(nSql*libc.Int64FromInt32(2)), zBuf2, __ccgo_ts+11495, libc.VaList(bp+8, zBuf1, v1)) + Xsqlite3_snprintf(tls, int32(nSql*libc.Int64FromInt32(2)), zBuf2, __ccgo_ts+11486, libc.VaList(bp+8, zBuf1, v1)) zReplace = zBuf2 nReplace = int64(_sqlite3Strlen30(tls, zReplace)) } @@ -91931,7 +86565,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+1676, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) + _renameColumnParseError(tls, context, __ccgo_ts+1667, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp+32) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -92157,7 +86791,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+1676, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) + _renameColumnParseError(tls, context, __ccgo_ts+1667, *(*uintptr)(unsafe.Pointer(argv + 1*8)), *(*uintptr)(unsafe.Pointer(argv + 2*8)), bp) } else { Xsqlite3_result_error_code(tls, context, rc) } @@ -92420,7 +87054,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -92437,7 +87071,7 @@ func _dropColumnFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr (*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz-- } } - zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11500, libc.VaList(bp+432, int64((*TRenameToken)(unsafe.Pointer(pCol)).Ft.Fz)-int64(zSql), zSql, zEnd)) + zNew = _sqlite3MPrintf(tls, db, __ccgo_ts+11491, 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 @@ -92492,23 +87126,23 @@ func _sqlite3AlterDropColumn(tls *libc.TLS, pParse uintptr, pSrc uintptr, pName } iCol = _sqlite3ColumnIndex(tls, pTab, zCol) if iCol < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11122, libc.VaList(bp+8, pName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11113, 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 libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&(libc.Int32FromInt32(COLFLAG_PRIMKEY)|libc.Int32FromInt32(COLFLAG_UNIQUE)) != 0 { if libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0 { - v1 = __ccgo_ts + 11507 + v1 = __ccgo_ts + 11498 } else { - v1 = __ccgo_ts + 5709 + v1 = __ccgo_ts + 5700 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11519, libc.VaList(bp+8, v1, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11510, 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+11547, libc.VaList(bp+8, zCol)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+11538, libc.VaList(bp+8, zCol)) goto exit_drop_column } /* Edit the sqlite_schema table */ @@ -92518,12 +87152,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+1676, 0) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+1667, 0) _renameFixQuotes(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1))) - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11595, libc.VaList(bp+8, zDb, iDb, iCol, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11586, 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+11716, int32(1)) + _renameTestSchema(tls, pParse, zDb, libc.BoolInt32(iDb == int32(1)), __ccgo_ts+11707, int32(1)) /* Edit rows of table on disk */ if (*TParse)(unsafe.Pointer(pParse)).FnErr == 0 && libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FcolFlags)&int32(COLFLAG_VIRTUAL) == 0 { pPk = uintptr(0) @@ -92631,27 +87265,27 @@ var _aAlterTableFuncs = [5]TFuncDef{ 0: { FnArg: int16(9), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11734, + FzName: __ccgo_ts + 11725, }, 1: { FnArg: int16(7), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11755, + FzName: __ccgo_ts + 11746, }, 2: { FnArg: int16(7), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11775, + FzName: __ccgo_ts + 11766, }, 3: { FnArg: int16(3), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11794, + FzName: __ccgo_ts + 11785, }, 4: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_INTERNAL) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT)), - FzName: __ccgo_ts + 11813, + FzName: __ccgo_ts + 11804, }, } @@ -92862,7 +87496,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+11916, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11907, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, _aTable[i].FzCols)) aRoot[i] = libc.Uint32FromInt32((*(*struct { FaddrCrTab int32 FregRowid int32 @@ -92878,10 +87512,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+11939, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab, zWhereType, zWhere)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11930, 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+11969, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, zTab)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11960, 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), libc.Int32FromUint32(aRoot[i]), iDb) @@ -92913,15 +87547,15 @@ var _aTable = [3]struct { FzCols uintptr }{ 0: { - FzName: __ccgo_ts + 11836, - FzCols: __ccgo_ts + 11849, + FzName: __ccgo_ts + 11827, + FzCols: __ccgo_ts + 11840, }, 1: { - FzName: __ccgo_ts + 11862, - FzCols: __ccgo_ts + 11875, + FzName: __ccgo_ts + 11853, + FzCols: __ccgo_ts + 11866, }, 2: { - FzName: __ccgo_ts + 11903, + FzName: __ccgo_ts + 11894, }, } @@ -92974,44 +87608,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -93224,7 +87820,7 @@ func _statInit(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statInitFuncdef = TFuncDef{ FnArg: int16(4), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11987, + FzName: __ccgo_ts + 11978, } func init() { @@ -93598,7 +88194,7 @@ func _statPush(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statPushFuncdef = TFuncDef{ FnArg: int16(libc.Int32FromInt32(2) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 11997, + FzName: __ccgo_ts + 11988, } func init() { @@ -93648,7 +88244,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+12007, libc.VaList(bp+72, v1)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+11998, libc.VaList(bp+72, v1)) i = 0 for { if !(i < (*TStatAccum)(unsafe.Pointer(p)).FnKeyCol) { @@ -93659,7 +88255,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+12012, libc.VaList(bp+72, iVal)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+12003, libc.VaList(bp+72, iVal)) goto _2 _2: ; @@ -93698,7 +88294,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+12018, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) + Xsqlite3_str_appendf(tls, bp+32, __ccgo_ts+12009, libc.VaList(bp+72, *(*TtRowcnt)(unsafe.Pointer(aCnt + uintptr(i1)*8)))) goto _3 _3: ; @@ -93716,7 +88312,7 @@ func _statGet(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { var _statGetFuncdef = TFuncDef{ FnArg: int16(libc.Int32FromInt32(1) + libc.Int32FromInt32(IsStat4)), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12024, + FzName: __ccgo_ts + 12015, } func init() { @@ -93782,7 +88378,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+12033, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { + if Xsqlite3_strlike(tls, __ccgo_ts+12024, (*TTable)(unsafe.Pointer(pTab)).FzName, uint32('\\')) == 0 { /* Do not gather statistics on system tables */ return } @@ -93796,7 +88392,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint return } (*TTable)(unsafe.Pointer(pStat1)).FzName = pStat1 + 1*120 - libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11836, uint64(13)) + libc.Xmemcpy(tls, (*TTable)(unsafe.Pointer(pStat1)).FzName, __ccgo_ts+11827, 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)) @@ -94029,7 +88625,7 @@ func _analyzeOneTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uint addrGotoEnd = 0 } _callStatGet(tls, pParse, regStat, STAT_GET_STAT1, regStat1) - _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12043, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12034, 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)) @@ -94120,7 +88716,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+12043, 0) + _sqlite3VdbeAddOp4(tls, v, int32(OP_MakeRecord), regTabname, int32(3), regTemp, __ccgo_ts+12034, 0) _sqlite3VdbeAddOp2(tls, v, int32(OP_NewRowid), iStatCur, regNewRowid) _sqlite3VdbeAddOp3(tls, v, int32(OP_Insert), iStatCur, regTemp, regNewRowid) _sqlite3VdbeChangeP5(tls, v, uint16(OPFLAG_APPEND)) @@ -94192,9 +88788,9 @@ func _analyzeTable(tls *libc.TLS, pParse uintptr, pTab uintptr, pOnlyIdx uintptr iStatCur = (*TParse)(unsafe.Pointer(pParse)).FnTab *(*int32)(unsafe.Pointer(pParse + 60)) += int32(3) if pOnlyIdx != 0 { - _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+12047) + _openStatTable(tls, pParse, iDb, iStatCur, (*TIndex)(unsafe.Pointer(pOnlyIdx)).FzName, __ccgo_ts+12038) } else { - _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12051) + _openStatTable(tls, pParse, iDb, iStatCur, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+12042) } _analyzeOneTable(tls, pParse, pTab, pOnlyIdx, iStatCur, (*TParse)(unsafe.Pointer(pParse)).FnMem+int32(1), (*TParse)(unsafe.Pointer(pParse)).FnTab) _loadAnalysis(tls, pParse, iDb) @@ -94302,13 +88898,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -94323,7 +88912,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 + 1676 + z = __ccgo_ts + 1667 } i = 0 for { @@ -94358,17 +88947,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+12055, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12046, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 2, 0x4) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+12066, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12057, z) == 0 { sz = _sqlite3Atoi(tls, z+uintptr(3)) if sz < int32(2) { sz = int32(2) } (*TIndex)(unsafe.Pointer(pIndex)).FszIdxRow = _sqlite3LogEst(tls, libc.Uint64FromInt32(sz)) } else { - if Xsqlite3_strglob(tls, __ccgo_ts+12076, z) == 0 { + if Xsqlite3_strglob(tls, __ccgo_ts+12067, z) == 0 { libc.SetBitFieldPtr16Uint32(pIndex+100, libc.Uint32FromInt32(1), 6, 0x40) } } @@ -94740,11 +89329,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&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_Stat4)) == uint32(0); v2 { - v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11862, zDb) + v1 = _sqlite3FindTable(tls, db, __ccgo_ts+11853, zDb) pStat4 = v1 } if v2 && v1 != uintptr(0) && libc.Int32FromUint8((*TTable)(unsafe.Pointer(pStat4)).FeTabType) == TABTYP_NORM { - rc = _loadStatTbl(tls, db, __ccgo_ts+12088, __ccgo_ts+12157, zDb) + rc = _loadStatTbl(tls, db, __ccgo_ts+12079, __ccgo_ts+12148, zDb) } return rc } @@ -94810,10 +89399,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+11836, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) + v3 = _sqlite3FindTable(tls, db, __ccgo_ts+11827, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase) pStat1 = v3 if v3 != 0 && libc.Int32FromUint8((*TTable)(unsafe.Pointer(pStat1)).FeTabType) == TABTYP_NORM { - zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12209, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+12200, libc.VaList(bp+24, (*(*TanalysisInfo)(unsafe.Pointer(bp))).FzDatabase)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -94926,7 +89515,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+6749, 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+6740, zName) == 0) } // C documentation @@ -94968,21 +89557,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 + 1676 + zFile = __ccgo_ts + 1667 } if zName == uintptr(0) { - zName = __ccgo_ts + 1676 + zName = __ccgo_ts + 1667 } 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+4071) + *(*uintptr)(unsafe.Pointer(bp + 32)) = Xsqlite3_vfs_find(tls, __ccgo_ts+4062) if *(*uintptr)(unsafe.Pointer(bp + 32)) == uintptr(0) { return } - rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12250, db, bp+40, 0, int32(SQLITE_OPEN_MAIN_DB)) + rc = _sqlite3BtreeOpen(tls, *(*uintptr)(unsafe.Pointer(bp + 32)), __ccgo_ts+12241, 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 { @@ -95013,7 +89602,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+12253, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12244, libc.VaList(bp+56, *(*int32)(unsafe.Pointer(db + 136 + 7*4)))) goto attach_error } i = 0 @@ -95022,7 +89611,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+12290, libc.VaList(bp+56, zName)) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12281, libc.VaList(bp+56, zName)) goto attach_error } goto _1 @@ -95078,7 +89667,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+12320, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12311, 0) } else { if rc == SQLITE_OK { (*TDb)(unsafe.Pointer(pNew)).FpSchema = _sqlite3SchemaGet(tls, db, (*TDb)(unsafe.Pointer(pNew)).FpBt) @@ -95086,7 +89675,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 && libc.Int32FromUint8((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pNew)).FpSchema)).Fenc) != libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12349, 0) + *(*uintptr)(unsafe.Pointer(bp + 24)) = _sqlite3MPrintf(tls, db, __ccgo_ts+12340, 0) rc = int32(SQLITE_ERROR) } } @@ -95130,10 +89719,10 @@ 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+12445, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12436, libc.VaList(bp+136, zName)) goto detach_error } if i < int32(2) { - Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12466, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12457, 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+12492, libc.VaList(bp+136, zName)) + Xsqlite3_snprintf(tls, int32(128), bp, __ccgo_ts+12483, libc.VaList(bp+136, zName)) goto detach_error } /* If any TEMP triggers reference the schema being detached, move those @@ -95298,7 +89887,7 @@ func _sqlite3Detach(tls *libc.TLS, pParse uintptr, pDbname uintptr) { var _detach_func = TFuncDef{ FnArg: int16(1), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12514, + FzName: __ccgo_ts + 12505, } func init() { @@ -95320,7 +89909,7 @@ func _sqlite3Attach(tls *libc.TLS, pParse uintptr, p uintptr, pDbname uintptr, p var _attach_func = TFuncDef{ FnArg: int16(3), FfuncFlags: uint32(SQLITE_UTF8), - FzName: __ccgo_ts + 12528, + FzName: __ccgo_ts + 12519, } func init() { @@ -95346,7 +89935,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+12542, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12533, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType)) return int32(WRC_Abort) } } @@ -95380,7 +89969,7 @@ func _fixSelectCb(tls *libc.TLS, p uintptr, pSelect uintptr) (r int32) { if libc.Int32FromUint8((*TDbFixer)(unsafe.Pointer(pFix)).FbTemp) == 0 && int32(*(*uint32)(unsafe.Pointer(pItem + 24 + 4))&0x4>>2) == 0 { if int32(*(*uint32)(unsafe.Pointer(pItem + 24 + 4))&0x10000>>16) == 0 && *(*uintptr)(unsafe.Pointer(pItem + 72)) != uintptr(0) { if iDb != _sqlite3FindDbName(tls, db, *(*uintptr)(unsafe.Pointer(pItem + 72))) { - _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12566, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, *(*uintptr)(unsafe.Pointer(pItem + 72)))) + _sqlite3ErrorMsg(tls, (*TDbFixer)(unsafe.Pointer(pFix)).FpParse, __ccgo_ts+12557, libc.VaList(bp+8, (*TDbFixer)(unsafe.Pointer(pFix)).FzType, (*TDbFixer)(unsafe.Pointer(pFix)).FpName, *(*uintptr)(unsafe.Pointer(pItem + 72)))) return int32(WRC_Abort) } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(pItem + 72))) @@ -95507,6 +90096,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95579,9 +90170,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95597,7 +90188,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+12612, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12603, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_ERROR) } @@ -95625,11 +90216,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+12635, libc.VaList(bp+8, zTab, zCol)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12626, libc.VaList(bp+8, zTab, zCol)) if (*Tsqlite3)(unsafe.Pointer(db)).FnDb > int32(2) || iDb != 0 { - z = Xsqlite3_mprintf(tls, __ccgo_ts+12641, libc.VaList(bp+8, zDb, z)) + z = Xsqlite3_mprintf(tls, __ccgo_ts+12632, libc.VaList(bp+8, zDb, z)) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12647, libc.VaList(bp+8, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12638, libc.VaList(bp+8, z)) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != int32(SQLITE_IGNORE) && rc != SQLITE_OK { @@ -95689,7 +90280,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 + 8130 + zCol = __ccgo_ts + 8121 } } if int32(SQLITE_IGNORE) == _sqlite3AuthReadCol(tls, pParse, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol, iDb) { @@ -95724,7 +90315,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+12674, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12665, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_AUTH) } else { if rc != SQLITE_OK && rc != int32(SQLITE_IGNORE) { @@ -95761,47 +90352,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96149,21 +90699,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+6749) == 0 { + if _sqlite3StrICmp(tls, zDatabase, __ccgo_ts+6740) == 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+6689, int32(7)) == 0 { + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6680, int32(7)) == 0 { if i == int32(1) { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6716+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6735+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6184+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6697) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6707+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6726+7) == 0 || _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6175+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6688) } } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6735+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6184) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6726+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32))).FpSchema+8, __ccgo_ts+6175) } } } @@ -96193,12 +90743,12 @@ func _sqlite3FindTable(tls *libc.TLS, db uintptr, zName uintptr, zDatabase uintp ; i++ } - if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6689, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6735+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6184) + if p == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6680, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6726+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FpSchema+8, __ccgo_ts+6175) } else { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6716+7) == 0 { - p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6697) + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6707+7) == 0 { + p = _sqlite3HashFind(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpSchema+8, __ccgo_ts+6688) } } } @@ -96236,7 +90786,7 @@ func _sqlite3LocateTable(tls *libc.TLS, pParse uintptr, flags Tu32, zName uintpt ** can be an eponymous virtual table. */ if libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_NO_VTAB) == 0 && libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 { pMod = _sqlite3HashFind(tls, db+576, zName) - if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12689, int32(7)) == 0 { + if pMod == uintptr(0) && Xsqlite3_strnicmp(tls, zName, __ccgo_ts+12680, int32(7)) == 0 { pMod = _sqlite3PragmaVtabRegister(tls, db, zName) } if pMod != 0 && _sqlite3VtabEponymousTableInit(tls, pParse, pMod) != 0 { @@ -96254,15 +90804,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 + 12697 + v1 = __ccgo_ts + 12688 } else { - v1 = __ccgo_ts + 12710 + v1 = __ccgo_ts + 12701 } zMsg = v1 if zDbase != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6953, libc.VaList(bp+8, zMsg, zDbase, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+6944, libc.VaList(bp+8, zMsg, zDbase, zName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7024, libc.VaList(bp+8, zMsg, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+7015, libc.VaList(bp+8, zMsg, zName)) } } else { } @@ -96300,12 +90850,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+6689, int32(7)) == 0 { - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6184+7) == 0 { - return __ccgo_ts + 6735 + if Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6680, int32(7)) == 0 { + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6175+7) == 0 { + return __ccgo_ts + 6726 } - if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6697+7) == 0 { - return __ccgo_ts + 6716 + if _sqlite3StrICmp(tls, zName+uintptr(7), __ccgo_ts+6688+7) == 0 { + return __ccgo_ts + 6707 } } return zName @@ -96429,9 +90979,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -96830,7 +91380,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+6184) + _sqlite3TableLock(tls, p, iDb, uint32(SCHEMA_ROOT), uint8(1), __ccgo_ts+6175) _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) @@ -96862,7 +91412,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+6749, zName) { + if i == 0 && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+6740, zName) { break } goto _1 @@ -96920,13 +91470,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+12724, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12715, 0) return -int32(1) } *(*uintptr)(unsafe.Pointer(pUnqual)) = pName2 iDb = _sqlite3FindDb(tls, db, pName1) if iDb < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12741, libc.VaList(bp+8, pName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12732, libc.VaList(bp+8, pName1)) return -int32(1) } } else { @@ -96970,12 +91520,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+1676, 0) /* corruptSchema() will supply the error */ + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1667, 0) /* corruptSchema() will supply the error */ return int32(SQLITE_ERROR) } } else { - if libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6689, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12761, libc.VaList(bp+8, zName)) + if libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 && 0 == Xsqlite3_strnicmp(tls, zName, __ccgo_ts+6680, int32(7)) || _sqlite3ReadOnlyShadowTables(tls, db) != 0 && _sqlite3ShadowTableName(tls, db, zName) != 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12752, libc.VaList(bp+8, zName)) return int32(SQLITE_ERROR) } } @@ -97192,9 +91742,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui /* Special case: Parsing the sqlite_schema or sqlite_temp_schema schema */ iDb = libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb) if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v1 = __ccgo_ts + 6697 + v1 = __ccgo_ts + 6688 } else { - v1 = __ccgo_ts + 6184 + v1 = __ccgo_ts + 6175 } zName = _sqlite3DbStrDup(tls, db, v1) *(*uintptr)(unsafe.Pointer(bp)) = pName1 @@ -97207,7 +91757,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+12803, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12794, 0) return } if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && isTemp != 0 { @@ -97223,9 +91773,9 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui return } if isView != 0 { - v2 = __ccgo_ts + 11050 + v2 = __ccgo_ts + 11041 } else { - v2 = __ccgo_ts + 9312 + v2 = __ccgo_ts + 9303 } if _sqlite3CheckObjectName(tls, pParse, zName, v2, zName) != 0 { goto begin_table_error @@ -97235,9 +91785,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 + 6697 + v3 = __ccgo_ts + 6688 } else { - v3 = __ccgo_ts + 6184 + v3 = __ccgo_ts + 6175 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto begin_table_error @@ -97261,11 +91811,11 @@ func _sqlite3StartTable(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 ui if pTable != 0 { if !(noErr != 0) { if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTable)).FeTabType) == int32(TABTYP_VIEW) { - v4 = __ccgo_ts + 11050 + v4 = __ccgo_ts + 11041 } else { - v4 = __ccgo_ts + 9312 + v4 = __ccgo_ts + 9303 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12844, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12835, libc.VaList(bp+16, v4, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -97273,7 +91823,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+12865, libc.VaList(bp+16, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12856, libc.VaList(bp+16, zName)) goto begin_table_error } } @@ -97440,7 +91990,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+12900, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12891, 0) } else { } (*TParse)(unsafe.Pointer(pParse)).FbReturning = uint8(1) @@ -97458,7 +92008,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+12934, libc.VaList(bp+8, pParse)) + Xsqlite3_snprintf(tls, int32(40), pRet+196, __ccgo_ts+12925, 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) @@ -97505,7 +92055,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+12954, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12945, libc.VaList(bp+40, (*TTable)(unsafe.Pointer(p)).FzName)) return } if !(libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -97515,12 +92065,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+12977, 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+12968, int32(6)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(6) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && libc.Int32FromUint8(_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+12984, 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+12975, int32(9)) == 0 { (*(*TToken)(unsafe.Pointer(bp + 16))).Fn -= uint32(9) for (*(*TToken)(unsafe.Pointer(bp + 16))).Fn > uint32(0) && libc.Int32FromUint8(_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-- @@ -97563,7 +92113,7 @@ func _sqlite3AddColumn(tls *libc.TLS, pParse uintptr, _sName TToken, _sType TTok *(*uint8)(unsafe.Pointer(z + uintptr((*(*TToken)(unsafe.Pointer(bp))).Fn))) = uint8(0) _sqlite3Dequote(tls, z) if (*TTable)(unsafe.Pointer(p)).FnCol != 0 && _sqlite3ColumnIndex(tls, p, z) >= 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12994, libc.VaList(bp+40, z)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12985, libc.VaList(bp+40, z)) _sqlite3DbFree(tls, db, z) return } @@ -97775,10 +92325,10 @@ func _sqlite3AddDefaultValue(tls *libc.TLS, pParse uintptr, pExpr uintptr, zStar isInit = libc.BoolInt32((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 && libc.Int32FromUint8((*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, libc.Uint8FromInt32(isInit)) != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13020, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13011, libc.VaList(bp+80, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } else { if libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13065, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13056, 0) } else { libc.Xmemset(tls, bp, 0, uint64(72)) (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_SPAN) @@ -97836,7 +92386,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 libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13106, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13097, 0) } } @@ -97873,7 +92423,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+13158, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13149, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto primary_key_exit } *(*Tu32)(unsafe.Pointer(pTab + 48)) |= uint32(TF_HasPrimaryKey) @@ -97918,7 +92468,7 @@ func _sqlite3AddPrimaryKey(tls *libc.TLS, pParse uintptr, pList uintptr, onError _sqlite3HasExplicitNulls(tls, pParse, pList) } else { if autoInc != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13199, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13190, 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) @@ -98039,17 +92589,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 libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).FeParseMode) == int32(PARSE_MODE_DECLARE_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13255, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13246, 0) goto generated_done } if libc.Int32FromUint16((*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+13298, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(7) && Xsqlite3_strnicmp(tls, __ccgo_ts+13289, (*TToken)(unsafe.Pointer(pType)).Fz, int32(7)) == 0 { /* no-op */ } else { - if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13306, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { + if (*TToken)(unsafe.Pointer(pType)).Fn == uint32(6) && Xsqlite3_strnicmp(tls, __ccgo_ts+13297, (*TToken)(unsafe.Pointer(pType)).Fz, int32(6)) == 0 { eType = uint8(COLFLAG_STORED) } else { goto generated_error @@ -98081,7 +92631,7 @@ func _sqlite3AddGenerated(tls *libc.TLS, pParse uintptr, pExpr uintptr, pType ui goto generated_error generated_error: ; - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13313, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13304, libc.VaList(bp+8, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) goto generated_done generated_done: ; @@ -98245,13 +92795,13 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } n += int64(_identLength(tls, (*TTable)(unsafe.Pointer(p)).FzName)) if n < int64(50) { - zSep = __ccgo_ts + 1676 - zSep2 = __ccgo_ts + 13344 - zEnd = __ccgo_ts + 5210 + zSep = __ccgo_ts + 1667 + zSep2 = __ccgo_ts + 13335 + zEnd = __ccgo_ts + 5201 } else { - zSep = __ccgo_ts + 13346 - zSep2 = __ccgo_ts + 13350 - zEnd = __ccgo_ts + 13355 + zSep = __ccgo_ts + 13337 + zSep2 = __ccgo_ts + 13341 + zEnd = __ccgo_ts + 13346 } n += int64(int32(35) + int32(6)*int32((*TTable)(unsafe.Pointer(p)).FnCol)) zStmt = _sqlite3DbMallocRaw(tls, uintptr(0), libc.Uint64FromInt64(n)) @@ -98259,7 +92809,7 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { _sqlite3OomFault(tls, db) return uintptr(0) } - libc.Xmemcpy(tls, zStmt, __ccgo_ts+13358, uint64(13)) + libc.Xmemcpy(tls, zStmt, __ccgo_ts+13349, uint64(13)) *(*int32)(unsafe.Pointer(bp)) = int32(13) _identPut(tls, zStmt, bp, (*TTable)(unsafe.Pointer(p)).FzName) v2 = *(*int32)(unsafe.Pointer(bp)) @@ -98292,12 +92842,12 @@ func _createTableStmt(tls *libc.TLS, db uintptr, p uintptr) (r uintptr) { } var _azType1 = [6]uintptr{ - 0: __ccgo_ts + 1676, - 1: __ccgo_ts + 13372, - 2: __ccgo_ts + 13378, - 3: __ccgo_ts + 13383, - 4: __ccgo_ts + 13388, - 5: __ccgo_ts + 13378, + 0: __ccgo_ts + 1667, + 1: __ccgo_ts + 13363, + 2: __ccgo_ts + 13369, + 3: __ccgo_ts + 13374, + 4: __ccgo_ts + 13379, + 5: __ccgo_ts + 13369, } // C documentation @@ -98910,7 +93460,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { if pSelect != 0 || !(libc.Int32FromUint8((*TTable)(unsafe.Pointer(p)).FeTabType) == libc.Int32FromInt32(TABTYP_NORM)) && (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1676, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1667, 0) return } (*TTable)(unsafe.Pointer(p)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum @@ -98937,9 +93487,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 libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_HASTYPE) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13394, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1676))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13385, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName, _sqlite3ColumnType(tls, pCol, __ccgo_ts+1667))) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13427, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13418, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) } return } else { @@ -98960,11 +93510,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+13454, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13445, 0) return } if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_HasPrimaryKey) == uint32(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13504, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13495, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)) return } *(*Tu32)(unsafe.Pointer(p + 48)) |= libc.Uint32FromInt32(libc.Int32FromInt32(TF_WithoutRowid) | libc.Int32FromInt32(TF_NoVisibleRowid)) @@ -99011,7 +93561,7 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr ii1++ } if nNG == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13536, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13527, 0) return } } @@ -99045,12 +93595,12 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr */ if libc.Int32FromUint8((*TTable)(unsafe.Pointer(p)).FeTabType) == TABTYP_NORM { /* A regular table */ - zType = __ccgo_ts + 9312 - zType2 = __ccgo_ts + 13580 + zType = __ccgo_ts + 9303 + zType2 = __ccgo_ts + 13571 } else { /* A view */ - zType = __ccgo_ts + 11050 - zType2 = __ccgo_ts + 13586 + zType = __ccgo_ts + 11041 + zType2 = __ccgo_ts + 13577 } /* If this is a CREATE TABLE xx AS SELECT ..., execute the SELECT ** statement to populate the new table. The root-page number for the @@ -99141,13 +93691,13 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer((*TToken)(unsafe.Pointer(pEnd2)).Fz))) != int32(';') { n = int32(uint32(n) + (*TToken)(unsafe.Pointer(pEnd2)).Fn) } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13591, libc.VaList(bp+48, zType2, n, (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+13582, 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+13606, 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, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13597, 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, (*(*struct { FaddrCrTab int32 FregRowid int32 FregRoot int32 @@ -99166,15 +93716,15 @@ func _sqlite3EndTable(tls *libc.TLS, pParse uintptr, pCons uintptr, pEnd uintptr if (*TTable)(unsafe.Pointer(p)).FtabFlags&uint32(TF_Autoincrement) != uint32(0) && !(libc.Int32FromUint8((*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+13704, libc.VaList(bp+48, (*TDb)(unsafe.Pointer(pDb)).FzDbSName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13695, 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+13746, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(p)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+13737, 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(0x0001), 0, 0, _sqlite3MPrintf(tls, db, __ccgo_ts+13780, 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+13771, 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. @@ -99192,7 +93742,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+9834) == 0 { + if libc.Xstrcmp(tls, (*TTable)(unsafe.Pointer(p)).FzName, __ccgo_ts+9825) == 0 { (*TSchema)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FpSchema)).FpSeqTab = p } } @@ -99225,7 +93775,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+13801, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13792, 0) goto create_view_fail } _sqlite3StartTable(tls, pParse, pName1, pName2, isTemp, int32(1), 0, noErr) @@ -99242,7 +93792,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+11050, *(*uintptr)(unsafe.Pointer(bp + 112))) + _sqlite3FixInit(tls, bp+16, pParse, iDb, __ccgo_ts+11041, *(*uintptr)(unsafe.Pointer(bp + 112))) if _sqlite3FixSelect(tls, bp+16, pSelect) != 0 { goto create_view_fail } @@ -99339,7 +93889,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+13837, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13828, 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. @@ -99523,7 +94073,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+13867, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+13858, 0) } _sqlite3VdbeAddOp3(tls, v, int32(OP_Destroy), iTable, r1, iDb) _sqlite3MayAbort(tls, pParse) @@ -99536,7 +94086,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+13882, 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+13873, 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) } @@ -99619,9 +94169,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+13949, libc.VaList(bp+32, i)) + Xsqlite3_snprintf(tls, int32(24), bp, __ccgo_ts+13940, libc.VaList(bp+32, i)) if _sqlite3FindTable(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, bp, zDbName) != 0 { - _sqlite3NestedParse(tls, pParse, __ccgo_ts+11939, libc.VaList(bp+32, zDbName, bp, zType, zName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+11930, libc.VaList(bp+32, zDbName, bp, zType, zName)) } goto _1 _1: @@ -99662,7 +94212,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+13963, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13954, 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 @@ -99671,7 +94221,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+14008, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+13999, libc.VaList(bp+8, (*TDb)(unsafe.Pointer(pDb)).FzDbSName, (*TTable)(unsafe.Pointer(pTab)).FzName)) if !(isView != 0) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) { _destroyTable(tls, pParse, pTab) } @@ -99706,11 +94256,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+6689, int32(7)) == 0 { - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3522, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6680, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+3513, int32(4)) == 0 { return 0 } - if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7491, int32(10)) == 0 { + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName+uintptr(7), __ccgo_ts+7482, int32(10)) == 0 { return 0 } return int32(1) @@ -99765,9 +94315,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 + 6697 + v1 = __ccgo_ts + 6688 } else { - v1 = __ccgo_ts + 6184 + v1 = __ccgo_ts + 6175 } zTab = v1 zDb = (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName @@ -99800,18 +94350,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+14075, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14066, 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 && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14103, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14094, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } if !(isView != 0) && libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14137, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14128, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_drop_table } /* Generate code to remove the table from the schema table @@ -99821,7 +94371,7 @@ 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+12051, (*TTable)(unsafe.Pointer(pTab)).FzName) + _sqlite3ClearStatTables(tls, pParse, iDb, __ccgo_ts+12042, (*TTable)(unsafe.Pointer(pTab)).FzName) _sqlite3FkDropTable(tls, pParse, pName, pTab) } _sqlite3CodeDropTable(tls, pParse, pTab, iDb, isView) @@ -99869,13 +94419,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+14169, libc.VaList(bp+8, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(p)).FaCol + uintptr(iCol)*16))).FzCnName, pTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14160, 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+14232, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14223, 0) goto fk_end } else { nCol = (*TExprList)(unsafe.Pointer(pFromCol)).FnExpr @@ -99938,7 +94488,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+14326, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14317, libc.VaList(bp+8, (*(*TExprList_item)(unsafe.Pointer(pFromCol + 8 + uintptr(i)*32))).FzEName)) goto fk_end } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= int32(PARSE_MODE_RENAME) { @@ -100198,11 +94748,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 libc.Int32FromUint8(sf) == 0 || libc.Int32FromUint8(sf) == int32(3) { - v2 = __ccgo_ts + 14372 + v2 = __ccgo_ts + 14363 } else { - v2 = __ccgo_ts + 14378 + v2 = __ccgo_ts + 14369 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14383, libc.VaList(bp+8, v2)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14374, libc.VaList(bp+8, v2)) return int32(1) } goto _1 @@ -100280,7 +94830,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u iDb = int32(1) } } - _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14411, *(*uintptr)(unsafe.Pointer(bp + 96))) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+14402, *(*uintptr)(unsafe.Pointer(bp + 96))) if _sqlite3FixSrcList(tls, bp, pTblName) != 0 { /* Because the parser constructs pTblName from a single identifier, ** sqlite3FixSrcList can never fail. */ @@ -100290,7 +94840,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+14417, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14408, 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)) { @@ -100304,16 +94854,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+6689, int32(7)) == 0 && libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14467, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6680, int32(7)) == 0 && libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy) == 0 && pTblName != uintptr(0) { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14458, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto exit_create_index } if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14495, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14486, 0) goto exit_create_index } if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14520, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14511, 0) goto exit_create_index } /* @@ -100334,19 +94884,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+14411, (*TTable)(unsafe.Pointer(pTab)).FzName) { + if SQLITE_OK != _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+14402, (*TTable)(unsafe.Pointer(pTab)).FzName) { goto exit_create_index } if !(libc.Int32FromUint8((*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+14554, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14545, 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+14588, libc.VaList(bp+136, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14579, libc.VaList(bp+136, zName)) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) _sqlite3ForceNotReadOnly(tls, pParse) @@ -100367,7 +94917,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+14612, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+14603, libc.VaList(bp+136, (*TTable)(unsafe.Pointer(pTab)).FzName, n)) if zName == uintptr(0) { goto exit_create_index } @@ -100385,9 +94935,9 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u if !(libc.Int32FromUint8((*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 + 6697 + v2 = __ccgo_ts + 6688 } else { - v2 = __ccgo_ts + 6184 + v2 = __ccgo_ts + 6175 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v2, uintptr(0), zDb) != 0 { goto exit_create_index @@ -100415,7 +94965,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+14411) + _sqlite3ExprListCheckLength(tls, pParse, pList, __ccgo_ts+14402) if (*TParse)(unsafe.Pointer(pParse)).FnErr != 0 { goto exit_create_index } @@ -100499,7 +95049,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u pCExpr = _sqlite3ExprSkipCollate(tls, (*TExprList_item)(unsafe.Pointer(pListItem)).FpExpr) if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pCExpr)).Fop) != int32(TK_COLUMN) { if pTab == (*TParse)(unsafe.Pointer(pParse)).FpNewTable { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14635, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14626, 0) goto exit_create_index } if (*TIndex)(unsafe.Pointer(pIndex)).FaColExpr == uintptr(0) { @@ -100646,7 +95196,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u ** explicitly specified behavior for the index. */ if !(libc.Int32FromUint8((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) || libc.Int32FromUint8((*TIndex)(unsafe.Pointer(pIndex)).FonError) == int32(OE_Default)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14696, libc.VaList(bp+136, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14687, libc.VaList(bp+136, 0)) } if libc.Int32FromUint8((*TIndex)(unsafe.Pointer(pIdx)).FonError) == int32(OE_Default) { (*TIndex)(unsafe.Pointer(pIdx)).FonError = (*TIndex)(unsafe.Pointer(pIndex)).FonError @@ -100676,8 +95226,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+14738, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14729, 0) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -100717,11 +95267,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 + 1676 + v13 = __ccgo_ts + 1667 } else { - v13 = __ccgo_ts + 14755 + v13 = __ccgo_ts + 14746 } - zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14763, libc.VaList(bp+136, v13, n1, (*TToken)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 96)))).Fz)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+14754, 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(""); */ @@ -100729,7 +95279,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+14783, 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+14774, 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. @@ -100737,7 +95287,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+14842, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+14833, libc.VaList(bp+136, (*TIndex)(unsafe.Pointer(pIndex)).FzName)), uint16(0)) _sqlite3VdbeAddOp2(tls, v, int32(OP_Expire), 0, int32(1)) } _sqlite3VdbeJumpHere(tls, v, libc.Int32FromUint32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum)) @@ -100900,7 +95450,7 @@ func _sqlite3DropIndex(tls *libc.TLS, pParse uintptr, pName uintptr, ifExists in pIndex = _sqlite3FindIndex(tls, db, (*(*TSrcItem)(unsafe.Pointer(pName + 8))).FzName, *(*uintptr)(unsafe.Pointer(pName + 8 + 72))) if pIndex == uintptr(0) { if !(ifExists != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14869, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14860, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, *(*uintptr)(unsafe.Pointer(pName + 8 + 72))) _sqlite3ForceNotReadOnly(tls, pParse) @@ -100909,7 +95459,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+14887, libc.VaList(bp+8, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14878, libc.VaList(bp+8, 0)) goto exit_drop_index } iDb = _sqlite3SchemaToIndex(tls, db, (*TIndex)(unsafe.Pointer(pIndex)).FpSchema) @@ -100917,9 +95467,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 + 6697 + v1 = __ccgo_ts + 6688 } else { - v1 = __ccgo_ts + 6184 + v1 = __ccgo_ts + 6175 } zTab = v1 if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_DELETE), zTab, uintptr(0), zDb) != 0 { @@ -100935,8 +95485,8 @@ 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+14960, 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+12047, (*TIndex)(unsafe.Pointer(pIndex)).FzName) + _sqlite3NestedParse(tls, pParse, __ccgo_ts+14951, 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+12038, (*TIndex)(unsafe.Pointer(pIndex)).FzName) _sqlite3ChangeCookie(tls, pParse, iDb) _destroyRootPage(tls, pParse, libc.Int32FromUint32((*TIndex)(unsafe.Pointer(pIndex)).Ftnum), iDb) _sqlite3VdbeAddOp4(tls, v, int32(OP_DropIndex), iDb, 0, 0, (*TIndex)(unsafe.Pointer(pIndex)).FzName, 0) @@ -101126,7 +95676,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+15020, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15011, libc.VaList(bp+8, int32(SQLITE_MAX_SRCLIST))) return uintptr(0) } if nAlloc > int64(SQLITE_MAX_SRCLIST) { @@ -101434,11 +95984,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 + 15056 + v1 = __ccgo_ts + 15047 } else { - v1 = __ccgo_ts + 15059 + v1 = __ccgo_ts + 15050 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15065, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15056, libc.VaList(bp+8, v1)) goto append_from_error } p = _sqlite3SrcListAppend(tls, pParse, p, pTable, pDatabase) @@ -101637,7 +96187,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+15101, uintptr(0), uintptr(0)) != 0 { + if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), __ccgo_ts+15092, uintptr(0), uintptr(0)) != 0 { return } v = _sqlite3GetVdbe(tls, pParse) @@ -101684,9 +96234,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 + 15107 + v1 = __ccgo_ts + 15098 } else { - v1 = __ccgo_ts + 15116 + v1 = __ccgo_ts + 15107 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_TRANSACTION), v1, uintptr(0), uintptr(0)) != 0 { return @@ -101718,9 +96268,9 @@ func _sqlite3Savepoint(tls *libc.TLS, pParse uintptr, op int32, pName uintptr) { } var _az = [3]uintptr{ - 0: __ccgo_ts + 15101, - 1: __ccgo_ts + 15123, - 2: __ccgo_ts + 15107, + 0: __ccgo_ts + 15092, + 1: __ccgo_ts + 15114, + 2: __ccgo_ts + 15098, } // C documentation @@ -101740,7 +96290,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+15131, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15122, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = rc return int32(1) } @@ -101924,7 +96474,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+15201, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+15192, libc.VaList(bp+40, (*TIndex)(unsafe.Pointer(pIdx)).FzName)) } else { j = 0 for { @@ -101933,10 +96483,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+15212, int32(2)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+15203, int32(2)) } Xsqlite3_str_appendall(tls, bp, (*TTable)(unsafe.Pointer(pTab)).FzName) - Xsqlite3_str_append(tls, bp, __ccgo_ts+1715, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+1706, int32(1)) Xsqlite3_str_appendall(tls, bp, zCol) goto _1 _1: @@ -101965,10 +96515,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+12635, 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+12626, 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+15331, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15322, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } return 0 } @@ -103076,11 +97626,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+15364, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15355, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } if libc.Int32FromUint8((*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+15393, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15384, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(1) } return 0 @@ -103483,7 +98033,7 @@ func _sqlite3DeleteFrom(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** invoke the callback function. */ if memCnt != 0 { - _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15431) + _sqlite3CodeChangeCount(tls, v, memCnt, __ccgo_ts+15422) } goto delete_from_cleanup delete_from_cleanup: @@ -103631,7 +98181,7 @@ func _sqlite3GenerateRowDelete(tls *libc.TLS, pParse uintptr, pTab uintptr, pTri v3 = 0 } _sqlite3VdbeAddOp2(tls, v, int32(OP_Delete), iDataCur, v3) - if libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11836) { + if libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).Fnested) == 0 || 0 == Xsqlite3_stricmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+11827) { _sqlite3VdbeAppendP4(tls, v, pTab, -int32(5)) } if libc.Int32FromUint8(eMode) != ONEPASS_OFF { @@ -103935,11 +98485,11 @@ func _typeofFunc(tls *libc.TLS, context uintptr, NotUsed int32, argv uintptr) { } var _azType2 = [5]uintptr{ - 0: __ccgo_ts + 6425, - 1: __ccgo_ts + 6420, - 2: __ccgo_ts + 8422, - 3: __ccgo_ts + 8417, - 4: __ccgo_ts + 1662, + 0: __ccgo_ts + 6416, + 1: __ccgo_ts + 6411, + 2: __ccgo_ts + 8413, + 3: __ccgo_ts + 8408, + 4: __ccgo_ts + 1653, } // C documentation @@ -104053,7 +98603,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+15444, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15435, -int32(1)) return } iVal = -iVal @@ -104373,7 +98923,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+15461, libc.VaList(bp+16, int32(n), *(*float64)(unsafe.Pointer(bp)))) + zBuf = Xsqlite3_mprintf(tls, __ccgo_ts+15452, libc.VaList(bp+16, int32(n), *(*float64)(unsafe.Pointer(bp)))) if zBuf == uintptr(0) { Xsqlite3_result_error_nomem(tls, context) return @@ -104953,7 +99503,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+15467, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15458, -int32(1)) return } if argc == int32(3) { @@ -104965,7 +99515,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+15500, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15491, -int32(1)) return } escape = _sqlite3Utf8Read(tls, bp+8) @@ -105047,7 +99597,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+3899, 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+3890, libc.VaList(bp+8, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv + 1*8))))) } // C documentation @@ -105134,17 +99684,17 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr, bEscape int switch Xsqlite3_value_type(tls, pValue) { case int32(SQLITE_FLOAT): r1 = Xsqlite3_value_double(tls, pValue) - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15545, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15536, libc.VaList(bp+16, r1)) zVal = Xsqlite3_str_value(tls, pStr) if zVal != 0 { _sqlite3AtoF(tls, zVal, bp, libc.Int32FromUint32((*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+15553, libc.VaList(bp+16, r1)) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+15544, libc.VaList(bp+16, r1)) } } case int32(SQLITE_INTEGER): - Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1437, libc.VaList(bp+16, Xsqlite3_value_int64(tls, pValue))) + Xsqlite3_str_appendf(tls, pStr, __ccgo_ts+1428, 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)) @@ -105173,13 +99723,13 @@ func _sqlite3QuoteValue(tls *libc.TLS, pStr uintptr, pValue uintptr, bEscape int case int32(SQLITE_TEXT): zArg = Xsqlite3_value_text(tls, pValue) if bEscape != 0 { - v2 = __ccgo_ts + 15561 + v2 = __ccgo_ts + 15552 } else { - v2 = __ccgo_ts + 15565 + v2 = __ccgo_ts + 15556 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+16, zArg)) default: - Xsqlite3_str_append(tls, pStr, __ccgo_ts+1677, int32(4)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+1668, int32(4)) break } } @@ -105311,7 +99861,7 @@ func _unistrFunc(tls *libc.TLS, context uintptr, argc int32, argv uintptr) { unistr_error: ; Xsqlite3_free(tls, zOut) - Xsqlite3_result_error(tls, context, __ccgo_ts+15568, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15559, -int32(1)) return } @@ -105551,7 +100101,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 + 1676 + zPass = __ccgo_ts + 1667 nPass = 0 *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(argv))) nHex = Xsqlite3_value_bytes(tls, *(*uintptr)(unsafe.Pointer(argv))) @@ -105864,7 +100414,7 @@ var _lenOne = [1]uint32{ } var _azOne = [1]uintptr{ - 0: __ccgo_ts + 11456, + 0: __ccgo_ts + 11447, } // C documentation @@ -105932,7 +100482,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+1676) + _concatFuncCore(tls, context, argc, argv, 0, __ccgo_ts+1667) } // C documentation @@ -105978,7 +100528,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 + 1676 + zIn = __ccgo_ts + 1667 } i = 0 for { @@ -106024,7 +100574,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+15591, int32(4), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, context, __ccgo_ts+15582, int32(4), libc.UintptrFromInt32(0)) } } @@ -106085,7 +100635,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+12674, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+12665, -int32(1)) return } if argc == int32(2) { @@ -106116,17 +100666,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106277,7 +100816,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+15444, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+15435, -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) @@ -106340,12 +100879,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -106607,7 +101140,7 @@ func _groupConcatValue(tls *libc.TLS, context uintptr) { Xsqlite3_result_error_nomem(tls, context) } else { if (*TGroupConcatCtx)(unsafe.Pointer(pGCC)).FnAccum > 0 && (*TStrAccum)(unsafe.Pointer(pAccum)).FnChar == uint32(0) { - Xsqlite3_result_text(tls, context, __ccgo_ts+1676, int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, context, __ccgo_ts+1667, int32(1), libc.UintptrFromInt32(0)) } else { zText = Xsqlite3_str_value(tls, pAccum) Xsqlite3_result_text(tls, context, zText, libc.Int32FromUint32((*TStrAccum)(unsafe.Pointer(pAccum)).FnChar), uintptr(-libc.Int32FromInt32(1))) @@ -106627,7 +101160,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+15596, int32(2)) + rc = Xsqlite3_overload_function(tls, db, __ccgo_ts+15587, int32(2)) if rc == int32(SQLITE_NOMEM) { _sqlite3OomFault(tls, db) } @@ -106656,8 +101189,8 @@ func _sqlite3RegisterLikeFunctions(tls *libc.TLS, db uintptr, caseSensitive int3 if !(nArg <= int32(3)) { break } - _sqlite3CreateFunc(tls, db, __ccgo_ts+15602, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) - pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15602, nArg, uint8(SQLITE_UTF8), uint8(0)) + _sqlite3CreateFunc(tls, db, __ccgo_ts+15593, nArg, int32(SQLITE_UTF8), pInfo, __ccgo_fp(_likeFunc), uintptr(0), uintptr(0), uintptr(0), uintptr(0), uintptr(0)) + pDef = _sqlite3FindFunction(tls, db, __ccgo_ts+15593, nArg, uint8(SQLITE_UTF8), uint8(0)) *(*Tu32)(unsafe.Pointer(pDef + 4)) |= libc.Uint32FromInt32(flags) *(*Tu32)(unsafe.Pointer(pDef + 4)) &= libc.Uint32FromInt32(^libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)) goto _1 @@ -106963,548 +101496,548 @@ var _aBuiltinFunc = [106]TFuncDef{ FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15607, + FzName: __ccgo_ts + 15598, }, 1: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15627, + FzName: __ccgo_ts + 15618, }, 2: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15640, + FzName: __ccgo_ts + 15631, }, 3: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15658, + FzName: __ccgo_ts + 15649, }, 4: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.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 + 15658, }, 5: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15675, + FzName: __ccgo_ts + 15666, }, 6: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_FUNC_UNSAFE)), - FzName: __ccgo_ts + 15675, + FzName: __ccgo_ts + 15666, }, 7: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15690, + FzName: __ccgo_ts + 15681, }, 8: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15716, + FzName: __ccgo_ts + 15707, }, 9: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15741, + FzName: __ccgo_ts + 15732, }, 10: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15750, + FzName: __ccgo_ts + 15741, }, 11: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15761, + FzName: __ccgo_ts + 15752, }, 12: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15768, + FzName: __ccgo_ts + 15759, }, 13: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15782, + FzName: __ccgo_ts + 15773, }, 14: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15782, + FzName: __ccgo_ts + 15773, }, 15: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15788, + FzName: __ccgo_ts + 15779, }, 16: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15788, + FzName: __ccgo_ts + 15779, }, 17: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15794, + FzName: __ccgo_ts + 15785, }, 18: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15794, + FzName: __ccgo_ts + 15785, }, 19: { FnArg: int16(-int32(3)), FfuncFlags: libc.Uint32FromInt32(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 + 15799, + FzName: __ccgo_ts + 15790, }, 20: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15799, + FzName: __ccgo_ts + 15790, }, 21: { FnArg: int16(-int32(3)), FfuncFlags: libc.Uint32FromInt32(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 + 15803, + FzName: __ccgo_ts + 15794, }, 22: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15803, + FzName: __ccgo_ts + 15794, }, 23: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15807, + FzName: __ccgo_ts + 15798, }, 24: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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) | libc.Int32FromInt32(SQLITE_SUBTYPE)), - FzName: __ccgo_ts + 15814, + FzName: __ccgo_ts + 15805, }, 25: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15822, + FzName: __ccgo_ts + 15813, }, 26: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 15829, + FzName: __ccgo_ts + 15820, }, 27: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15842, + FzName: __ccgo_ts + 15833, }, 28: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15848, + FzName: __ccgo_ts + 15839, }, 29: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15855, + FzName: __ccgo_ts + 15846, }, 30: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15862, + FzName: __ccgo_ts + 15853, }, 31: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15870, + FzName: __ccgo_ts + 15861, }, 32: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15875, + FzName: __ccgo_ts + 15866, }, 33: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15879, + FzName: __ccgo_ts + 15870, }, 34: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15879, + FzName: __ccgo_ts + 15870, }, 35: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15885, + FzName: __ccgo_ts + 15876, }, 36: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15891, + FzName: __ccgo_ts + 15882, }, 37: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15897, + FzName: __ccgo_ts + 15888, }, 38: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15901, + FzName: __ccgo_ts + 15892, }, 39: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15901, + FzName: __ccgo_ts + 15892, }, 40: { FnArg: int16(-int32(3)), FfuncFlags: libc.Uint32FromInt32(libc.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 + 15898, }, 41: { FnArg: int16(-int32(4)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15914, + FzName: __ccgo_ts + 15905, }, 42: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15924, + FzName: __ccgo_ts + 15915, }, 43: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15931, + FzName: __ccgo_ts + 15922, }, 44: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15938, + FzName: __ccgo_ts + 15929, }, 45: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15949, + FzName: __ccgo_ts + 15940, }, 46: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15956, + FzName: __ccgo_ts + 15947, }, 47: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_SLOCHNG) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 15971, + FzName: __ccgo_ts + 15962, }, 48: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15988, + FzName: __ccgo_ts + 15979, }, 49: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 15999, + FzName: __ccgo_ts + 15990, }, 50: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.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 + 15997, }, 51: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 16012, + FzName: __ccgo_ts + 16003, }, 52: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16025, + FzName: __ccgo_ts + 16016, }, 53: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16043, + FzName: __ccgo_ts + 16034, }, 54: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16051, + FzName: __ccgo_ts + 16042, }, 55: { FnArg: int16(3), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16065, + FzName: __ccgo_ts + 16056, }, 56: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16073, + FzName: __ccgo_ts + 16064, }, 57: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16082, + FzName: __ccgo_ts + 16073, }, 58: { FnArg: int16(3), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16082, + FzName: __ccgo_ts + 16073, }, 59: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16089, + FzName: __ccgo_ts + 16080, }, 60: { FnArg: int16(3), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16089, + FzName: __ccgo_ts + 16080, }, 61: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16099, + FzName: __ccgo_ts + 16090, }, 62: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16103, + FzName: __ccgo_ts + 16094, }, 63: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16109, + FzName: __ccgo_ts + 16100, }, 64: { FfuncFlags: libc.Uint32FromInt32(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 + 16113, + FzName: __ccgo_ts + 16104, }, 65: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 16113, + FzName: __ccgo_ts + 16104, }, 66: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16119, + FzName: __ccgo_ts + 16110, }, 67: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16119, + FzName: __ccgo_ts + 16110, }, 68: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL) | libc.Int32FromInt32(0)), - FzName: __ccgo_ts + 16132, + FzName: __ccgo_ts + 16123, }, 69: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 16143, + FzName: __ccgo_ts + 16134, }, 70: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 15602, + FzName: __ccgo_ts + 15593, }, 71: { FnArg: int16(3), FfuncFlags: libc.Uint32FromInt32(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 + 15602, + FzName: __ccgo_ts + 15593, }, 72: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16148, + FzName: __ccgo_ts + 16139, }, 73: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1249, + FzName: __ccgo_ts + 1240, }, 74: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 1257, + FzName: __ccgo_ts + 1248, }, 75: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16153, + FzName: __ccgo_ts + 16144, }, 76: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16159, + FzName: __ccgo_ts + 16150, }, 77: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 16162, + FzName: __ccgo_ts + 16153, }, 78: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 16166, + FzName: __ccgo_ts + 16157, }, 79: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 16172, + FzName: __ccgo_ts + 16163, }, 80: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16162, + FzName: __ccgo_ts + 16153, }, 81: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16177, + FzName: __ccgo_ts + 16168, }, 82: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16181, + FzName: __ccgo_ts + 16172, }, 83: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16185, + FzName: __ccgo_ts + 16176, }, 84: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16191, + FzName: __ccgo_ts + 16182, }, 85: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16195, + FzName: __ccgo_ts + 16186, }, 86: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16200, + FzName: __ccgo_ts + 16191, }, 87: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16205, + FzName: __ccgo_ts + 16196, }, 88: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16210, + FzName: __ccgo_ts + 16201, }, 89: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16216, + FzName: __ccgo_ts + 16207, }, 90: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16220, + FzName: __ccgo_ts + 16211, }, 91: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16224, + FzName: __ccgo_ts + 16215, }, 92: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16228, + FzName: __ccgo_ts + 16219, }, 93: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16233, + FzName: __ccgo_ts + 16224, }, 94: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16238, + FzName: __ccgo_ts + 16229, }, 95: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16243, + FzName: __ccgo_ts + 16234, }, 96: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16249, + FzName: __ccgo_ts + 16240, }, 97: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16255, + FzName: __ccgo_ts + 16246, }, 98: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16261, + FzName: __ccgo_ts + 16252, }, 99: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16266, + FzName: __ccgo_ts + 16257, }, 100: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16274, + FzName: __ccgo_ts + 16265, }, 101: { FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8)), - FzName: __ccgo_ts + 16282, + FzName: __ccgo_ts + 16273, }, 102: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_BUILTIN) | libc.Int32FromInt32(SQLITE_FUNC_CONSTANT) | libc.Int32FromInt32(SQLITE_UTF8) | libc.Int32FromInt32(0)*libc.Int32FromInt32(SQLITE_FUNC_NEEDCOLL)), - FzName: __ccgo_ts + 16285, + FzName: __ccgo_ts + 16276, }, 103: { FnArg: int16(-int32(4)), FfuncFlags: libc.Uint32FromInt32(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 + 6894, + FzName: __ccgo_ts + 6885, }, 104: { FnArg: int16(-int32(4)), FfuncFlags: libc.Uint32FromInt32(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 + 16290, + FzName: __ccgo_ts + 16281, }, 105: { FnArg: int16(-int32(4)), FfuncFlags: libc.Uint32FromInt32(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 + 16294, + FzName: __ccgo_ts + 16285, }, } @@ -107984,7 +102517,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+16297, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TFKey)(unsafe.Pointer(pFKey)).FpFrom)).FzName, (*TFKey)(unsafe.Pointer(pFKey)).FzTo)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16288, 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) @@ -109095,11 +103628,11 @@ func _fkActionTrigger(tls *libc.TLS, pParse uintptr, pTab uintptr, pFKey uintptr break } *(*TToken)(unsafe.Pointer(bp + 16)) = TToken{ - Fz: __ccgo_ts + 6760, + Fz: __ccgo_ts + 6751, Fn: uint32(3), } /* Literal "old" token */ *(*TToken)(unsafe.Pointer(bp + 32)) = TToken{ - Fz: __ccgo_ts + 6756, + Fz: __ccgo_ts + 6747, Fn: uint32(3), } /* tFromCol = OLD.tToCol */ if *(*uintptr)(unsafe.Pointer(bp + 8)) != 0 { @@ -109163,7 +103696,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_STRING), __ccgo_ts+5345) + pRaise = _sqlite3Expr(tls, db, int32(TK_STRING), __ccgo_ts+5336) pRaise = _sqlite3PExpr(tls, pParse, int32(TK_RAISE), pRaise, uintptr(0)) if pRaise != 0 { (*TExpr)(unsafe.Pointer(pRaise)).FaffExpr = uint8(OE_Abort) @@ -109627,7 +104160,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -109745,7 +104278,7 @@ func _sqlite3ComputeGeneratedColumns(tls *libc.TLS, pParse uintptr, iRegStore in } } if pRedo != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8387, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+8378, libc.VaList(bp+56, (*TColumn)(unsafe.Pointer(pRedo)).FzCnName)) } (*TParse)(unsafe.Pointer(pParse)).FiSelfTab = 0 } @@ -110478,7 +105011,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i } if libc.Int32FromUint16((*(*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+16342, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16333, libc.VaList(bp+128, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto insert_cleanup } } else { @@ -110486,7 +105019,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin ipkColumn = i bIdListInOrder = uint8(0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16383, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*8))).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16374, libc.VaList(bp+128, pTabList+8, (*(*TIdList_item)(unsafe.Pointer(pColumn + 8 + uintptr(i)*8))).FzName)) libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 3, 0x8) goto insert_cleanup } @@ -110509,7 +105042,7 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin (*(*TSelectDest)(unsafe.Pointer(bp + 8))).FiSDParm = (*TSubquery)(unsafe.Pointer(pSubq)).FregReturn regFromSelect = (*TSubquery)(unsafe.Pointer(pSubq)).FregResult nColumn = (*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16415, libc.VaList(bp+128, pItem)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+16406, libc.VaList(bp+128, pItem)) if bIdListInOrder != 0 && nColumn == int32((*TTable)(unsafe.Pointer(pTab)).FnCol) { regData = regFromSelect regRowid = regData - int32(1) @@ -110626,12 +105159,12 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin } } if nColumn != int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16423, libc.VaList(bp+128, pTabList+8, int32((*TTable)(unsafe.Pointer(pTab)).FnCol)-nHidden, nColumn)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16414, 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+16475, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16466, libc.VaList(bp+128, nColumn, (*TIdList)(unsafe.Pointer(pColumn)).FnId)) goto insert_cleanup } /* Initialize the count of rows to be inserted @@ -110674,11 +105207,11 @@ func _sqlite3Insert(tls *libc.TLS, pParse uintptr, pTabList uintptr, pSelect uin } if pUpsert != 0 { if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16500, libc.VaList(bp+128, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16491, libc.VaList(bp+128, (*TTable)(unsafe.Pointer(pTab)).FzName)) goto insert_cleanup } if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16546, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16537, 0) goto insert_cleanup } if _sqlite3HasExplicitNulls(tls, pParse, (*TUpsert)(unsafe.Pointer(pUpsert)).FpUpsertTarget) != 0 { @@ -110998,7 +105531,7 @@ insert_end: ** invoke the callback function. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16567) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+16558) } goto insert_cleanup insert_cleanup: @@ -111121,33 +105654,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -111394,7 +105900,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+12635, libc.VaList(bp+64, (*TTable)(unsafe.Pointer(pTab)).FzName, (*TColumn)(unsafe.Pointer(pCol)).FzCnName)) + zMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+12626, 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 && !(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zFile + uintptr(iFile)))) == libc.Int32FromUint8('/'))) { @@ -113630,7 +107814,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp iFile-- } iFile++ - if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16616, int32(3)) == 0 { + if Xsqlite3_strnicmp(tls, zFile+uintptr(iFile), __ccgo_ts+16607, int32(3)) == 0 { iFile += int32(3) } iEntry = int32(8) @@ -113650,7 +107834,7 @@ func _sqlite3LoadExtension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintp ; iFile++ } - libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16620, uint64(6)) + libc.Xmemcpy(tls, zAltEntry+uintptr(iEntry), __ccgo_ts+16611, uint64(6)) zEntry = zAltEntry xInit = _sqlite3OsDlSym(tls, pVfs, handle, zEntry) } @@ -113662,7 +107846,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, libc.Int32FromUint64(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16626, libc.VaList(bp+16, zEntry, zFile)) + Xsqlite3_snprintf(tls, libc.Int32FromUint64(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16617, libc.VaList(bp+16, zEntry, zFile)) _sqlite3OsDlError(tls, pVfs, libc.Int32FromUint64(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -113677,7 +107861,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+16669, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+16660, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3OsDlClose(tls, pVfs, handle) @@ -113708,7 +107892,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, libc.Int32FromUint64(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16701, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) + Xsqlite3_snprintf(tls, libc.Int32FromUint64(nMsg), *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+16692, libc.VaList(bp+16, int32(FILENAME_MAX), zFile)) _sqlite3OsDlError(tls, pVfs, libc.Int32FromUint64(nMsg-uint64(1)), *(*uintptr)(unsafe.Pointer(bp))) } } @@ -113717,7 +107901,7 @@ extension_not_found: /* Shared library endings to try if zFile cannot be loaded as written */ var _azEndings = [1]uintptr{ - 0: __ccgo_ts + 16581, + 0: __ccgo_ts + 16572, } func Xsqlite3_load_extension(tls *libc.TLS, db uintptr, zFile uintptr, zProc uintptr, pzErrMsg uintptr) (r int32) { @@ -113786,14 +107970,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113808,7 +107987,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113826,7 +108005,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -113841,7 +108020,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113851,6 +108030,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113862,7 +108043,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113874,7 +108055,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -113950,7 +108131,7 @@ func _sqlite3AutoLoadExtensions(tls *libc.TLS, db uintptr) { rc = v2 } if v3 && v2 != 0 { - _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16738, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+16729, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) go1 = 0 } Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -114004,63 +108185,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 + 5601, - 1: __ccgo_ts + 16777, - 2: __ccgo_ts + 9312, - 3: __ccgo_ts + 16781, - 4: __ccgo_ts + 16786, - 5: __ccgo_ts + 16789, - 6: __ccgo_ts + 16799, - 7: __ccgo_ts + 16809, - 8: __ccgo_ts + 16815, - 9: __ccgo_ts + 16819, - 10: __ccgo_ts + 16824, - 11: __ccgo_ts + 16829, - 12: __ccgo_ts + 16837, - 13: __ccgo_ts + 16848, - 14: __ccgo_ts + 16851, - 15: __ccgo_ts + 16819, - 16: __ccgo_ts + 16858, - 17: __ccgo_ts + 16824, - 18: __ccgo_ts + 16866, - 19: __ccgo_ts + 16870, - 20: __ccgo_ts + 16875, - 21: __ccgo_ts + 16881, - 22: __ccgo_ts + 16819, - 23: __ccgo_ts + 16824, - 24: __ccgo_ts + 16888, - 25: __ccgo_ts + 16893, - 26: __ccgo_ts + 16896, - 27: __ccgo_ts + 16903, - 28: __ccgo_ts + 16815, - 29: __ccgo_ts + 16819, - 30: __ccgo_ts + 16909, - 31: __ccgo_ts + 16914, - 32: __ccgo_ts + 16919, - 33: __ccgo_ts + 16777, - 34: __ccgo_ts + 16819, - 35: __ccgo_ts + 16923, - 36: __ccgo_ts + 16930, - 37: __ccgo_ts + 16937, - 38: __ccgo_ts + 12051, - 39: __ccgo_ts + 12047, - 40: __ccgo_ts + 16945, - 41: __ccgo_ts + 16950, - 42: __ccgo_ts + 16955, - 43: __ccgo_ts + 9312, - 44: __ccgo_ts + 16960, - 45: __ccgo_ts + 5604, - 46: __ccgo_ts + 16966, - 47: __ccgo_ts + 16971, - 48: __ccgo_ts + 16162, - 49: __ccgo_ts + 16976, - 50: __ccgo_ts + 16777, - 51: __ccgo_ts + 16819, - 52: __ccgo_ts + 16989, - 53: __ccgo_ts + 16994, - 54: __ccgo_ts + 17003, - 55: __ccgo_ts + 17010, - 56: __ccgo_ts + 17021, + 0: __ccgo_ts + 5592, + 1: __ccgo_ts + 16768, + 2: __ccgo_ts + 9303, + 3: __ccgo_ts + 16772, + 4: __ccgo_ts + 16777, + 5: __ccgo_ts + 16780, + 6: __ccgo_ts + 16790, + 7: __ccgo_ts + 16800, + 8: __ccgo_ts + 16806, + 9: __ccgo_ts + 16810, + 10: __ccgo_ts + 16815, + 11: __ccgo_ts + 16820, + 12: __ccgo_ts + 16828, + 13: __ccgo_ts + 16839, + 14: __ccgo_ts + 16842, + 15: __ccgo_ts + 16810, + 16: __ccgo_ts + 16849, + 17: __ccgo_ts + 16815, + 18: __ccgo_ts + 16857, + 19: __ccgo_ts + 16861, + 20: __ccgo_ts + 16866, + 21: __ccgo_ts + 16872, + 22: __ccgo_ts + 16810, + 23: __ccgo_ts + 16815, + 24: __ccgo_ts + 16879, + 25: __ccgo_ts + 16884, + 26: __ccgo_ts + 16887, + 27: __ccgo_ts + 16894, + 28: __ccgo_ts + 16806, + 29: __ccgo_ts + 16810, + 30: __ccgo_ts + 16900, + 31: __ccgo_ts + 16905, + 32: __ccgo_ts + 16910, + 33: __ccgo_ts + 16768, + 34: __ccgo_ts + 16810, + 35: __ccgo_ts + 16914, + 36: __ccgo_ts + 16921, + 37: __ccgo_ts + 16928, + 38: __ccgo_ts + 12042, + 39: __ccgo_ts + 12038, + 40: __ccgo_ts + 16936, + 41: __ccgo_ts + 16941, + 42: __ccgo_ts + 16946, + 43: __ccgo_ts + 9303, + 44: __ccgo_ts + 16951, + 45: __ccgo_ts + 5595, + 46: __ccgo_ts + 16957, + 47: __ccgo_ts + 16962, + 48: __ccgo_ts + 16153, + 49: __ccgo_ts + 16967, + 50: __ccgo_ts + 16768, + 51: __ccgo_ts + 16810, + 52: __ccgo_ts + 16980, + 53: __ccgo_ts + 16985, + 54: __ccgo_ts + 16994, + 55: __ccgo_ts + 17001, + 56: __ccgo_ts + 17012, } // C documentation @@ -114079,191 +108260,191 @@ type PragmaName = TPragmaName var _aPragmaName = [66]TPragmaName{ 0: { - FzName: __ccgo_ts + 17029, + FzName: __ccgo_ts + 17020, FePragTyp: uint8(PragTyp_ANALYSIS_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 1: { - FzName: __ccgo_ts + 17044, + FzName: __ccgo_ts + 17035, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_APPLICATION_ID), }, 2: { - FzName: __ccgo_ts + 17059, + FzName: __ccgo_ts + 17050, FePragTyp: uint8(PragTyp_AUTO_VACUUM), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 3: { - FzName: __ccgo_ts + 17071, + FzName: __ccgo_ts + 17062, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_AutoIndex), }, 4: { - FzName: __ccgo_ts + 17087, + FzName: __ccgo_ts + 17078, FePragTyp: uint8(PragTyp_BUSY_TIMEOUT), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(56), FnPragCName: uint8(1), }, 5: { - FzName: __ccgo_ts + 17010, + FzName: __ccgo_ts + 17001, FePragTyp: uint8(PragTyp_CACHE_SIZE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 6: { - FzName: __ccgo_ts + 17100, + FzName: __ccgo_ts + 17091, FePragTyp: uint8(PragTyp_CACHE_SPILL), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 7: { - FzName: __ccgo_ts + 17112, + FzName: __ccgo_ts + 17103, FePragTyp: uint8(PragTyp_CASE_SENSITIVE_LIKE), FmPragFlg: uint8(PragFlg_NoColumns), }, 8: { - FzName: __ccgo_ts + 17132, + FzName: __ccgo_ts + 17123, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CellSizeCk), }, 9: { - FzName: __ccgo_ts + 17148, + FzName: __ccgo_ts + 17139, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_CkptFullFSync), }, 10: { - FzName: __ccgo_ts + 17169, + FzName: __ccgo_ts + 17160, FePragTyp: uint8(PragTyp_COLLATION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(33), FnPragCName: uint8(2), }, 11: { - FzName: __ccgo_ts + 17184, + FzName: __ccgo_ts + 17175, FePragTyp: uint8(PragTyp_COMPILE_OPTIONS), FmPragFlg: uint8(PragFlg_Result0), }, 12: { - FzName: __ccgo_ts + 17200, + FzName: __ccgo_ts + 17191, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: libc.Uint64FromInt32(libc.Int32FromInt32(0x00001)) << libc.Int32FromInt32(32), }, 13: { - FzName: __ccgo_ts + 17214, + FzName: __ccgo_ts + 17205, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_DATA_VERSION), }, 14: { - FzName: __ccgo_ts + 17227, + FzName: __ccgo_ts + 17218, FePragTyp: uint8(PragTyp_DATABASE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(50), FnPragCName: uint8(3), }, 15: { - FzName: __ccgo_ts + 17241, + FzName: __ccgo_ts + 17232, FePragTyp: uint8(PragTyp_DEFAULT_CACHE_SIZE), FmPragFlg: libc.Uint8FromInt32(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 + 17260, + FzName: __ccgo_ts + 17251, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_DeferFKs), }, 17: { - FzName: __ccgo_ts + 17279, + FzName: __ccgo_ts + 17270, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_NullCallback), }, 18: { - FzName: __ccgo_ts + 17302, + FzName: __ccgo_ts + 17293, FePragTyp: uint8(PragTyp_ENCODING), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 19: { - FzName: __ccgo_ts + 17311, + FzName: __ccgo_ts + 17302, FePragTyp: uint8(PragTyp_FOREIGN_KEY_CHECK), FmPragFlg: libc.Uint8FromInt32(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 + 17329, + FzName: __ccgo_ts + 17320, FePragTyp: uint8(PragTyp_FOREIGN_KEY_LIST), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FnPragCName: uint8(8), }, 21: { - FzName: __ccgo_ts + 17346, + FzName: __ccgo_ts + 17337, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ForeignKeys), }, 22: { - FzName: __ccgo_ts + 17359, + FzName: __ccgo_ts + 17350, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_ReadOnly) | libc.Int32FromInt32(PragFlg_Result0)), }, 23: { - FzName: __ccgo_ts + 17374, + FzName: __ccgo_ts + 17365, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullColNames), }, 24: { - FzName: __ccgo_ts + 17392, + FzName: __ccgo_ts + 17383, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_FullFSync), }, 25: { - FzName: __ccgo_ts + 17402, + FzName: __ccgo_ts + 17393, FePragTyp: uint8(PragTyp_FUNCTION_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(15), FnPragCName: uint8(6), }, 26: { - FzName: __ccgo_ts + 17416, + FzName: __ccgo_ts + 17407, FePragTyp: uint8(PragTyp_HARD_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 27: { - FzName: __ccgo_ts + 17432, + FzName: __ccgo_ts + 17423, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_IgnoreChecks), }, 28: { - FzName: __ccgo_ts + 17457, + FzName: __ccgo_ts + 17448, FePragTyp: uint8(PragTyp_INCREMENTAL_VACUUM), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_NoColumns)), }, 29: { - FzName: __ccgo_ts + 17476, + FzName: __ccgo_ts + 17467, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(27), FnPragCName: uint8(3), }, 30: { - FzName: __ccgo_ts + 17487, + FzName: __ccgo_ts + 17478, FePragTyp: uint8(PragTyp_INDEX_LIST), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(33), FnPragCName: uint8(5), }, 31: { - FzName: __ccgo_ts + 17498, + FzName: __ccgo_ts + 17489, FePragTyp: uint8(PragTyp_INDEX_INFO), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(27), @@ -114271,146 +108452,146 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 32: { - FzName: __ccgo_ts + 17510, + FzName: __ccgo_ts + 17501, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 33: { - FzName: __ccgo_ts + 17526, + FzName: __ccgo_ts + 17517, FePragTyp: uint8(PragTyp_JOURNAL_MODE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 34: { - FzName: __ccgo_ts + 17539, + FzName: __ccgo_ts + 17530, FePragTyp: uint8(PragTyp_JOURNAL_SIZE_LIMIT), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 35: { - FzName: __ccgo_ts + 17558, + FzName: __ccgo_ts + 17549, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_LegacyAlter), }, 36: { - FzName: __ccgo_ts + 17577, + FzName: __ccgo_ts + 17568, FePragTyp: uint8(PragTyp_LOCKING_MODE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 37: { - FzName: __ccgo_ts + 17590, + FzName: __ccgo_ts + 17581, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 38: { - FzName: __ccgo_ts + 17605, + FzName: __ccgo_ts + 17596, FePragTyp: uint8(PragTyp_MMAP_SIZE), }, 39: { - FzName: __ccgo_ts + 17615, + FzName: __ccgo_ts + 17606, FePragTyp: uint8(PragTyp_MODULE_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 40: { - FzName: __ccgo_ts + 17627, + FzName: __ccgo_ts + 17618, FePragTyp: uint8(PragTyp_OPTIMIZE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_NeedSchema)), }, 41: { - FzName: __ccgo_ts + 17636, + FzName: __ccgo_ts + 17627, FePragTyp: uint8(PragTyp_PAGE_COUNT), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq)), }, 42: { - FzName: __ccgo_ts + 17647, + FzName: __ccgo_ts + 17638, FePragTyp: uint8(PragTyp_PAGE_SIZE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 43: { - FzName: __ccgo_ts + 17657, + FzName: __ccgo_ts + 17648, FePragTyp: uint8(PragTyp_PRAGMA_LIST), FmPragFlg: uint8(PragFlg_Result0), FiPragCName: uint8(9), FnPragCName: uint8(1), }, 44: { - FzName: __ccgo_ts + 17669, + FzName: __ccgo_ts + 17660, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_QueryOnly), }, 45: { - FzName: __ccgo_ts + 17680, + FzName: __ccgo_ts + 17671, FePragTyp: uint8(PragTyp_INTEGRITY_CHECK), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), }, 46: { - FzName: __ccgo_ts + 17692, + FzName: __ccgo_ts + 17683, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: libc.Uint64FromInt32(libc.Int32FromInt32(0x00004)) << libc.Int32FromInt32(32), }, 47: { - FzName: __ccgo_ts + 17709, + FzName: __ccgo_ts + 17700, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_RecTriggers), }, 48: { - FzName: __ccgo_ts + 17728, + FzName: __ccgo_ts + 17719, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ReverseOrder), }, 49: { - FzName: __ccgo_ts + 17754, + FzName: __ccgo_ts + 17745, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_SCHEMA_VERSION), }, 50: { - FzName: __ccgo_ts + 17769, + FzName: __ccgo_ts + 17760, FePragTyp: uint8(PragTyp_SECURE_DELETE), FmPragFlg: uint8(PragFlg_Result0), }, 51: { - FzName: __ccgo_ts + 17783, + FzName: __ccgo_ts + 17774, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_ShortColNames), }, 52: { - FzName: __ccgo_ts + 17802, + FzName: __ccgo_ts + 17793, FePragTyp: uint8(PragTyp_SHRINK_MEMORY), FmPragFlg: uint8(PragFlg_NoColumns), }, 53: { - FzName: __ccgo_ts + 17816, + FzName: __ccgo_ts + 17807, FePragTyp: uint8(PragTyp_SOFT_HEAP_LIMIT), FmPragFlg: uint8(PragFlg_Result0), }, 54: { - FzName: __ccgo_ts + 17832, + FzName: __ccgo_ts + 17823, FePragTyp: uint8(PragTyp_SYNCHRONOUS), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_SchemaReq) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 55: { - FzName: __ccgo_ts + 17844, + FzName: __ccgo_ts + 17835, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), FnPragCName: uint8(6), }, 56: { - FzName: __ccgo_ts + 17855, + FzName: __ccgo_ts + 17846, FePragTyp: uint8(PragTyp_TABLE_LIST), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1)), FiPragCName: uint8(21), FnPragCName: uint8(6), }, 57: { - FzName: __ccgo_ts + 17866, + FzName: __ccgo_ts + 17857, FePragTyp: uint8(PragTyp_TABLE_INFO), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NeedSchema) | libc.Int32FromInt32(PragFlg_Result1) | libc.Int32FromInt32(PragFlg_SchemaOpt)), FiPragCName: uint8(8), @@ -114418,45 +108599,45 @@ var _aPragmaName = [66]TPragmaName{ FiArg: uint64(1), }, 58: { - FzName: __ccgo_ts + 17878, + FzName: __ccgo_ts + 17869, FePragTyp: uint8(PragTyp_TEMP_STORE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), }, 59: { - FzName: __ccgo_ts + 17889, + FzName: __ccgo_ts + 17880, FePragTyp: uint8(PragTyp_TEMP_STORE_DIRECTORY), FmPragFlg: uint8(PragFlg_NoColumns1), }, 60: { - FzName: __ccgo_ts + 17910, + FzName: __ccgo_ts + 17901, FePragTyp: uint8(PragTyp_THREADS), FmPragFlg: uint8(PragFlg_Result0), }, 61: { - FzName: __ccgo_ts + 17918, + FzName: __ccgo_ts + 17909, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: uint64(SQLITE_TrustedSchema), }, 62: { - FzName: __ccgo_ts + 17933, + FzName: __ccgo_ts + 17924, FePragTyp: uint8(PragTyp_HEADER_VALUE), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_NoColumns1) | libc.Int32FromInt32(PragFlg_Result0)), FiArg: uint64(BTREE_USER_VERSION), }, 63: { - FzName: __ccgo_ts + 17946, + FzName: __ccgo_ts + 17937, FePragTyp: uint8(PragTyp_WAL_AUTOCHECKPOINT), }, 64: { - FzName: __ccgo_ts + 17965, + FzName: __ccgo_ts + 17956, FePragTyp: uint8(PragTyp_WAL_CHECKPOINT), FmPragFlg: uint8(PragFlg_NeedSchema), FiPragCName: uint8(47), FnPragCName: uint8(3), }, 65: { - FzName: __ccgo_ts + 17980, + FzName: __ccgo_ts + 17971, FePragTyp: uint8(PragTyp_FLAG), FmPragFlg: libc.Uint8FromInt32(libc.Int32FromInt32(PragFlg_Result0) | libc.Int32FromInt32(PragFlg_NoColumns1)), FiArg: libc.Uint64FromInt32(libc.Int32FromInt32(SQLITE_WriteSchema) | libc.Int32FromInt32(SQLITE_NoSchemaError)), @@ -114582,10 +108763,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+17996) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17987) { return int32(PAGER_LOCKINGMODE_EXCLUSIVE) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18006) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+17997) { return PAGER_LOCKINGMODE_NORMAL } } @@ -114603,13 +108784,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+8443) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+8434) { return BTREE_AUTOVACUUM_NONE } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18013) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18004) { return int32(BTREE_AUTOVACUUM_FULL) } - if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18018) { + if 0 == _sqlite3StrICmp(tls, z, __ccgo_ts+18009) { return int32(BTREE_AUTOVACUUM_INCR) } i = _sqlite3Atoi(tls, z) @@ -114632,10 +108813,10 @@ func _getTempStore(tls *libc.TLS, z uintptr) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z))) >= int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z))) <= int32('2') { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z))) - int32('0') } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+16989) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+16980) == 0 { return int32(1) } else { - if _sqlite3StrICmp(tls, z, __ccgo_ts+18030) == 0 { + if _sqlite3StrICmp(tls, z, __ccgo_ts+18021) == 0 { return int32(2) } else { return 0 @@ -114657,7 +108838,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+18037, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18028, 0) return int32(SQLITE_ERROR) } _sqlite3BtreeClose(tls, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FpBt) @@ -114787,15 +108968,15 @@ func _actionName(tls *libc.TLS, action Tu8) (r uintptr) { _ = zName switch libc.Int32FromUint8(action) { case int32(OE_SetNull): - zName = __ccgo_ts + 18099 + zName = __ccgo_ts + 18090 case int32(OE_SetDflt): - zName = __ccgo_ts + 18108 + zName = __ccgo_ts + 18099 case int32(OE_Cascade): - zName = __ccgo_ts + 18120 + zName = __ccgo_ts + 18111 case int32(OE_Restrict): - zName = __ccgo_ts + 18128 + zName = __ccgo_ts + 18119 default: - zName = __ccgo_ts + 18137 + zName = __ccgo_ts + 18128 break } return zName @@ -114816,12 +108997,12 @@ func _sqlite3JournalModename(tls *libc.TLS, eMode int32) (r uintptr) { } var _azModeName = [6]uintptr{ - 0: __ccgo_ts + 18147, - 1: __ccgo_ts + 18154, - 2: __ccgo_ts + 18162, - 3: __ccgo_ts + 18166, - 4: __ccgo_ts + 18030, - 5: __ccgo_ts + 18175, + 0: __ccgo_ts + 18138, + 1: __ccgo_ts + 18145, + 2: __ccgo_ts + 18153, + 3: __ccgo_ts + 18157, + 4: __ccgo_ts + 18021, + 5: __ccgo_ts + 18166, } // C documentation @@ -114883,15 +109064,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 + 18200 + zType = __ccgo_ts + 18191 } else { if (*TFuncDef)(unsafe.Pointer(p)).FxFinalize != uintptr(0) { - zType = __ccgo_ts + 18202 + zType = __ccgo_ts + 18193 } else { - zType = __ccgo_ts + 7842 + zType = __ccgo_ts + 7833 } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18204, 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+18195, 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: ; @@ -114900,9 +109081,9 @@ func _pragmaFunclistLine(tls *libc.TLS, v uintptr, p uintptr, isBuiltin int32, s } var _azEnc = [4]uintptr{ - 1: __ccgo_ts + 18179, - 2: __ccgo_ts + 18184, - 3: __ccgo_ts + 18192, + 1: __ccgo_ts + 18170, + 2: __ccgo_ts + 18175, + 3: __ccgo_ts + 18183, } // C documentation @@ -115001,7 +109182,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p return } if minusFlag != 0 { - zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18211, libc.VaList(bp+176, pValue)) + zRight = _sqlite3MPrintf(tls, db, __ccgo_ts+18202, libc.VaList(bp+176, pValue)) } else { zRight = _sqlite3NameFromToken(tls, db, pValue) } @@ -115044,7 +109225,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+3899, libc.VaList(bp+176, (*(*[4]uintptr)(unsafe.Pointer(bp + 8)))[0])) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3890, 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++ @@ -115148,7 +109329,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+18215) == 0 { + if Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18206) == 0 { b = int32(2) } else { b = libc.Int32FromUint8(_sqlite3GetBoolean(tls, zRight, uint8(0))) @@ -115219,7 +109400,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p */ fallthrough case int32(PragTyp_LOCKING_MODE): - zRet = __ccgo_ts + 18006 + zRet = __ccgo_ts + 17997 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 @@ -115247,7 +109428,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 + 17996 + zRet = __ccgo_ts + 17987 } _returnSingleText(tls, v, zRet) break @@ -115537,7 +109718,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+18220, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18211, 0) Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_VFS1))) goto pragma_out } @@ -115547,7 +109728,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+3899, libc.VaList(bp+176, zRight)) + Xsqlite3_temp_directory = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+176, zRight)) } else { Xsqlite3_temp_directory = uintptr(0) } @@ -115569,7 +109750,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _returnSingleInt(tls, v, int64(libc.Int32FromUint8((*TDb)(unsafe.Pointer(pDb)).Fsafety_level)-int32(1))) } else { if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18245, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18236, 0) } else { if iDb != int32(1) { iLevel = (libc.Int32FromUint8(_getSafetyLevel(tls, zRight, 0, uint8(1))) + int32(1)) & int32(PAGER_SYNCHRONOUS_MASK) @@ -115603,7 +109784,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredImmCons = 0 (*Tsqlite3)(unsafe.Pointer(db)).FnDeferredCons = 0 } - if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18298) == 0 { + if mask&uint64(SQLITE_WriteSchema) != uint64(0) && Xsqlite3_stricmp(tls, zRight, __ccgo_ts+18289) == 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. */ @@ -115683,9 +109864,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 + 18304 + v14 = __ccgo_ts + 18295 } else { - v14 = __ccgo_ts + 18312 + v14 = __ccgo_ts + 18303 } if int32(uint32(*(*uint8)(unsafe.Pointer(pCol + 8))&0xf>>0)) != 0 { v15 = int32(1) @@ -115697,7 +109878,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+1676), 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+1667), v15, v16, k, isHidden)) goto _12 _12: ; @@ -115756,7 +109937,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+18319, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18310, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab1)).FzName)) if zSql != 0 { *(*uintptr)(unsafe.Pointer(bp + 80)) = uintptr(0) Xsqlite3_prepare_v3(tls, db, zSql, -int32(1), uint32(SQLITE_PREPARE_DONT_LOG), bp+80, uintptr(0)) @@ -115764,7 +109945,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+1646, 0) + _sqlite3ErrorMsg(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpParse, __ccgo_ts+1637, 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 @@ -115786,19 +109967,19 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _20 } if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VIEW) { - zType = __ccgo_ts + 11050 + zType = __ccgo_ts + 11041 } else { if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab2)).FeTabType) == int32(TABTYP_VTAB) { - zType = __ccgo_ts + 13298 + zType = __ccgo_ts + 13289 } else { if (*TTable)(unsafe.Pointer(pTab2)).FtabFlags&uint32(TF_Shadow) != 0 { - zType = __ccgo_ts + 18335 + zType = __ccgo_ts + 18326 } else { - zType = __ccgo_ts + 9312 + zType = __ccgo_ts + 9303 } } } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18342, 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+18333, 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: ; @@ -115845,9 +110026,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+18349, libc.VaList(bp+176, i1, int32(cnum), v22)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18340, libc.VaList(bp+176, i1, int32(cnum), v22)) if (*TPragmaName)(unsafe.Pointer(pPragma)).FiArg != 0 { - _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18354, libc.VaList(bp+176, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < libc.Int32FromUint16((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) + _sqlite3VdbeMultiLoad(tls, v, int32(4), __ccgo_ts+18345, libc.VaList(bp+176, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FaSortOrder + uintptr(i1)))), *(*uintptr)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FazColl + uintptr(i1)*8)), libc.BoolInt32(i1 < libc.Int32FromUint16((*TIndex)(unsafe.Pointer(pIdx)).FnKeyCol)))) } _sqlite3VdbeAddOp2(tls, v, int32(OP_ResultRow), int32(1), (*TParse)(unsafe.Pointer(pParse)).FnMem) goto _21 @@ -115871,11 +110052,11 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p break } azOrigin = [3]uintptr{ - 0: __ccgo_ts + 18359, - 1: __ccgo_ts + 18361, - 2: __ccgo_ts + 16848, + 0: __ccgo_ts + 18350, + 1: __ccgo_ts + 18352, + 2: __ccgo_ts + 16839, } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18363, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(libc.Int32FromUint8((*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+18354, libc.VaList(bp+176, i2, (*TIndex)(unsafe.Pointer(pIdx1)).FzName, libc.BoolInt32(libc.Int32FromUint8((*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: ; @@ -115894,7 +110075,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+18369, 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+18360, 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: ; @@ -115911,7 +110092,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+18373, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18364, libc.VaList(bp+176, v26, (*TCollSeq)(unsafe.Pointer(pColl)).FzName)) goto _25 _25: ; @@ -115961,7 +110142,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+7842, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7833, libc.VaList(bp+176, (*TModule)(unsafe.Pointer(pMod)).FzName)) goto _30 _30: ; @@ -115973,7 +110154,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if !(i6 < libc.Int32FromUint64(libc.Uint64FromInt64(1584)/libc.Uint64FromInt64(24))) { break } - _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7842, libc.VaList(bp+176, _aPragmaName[i6].FzName)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+7833, libc.VaList(bp+176, _aPragmaName[i6].FzName)) goto _31 _31: ; @@ -115999,7 +110180,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+18376, 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+18385)) + _sqlite3VdbeMultiLoad(tls, v, int32(1), __ccgo_ts+18367, 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+18376)) goto _32 _32: ; @@ -116140,7 +110321,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+18390, libc.VaList(bp+176, (*TFKey)(unsafe.Pointer(pFK1)).FzTo, i8-int32(1))) + _sqlite3VdbeMultiLoad(tls, v, regResult+int32(2), __ccgo_ts+18381, 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))) @@ -116331,7 +110512,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeAddOp4(tls, v, int32(OP_IntegrityCk), int32(1), cnt, int32(8), aRoot, -int32(14)) _sqlite3VdbeChangeP5(tls, v, libc.Uint16FromInt32(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+18394, 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+18385, 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) @@ -116342,7 +110523,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p v48 = 0 } cnt = v48 - _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18418) + _sqlite3VdbeLoadString(tls, v, int32(2), __ccgo_ts+18409) x2 = (*THash)(unsafe.Pointer(pTbls)).Ffirst for { if !(x2 != 0) { @@ -116478,7 +110659,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, libc.Int32FromUint16((*TIndex)(unsafe.Pointer(pPk1)).FnKeyCol)) _sqlite3VdbeAddOp1(tls, v, int32(OP_IsNull), r2) - zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18447, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) + zErr = _sqlite3MPrintf(tls, db, __ccgo_ts+18438, 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) @@ -116562,7 +110743,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3ColumnDefault(tls, v, pTab10, j4, int32(3)) jmp3 = _sqlite3VdbeAddOp2(tls, v, int32(OP_NotNull), int32(3), labelOk) } - zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18483, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*TColumn)(unsafe.Pointer(pCol1)).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18474, 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) @@ -116575,7 +110756,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+18503, 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)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18494, 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) && libc.Int32FromUint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) == int32(SQLITE_AFF_TEXT) { @@ -116583,7 +110764,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+18525, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18516, 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) && libc.Int32FromUint8((*TColumn)(unsafe.Pointer(pCol1)).Faffinity) >= int32(SQLITE_AFF_NUMERIC) { @@ -116594,10 +110775,10 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if p11 >= 0 { _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+18548, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Affinity), int32(3), int32(1), 0, __ccgo_ts+18539, -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+18550, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab10)).FaCol + uintptr(j4)*16))).FzCnName)) + zErr1 = _sqlite3MPrintf(tls, db, __ccgo_ts+18541, 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)) } } @@ -116631,7 +110812,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _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+18570, libc.VaList(bp+176, (*TTable)(unsafe.Pointer(pTab10)).FzName)) + zErr2 = _sqlite3MPrintf(tls, db, __ccgo_ts+18561, 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) @@ -116655,9 +110836,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _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, libc.Int32FromUint16((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18600) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18591) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18605) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18596) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) jmp5 = _sqlite3VdbeLoadString(tls, v, int32(4), (*TIndex)(unsafe.Pointer(pIdx6)).FzName) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(4), int32(3), int32(3)) @@ -116670,9 +110851,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p 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+libc.Int32FromUint16((*TIndex)(unsafe.Pointer(pIdx6)).FnColumn)-int32(1)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18626) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18617) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18662) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18653) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp7) } @@ -116700,9 +110881,9 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p if label6 != 0 { jmp6 = _sqlite3VdbeAddOp0(tls, v, int32(OP_Goto)) _sqlite3VdbeResolveLabel(tls, v, label6) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18600) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18591) _sqlite3VdbeAddOp3(tls, v, int32(OP_Concat), int32(7), int32(3), int32(3)) - _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18673) + _sqlite3VdbeLoadString(tls, v, int32(4), __ccgo_ts+18664) _sqlite3VdbeGoto(tls, v, jmp5-int32(1)) _sqlite3VdbeJumpHere(tls, v, jmp6) } @@ -116730,7 +110911,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p _sqlite3VdbeGoto(tls, v, uniqOk) _sqlite3VdbeJumpHere(tls, v, jmp61) _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxGT), *(*int32)(unsafe.Pointer(bp + 112))+j4, uniqOk, r1, libc.Int32FromUint16((*TIndex)(unsafe.Pointer(pIdx6)).FnKeyCol)) - _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18700) + _sqlite3VdbeLoadString(tls, v, int32(3), __ccgo_ts+18691) _sqlite3VdbeGoto(tls, v, jmp5) _sqlite3VdbeResolveLabel(tls, v, uniqOk) } @@ -116827,7 +111008,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 + 18727 + *(*uintptr)(unsafe.Pointer(aOp2 + 2*24 + 16)) = __ccgo_ts + 18718 (*(*TVdbeOp)(unsafe.Pointer(aOp2 + 5*24))).Fp4type = int8(-libc.Int32FromInt32(1)) *(*uintptr)(unsafe.Pointer(aOp2 + 5*24 + 16)) = _sqlite3ErrStr(tls, int32(SQLITE_CORRUPT)) } @@ -116906,7 +111087,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+18788, libc.VaList(bp+176, zRight)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+18779, libc.VaList(bp+176, zRight)) } } } @@ -117011,13 +111192,13 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p iBt = v67 eMode2 = SQLITE_CHECKPOINT_PASSIVE if zRight != 0 { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18013) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18004) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_FULL) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18813) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18804) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_RESTART) } else { - if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18166) == 0 { + if _sqlite3StrICmp(tls, zRight, __ccgo_ts+18157) == 0 { eMode2 = int32(SQLITE_CHECKPOINT_TRUNCATE) } } @@ -117182,7 +111363,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p goto _73 } /* Do not scan system tables */ - if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6689, int32(7)) { + if 0 == Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab12)).FzName, __ccgo_ts+6680, int32(7)) { goto _73 } /* Find the size of the table as last recorded in sqlite_stat1. @@ -117244,7 +111425,7 @@ func _sqlite3Pragma(tls *libc.TLS, pParse uintptr, pId1 uintptr, pId2 uintptr, p } else { _sqlite3VdbeAddOp2(tls, v, int32(OP_Rewind), iTabCur, libc.Int32FromUint32(libc.Uint32FromInt32(_sqlite3VdbeCurrentAddr(tls, v)+int32(2))+opMask&uint32(1))) } - zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18821, libc.VaList(bp+176, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, (*TTable)(unsafe.Pointer(pTab12)).FzName)) + zSubSql = _sqlite3MPrintf(tls, db, __ccgo_ts+18812, 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)) @@ -117517,34 +111698,34 @@ var _encnames1 = [9]struct { Fenc Tu8 }{ 0: { - FzName: __ccgo_ts + 18730, + FzName: __ccgo_ts + 18721, Fenc: uint8(SQLITE_UTF8), }, 1: { - FzName: __ccgo_ts + 18735, + FzName: __ccgo_ts + 18726, Fenc: uint8(SQLITE_UTF8), }, 2: { - FzName: __ccgo_ts + 18741, + FzName: __ccgo_ts + 18732, Fenc: uint8(SQLITE_UTF16LE), }, 3: { - FzName: __ccgo_ts + 18750, + FzName: __ccgo_ts + 18741, Fenc: uint8(SQLITE_UTF16BE), }, 4: { - FzName: __ccgo_ts + 18759, + FzName: __ccgo_ts + 18750, Fenc: uint8(SQLITE_UTF16LE), }, 5: { - FzName: __ccgo_ts + 18767, + FzName: __ccgo_ts + 18758, Fenc: uint8(SQLITE_UTF16BE), }, 6: { - FzName: __ccgo_ts + 18775, + FzName: __ccgo_ts + 18766, }, 7: { - FzName: __ccgo_ts + 18782, + FzName: __ccgo_ts + 18773, }, 8: {}, } @@ -117601,25 +111782,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -117640,14 +111802,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+18839) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18830) i = 0 j = libc.Int32FromUint8((*TPragmaName)(unsafe.Pointer(pPragma)).FiPragCName) for { if !(i < libc.Int32FromUint8((*TPragmaName)(unsafe.Pointer(pPragma)).FnPragCName)) { break } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18854, libc.VaList(bp+240, libc.Int32FromUint8(cSep), _pragCName[j])) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18845, libc.VaList(bp+240, libc.Int32FromUint8(cSep), _pragCName[j])) cSep = uint8(',') goto _1 _1: @@ -117656,19 +111818,19 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg j++ } if i == 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18861, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18852, libc.VaList(bp+240, (*TPragmaName)(unsafe.Pointer(pPragma)).FzName)) i++ } j = 0 if libc.Int32FromUint8((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&int32(PragFlg_Result1) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18867) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18858) j++ } if libc.Int32FromUint8((*TPragmaName)(unsafe.Pointer(pPragma)).FmPragFlg)&(libc.Int32FromInt32(PragFlg_SchemaOpt)|libc.Int32FromInt32(PragFlg_SchemaReq)) != 0 { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18879) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18870) j++ } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5210, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5201, int32(1)) _sqlite3StrAccumFinish(tls, bp) rc = Xsqlite3_declare_vtab(tls, db, bp+32) if rc == SQLITE_OK { @@ -117683,7 +111845,7 @@ func _pragmaVtabConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, arg (*TPragmaVtab)(unsafe.Pointer(pTab)).FnHidden = libc.Uint8FromInt32(j) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3899, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+240, Xsqlite3_errmsg(tls, db))) } *(*uintptr)(unsafe.Pointer(ppVtab)) = pTab return rc @@ -117864,7 +112026,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+3899, libc.VaList(bp+40, zText)) + *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+40, zText)) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + uintptr(j)*8)) == uintptr(0) { return int32(SQLITE_NOMEM) } @@ -117876,13 +112038,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+18894) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+18885) if *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18902, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24 + 1*8)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18893, 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+18906, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+18897, libc.VaList(bp+40, *(*uintptr)(unsafe.Pointer(pCsr + 24)))) } zSql = _sqlite3StrAccumFinish(tls, bp) if zSql == uintptr(0) { @@ -117891,7 +112053,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+3899, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) + (*TPragmaVtab)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+40, Xsqlite3_errmsg(tls, (*TPragmaVtab)(unsafe.Pointer(pTab)).Fdb))) return rc } return _pragmaVtabNext(tls, pVtabCursor) @@ -118017,24 +112179,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&libc.Uint32FromInt32(libc.Int32FromInt32(INITFLAG_AlterMask)) != 0 { - *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = _sqlite3MPrintf(tls, db, __ccgo_ts+18940, 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+18931, 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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) } else { - v1 = __ccgo_ts + 5212 + v1 = __ccgo_ts + 5203 } zObj = v1 - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18968, libc.VaList(bp+8, zObj)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18959, libc.VaList(bp+8, zObj)) if zExtra != 0 && *(*uint8)(unsafe.Pointer(zExtra)) != 0 { - z = _sqlite3MPrintf(tls, db, __ccgo_ts+18999, libc.VaList(bp+8, z, zExtra)) + z = _sqlite3MPrintf(tls, db, __ccgo_ts+18990, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118042,9 +112204,9 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) } var _azAlterType = [3]uintptr{ - 0: __ccgo_ts + 18910, - 1: __ccgo_ts + 18917, - 2: __ccgo_ts + 18929, + 0: __ccgo_ts + 18901, + 1: __ccgo_ts + 18908, + 2: __ccgo_ts + 18920, } // C documentation @@ -118120,7 +112282,7 @@ func _sqlite3InitCallback(tls *libc.TLS, pInit uintptr, argc int32, argv uintptr (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = libc.Uint8FromInt32(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+14738) + _corruptSchema(tls, pData, argv, __ccgo_ts+14729) } } libc.SetBitFieldPtr8Uint32(db+192+8, libc.Uint32FromInt32(0), 0, 0x1) @@ -118153,11 +112315,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+19007) + _corruptSchema(tls, pData, argv, __ccgo_ts+18998) } 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+14738) + _corruptSchema(tls, pData, argv, __ccgo_ts+14729) } } } @@ -118196,18 +112358,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 + 9312 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[0] = __ccgo_ts + 9303 if libc.Bool(!(libc.Int32FromInt32(OMIT_TEMPDB) != 0)) && iDb == int32(1) { - v2 = __ccgo_ts + 6697 + v2 = __ccgo_ts + 6688 } else { - v2 = __ccgo_ts + 6184 + v2 = __ccgo_ts + 6175 } 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 + 8355 - (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 19020 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(3)] = __ccgo_ts + 8346 + (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(4)] = __ccgo_ts + 19011 (*(*[6]uintptr)(unsafe.Pointer(bp)))[int32(5)] = uintptr(0) (*(*TInitData)(unsafe.Pointer(bp + 72))).Fdb = db (*(*TInitData)(unsafe.Pointer(bp + 72))).FiDb = iDb @@ -118291,7 +112453,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) != libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer(db)).Fenc) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12349) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+12340) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -118317,7 +112479,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 libc.Int32FromUint8((*TSchema)(unsafe.Pointer((*TDb)(unsafe.Pointer(pDb)).FpSchema)).Ffile_format) > int32(SQLITE_MAX_FILE_FORMAT) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+19092) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+19083) rc = int32(SQLITE_ERROR) goto initone_error_out } @@ -118332,7 +112494,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+19116, libc.VaList(bp+120, (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(iDb)*32))).FzDbSName, zSchemaTabName)) + zSql = _sqlite3MPrintf(tls, db, __ccgo_ts+19107, 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)) @@ -118628,7 +112790,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118641,9 +112803,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118667,7 +112829,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+1646, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+1637, 0) } } @@ -118701,7 +112863,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+1646, 0) + _sqlite3ErrorMsg(tls, bp, __ccgo_ts+1637, 0) v1 = libc.Int32FromInt32(SQLITE_NOMEM) rc = v1 (*Tsqlite3)(unsafe.Pointer(db)).FerrCode = v1 @@ -118750,7 +112912,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+19150, libc.VaList(bp+432, zDb)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+19141, libc.VaList(bp+432, zDb)) goto end_prepare } } @@ -118766,7 +112928,7 @@ func _sqlite3Prepare(tls *libc.TLS, db uintptr, zSql uintptr, nBytes int32, prep if nBytes >= 0 && (nBytes == 0 || libc.Int32FromUint8(*(*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+19180, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_TOOBIG), __ccgo_ts+19171, 0) rc = _sqlite3ApiExit(tls, db, int32(SQLITE_TOOBIG)) goto end_prepare } @@ -118800,7 +112962,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+3899, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) + _sqlite3ErrorWithMsg(tls, db, rc, __ccgo_ts+3890, libc.VaList(bp+432, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg)) _sqlite3DbFree(tls, db, (*(*TParse)(unsafe.Pointer(bp))).FzErrMsg) } else { _sqlite3Error(tls, db, rc) @@ -118830,7 +112992,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -118964,7 +113126,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -119086,15 +113248,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -119130,21 +113283,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119388,15 +113526,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 + 11456 - zSp2 = __ccgo_ts + 11456 + zSp1 = __ccgo_ts + 11447 + zSp2 = __ccgo_ts + 11447 if pB == uintptr(0) { zSp1++ } if pC == uintptr(0) { zSp2++ } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19199, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19190, libc.VaList(bp+8, pA, zSp1, pB, zSp2, pC)) jointype = int32(JT_INNER) } return jointype @@ -119690,7 +113828,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { if libc.Int32FromUint8((*TSrcItem)(unsafe.Pointer(pRight)).Ffg.Fjointype)&int32(JT_NATURAL) != 0 { pUsing = uintptr(0) if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x800>>11) != 0 || *(*uintptr)(unsafe.Pointer(pRight + 64)) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19229, libc.VaList(bp+16, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19220, libc.VaList(bp+16, 0)) return int32(1) } j = 0 @@ -119740,7 +113878,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)(unsafe.Pointer(pRight + 24 + 4))&0x2000>>13)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19279, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19270, libc.VaList(bp+16, zName1)) return int32(1) } pE1 = _sqlite3CreateColumnExpr(tls, db, pSrc, *(*int32)(unsafe.Pointer(bp)), *(*int32)(unsafe.Pointer(bp + 4))) @@ -119763,7 +113901,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { *(*Tu32)(unsafe.Pointer(pE1 + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_CanBeNull)) for _tableAndColumnIndex(tls, pSrc, *(*int32)(unsafe.Pointer(bp))+int32(1), i, zName1, bp, bp+4, int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x2000>>13)) != 0 { if int32(*(*uint32)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*80 + 24 + 4))&0x800>>11) == 0 || _sqlite3IdListIndex(tls, *(*uintptr)(unsafe.Pointer(pSrc + 8 + uintptr(*(*int32)(unsafe.Pointer(bp)))*80 + 64)), zName1) < 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19343, libc.VaList(bp+16, zName1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19334, libc.VaList(bp+16, zName1)) break } pFuncArgs = _sqlite3ExprListAppend(tls, pParse, pFuncArgs, pE1) @@ -119814,7 +113952,7 @@ func _sqlite3ProcessJoin(tls *libc.TLS, pParse uintptr, p uintptr) (r int32) { } var _tkCoalesce = TToken{ - Fz: __ccgo_ts + 6894, + Fz: __ccgo_ts + 6885, Fn: uint32(8), } @@ -119831,13 +113969,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -120390,7 +114521,7 @@ func _selectInnerLoop(tls *libc.TLS, pParse uintptr, p uintptr, srcTab int32, pS _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxInsert), iParm, r13, regResult, nResultCol) if (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm2 != 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_FilterAdd), (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm2, 0, regResult, nResultCol) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19380, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19371, 0) } _sqlite3ReleaseTempReg(tls, pParse, r13) } @@ -120595,13 +114726,13 @@ func _sqlite3SelectOpName(tls *libc.TLS, id int32) (r uintptr) { _ = z switch id { case int32(TK_ALL): - z = __ccgo_ts + 19400 + z = __ccgo_ts + 19391 case int32(TK_INTERSECT): - z = __ccgo_ts + 19410 + z = __ccgo_ts + 19401 case int32(TK_EXCEPT): - z = __ccgo_ts + 19420 + z = __ccgo_ts + 19411 default: - z = __ccgo_ts + 19427 + z = __ccgo_ts + 19418 break } return z @@ -120622,7 +114753,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+19433, libc.VaList(bp+8, zUsage)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19424, libc.VaList(bp+8, zUsage)) } /* @@ -120659,13 +114790,13 @@ func _generateSortTail(tls *libc.TLS, pParse uintptr, p uintptr, pSort uintptr, 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 + 19456 + v1 = __ccgo_ts + 19447 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19470, libc.VaList(bp+8, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19461, libc.VaList(bp+8, v1)) } else { - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19501, libc.VaList(bp+8, nKey)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19492, libc.VaList(bp+8, nKey)) } if (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut != 0 { _sqlite3VdbeAddOp2(tls, v, int32(OP_Gosub), (*TSortCtx)(unsafe.Pointer(pSort)).FregReturn, (*TSortCtx)(unsafe.Pointer(pSort)).FlabelBkOut) @@ -120908,8 +115039,8 @@ func _columnTypeImpl(tls *libc.TLS, pNC uintptr, pExpr uintptr, pzOrigDb uintptr iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zType = __ccgo_ts + 1150 - *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16960 + zType = __ccgo_ts + 1141 + *(*uintptr)(unsafe.Pointer(bp + 16)) = __ccgo_ts + 16951 } 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)) @@ -121055,13 +115186,13 @@ func _sqlite3GenerateColumnNames(tls *libc.TLS, pParse uintptr, pSelect uintptr) iCol = int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) } if iCol < 0 { - zCol = __ccgo_ts + 16960 + zCol = __ccgo_ts + 16951 } 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+12635, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zCol)) + zName1 = _sqlite3MPrintf(tls, db, __ccgo_ts+12626, 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))) @@ -121069,7 +115200,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+19547, libc.VaList(bp+8, i+int32(1))) + v2 = _sqlite3MPrintf(tls, db, __ccgo_ts+19538, libc.VaList(bp+8, i+int32(1))) } else { v2 = _sqlite3DbStrDup(tls, db, z) } @@ -121161,7 +115292,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 + 16960 + v3 = __ccgo_ts + 16951 } zName = v3 } else { @@ -121176,7 +115307,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+19547, libc.VaList(bp+40, i+int32(1))) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19538, 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. @@ -121212,7 +115343,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+19556, libc.VaList(bp+40, nName, zName, v8)) + zName = _sqlite3MPrintf(tls, db, __ccgo_ts+19547, libc.VaList(bp+40, nName, zName, v8)) _sqlite3ProgressCheck(tls, pParse) if *(*Tu32)(unsafe.Pointer(bp)) > uint32(3) { Xsqlite3_randomness(tls, int32(4), bp) @@ -121331,7 +115462,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) || libc.Int32FromUint8((*TColumn)(unsafe.Pointer(pCol)).Faffinity) != libc.Int32FromUint8(_sqlite3AffinityType(tls, zType, uintptr(0))) { if libc.Int32FromUint8((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_NUMERIC) || libc.Int32FromUint8((*TColumn)(unsafe.Pointer(pCol)).Faffinity) == int32(SQLITE_AFF_FLEXNUM) { - zType = __ccgo_ts + 19564 + zType = __ccgo_ts + 19555 } else { zType = uintptr(0) j = int32(1) @@ -121646,7 +115777,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+19568, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19559, 0) return } /* Obtain authorization to do a recursive query */ @@ -121739,7 +115870,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+19617, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19608, 0) goto end_of_recursive_query } (*TSelect)(unsafe.Pointer(pFirstRec)).Fop = uint8(TK_ALL) @@ -121754,7 +115885,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+19659, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19650, 0) rc = _sqlite3Select(tls, pParse, pSetup, bp) (*TSelect)(unsafe.Pointer(pSetup)).FpNext = p if rc != 0 { @@ -121782,7 +115913,7 @@ 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+19665, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19656, 0) _sqlite3Select(tls, pParse, p, bp) (*TSelect)(unsafe.Pointer(pFirstRec)).FpPrior = pSetup /* Keep running the loop until the Queue is empty */ @@ -121835,11 +115966,11 @@ func _multiSelectValues(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) nRow += bShowAll } if nRow == int32(1) { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } else { - v1 = __ccgo_ts + 19680 + v1 = __ccgo_ts + 19671 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19682, libc.VaList(bp+8, nRow, v1)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19673, 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) { @@ -121947,8 +116078,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+19705, 0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19720, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19696, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19711, 0) } /* Generate code for the left and right SELECT statements. */ @@ -121973,7 +116104,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+19400, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19391, 0) rc = _sqlite3Select(tls, pParse, p, bp) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -122025,7 +116156,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+19739, libc.VaList(bp+136, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19730, libc.VaList(bp+136, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+48) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -122083,7 +116214,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+19739, libc.VaList(bp+136, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19730, libc.VaList(bp+136, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(p)).Fop)))) rc = _sqlite3Select(tls, pParse, p, bp+88) pDelete = (*TSelect)(unsafe.Pointer(p)).FpPrior (*TSelect)(unsafe.Pointer(p)).FpPrior = pPrior @@ -122207,9 +116338,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+19760, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19751, 0) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19806, libc.VaList(bp+8, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19797, libc.VaList(bp+8, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(p)).Fop)))) } } @@ -122280,7 +116411,7 @@ func _generateOutputSubroutine(tls *libc.TLS, pParse uintptr, p uintptr, pIn uin _sqlite3VdbeAddOp4Int(tls, v, int32(OP_IdxInsert), (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm, r11, (*TSelectDest)(unsafe.Pointer(pIn)).FiSdst, (*TSelectDest)(unsafe.Pointer(pIn)).FnSdst) if (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm2 > 0 { _sqlite3VdbeAddOp4Int(tls, v, int32(OP_FilterAdd), (*TSelectDest)(unsafe.Pointer(pDest)).FiSDParm2, 0, (*TSelectDest)(unsafe.Pointer(pIn)).FiSdst, (*TSelectDest)(unsafe.Pointer(pIn)).FnSdst) - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19380, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19371, 0) } _sqlite3ReleaseTempReg(tls, pParse, r11) break @@ -122582,8 +116713,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+7592) - _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7592) + _sqlite3ResolveOrderGroupBy(tls, pParse, p, (*TSelect)(unsafe.Pointer(p)).FpOrderBy, __ccgo_ts+7583) + _sqlite3ResolveOrderGroupBy(tls, pParse, pPrior, (*TSelect)(unsafe.Pointer(pPrior)).FpOrderBy, __ccgo_ts+7583) /* Compute the limit registers */ _computeLimitRegisters(tls, pParse, p, labelEnd) if (*TSelect)(unsafe.Pointer(p)).FiLimit != 0 && op == int32(TK_ALL) { @@ -122627,14 +116758,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+19888, libc.VaList(bp+88, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(p)).Fop)))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19879, libc.VaList(bp+88, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*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+19899, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19890, 0) _sqlite3Select(tls, pParse, pPrior, bp) _sqlite3VdbeEndCoroutine(tls, v, regAddrA) _sqlite3VdbeJumpHere(tls, v, addr1) @@ -122647,7 +116778,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+19904, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+19895, 0) _sqlite3Select(tls, pParse, p, bp+40) (*TSelect)(unsafe.Pointer(p)).FiLimit = savedLimit (*TSelect)(unsafe.Pointer(p)).FiOffset = savedOffset @@ -122857,7 +116988,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 + 5190 + v1 = __ccgo_ts + 5181 } pNew = _sqlite3ExprAddCollateString(tls, (*TSubstContext)(unsafe.Pointer(pSubst)).FpParse, pNew, v1) } @@ -123812,18 +117943,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -124483,13 +118602,13 @@ func _minMaxQuery(tls *libc.TLS, db uintptr, pFunc uintptr, ppMinMax uintptr) (r return libc.Uint8FromInt32(eRet) } zFunc = *(*uintptr)(unsafe.Pointer(pFunc + 8)) - if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15799) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15790) == 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+15803) == 0 { + if _sqlite3StrICmp(tls, zFunc, __ccgo_ts+15794) == 0 { eRet = int32(WHERE_ORDERBY_MAX) sortFlags = uint8(KEYINFO_ORDER_DESC) } else { @@ -124577,7 +118696,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+19910, libc.VaList(bp+8, zIndexedBy, 0)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19901, libc.VaList(bp+8, zIndexedBy, 0)) libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 3, 0x8) return int32(SQLITE_ERROR) } @@ -124702,7 +118821,7 @@ func _cannotBeFunction(tls *libc.TLS, pParse uintptr, pFrom uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) if int32(*(*uint32)(unsafe.Pointer(pFrom + 24 + 4))&0x8>>3) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19928, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19919, libc.VaList(bp+8, (*TSrcItem)(unsafe.Pointer(pFrom)).FzName)) return int32(1) } return 0 @@ -124878,7 +118997,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom pSel = (*TSubquery)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pFrom + 72)))).FpSelect *(*Tu32)(unsafe.Pointer(pSel + 4)) |= uint32(SF_CopyCte) if int32(*(*uint32)(unsafe.Pointer(pFrom + 24 + 4))&0x2>>1) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19951, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 48)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19942, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(pFrom + 48)))) return int32(2) } libc.SetBitFieldPtr32Uint32(pFrom+24+4, libc.Uint32FromInt32(1), 9, 0x200) @@ -124900,7 +119019,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom (*TTable)(unsafe.Pointer(pTab)).FnTabRef++ libc.SetBitFieldPtr32Uint32(pItem+24+4, libc.Uint32FromInt32(1), 7, 0x80) if (*TSelect)(unsafe.Pointer(pRecTerm)).FselFlags&uint32(SF_Recursive) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19971, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+19962, libc.VaList(bp+16, (*TCte)(unsafe.Pointer(pCte)).FzName)) return int32(2) } *(*Tu32)(unsafe.Pointer(pRecTerm + 4)) |= uint32(SF_Recursive) @@ -124922,7 +119041,7 @@ func _resolveFromTermToCte(tls *libc.TLS, pParse uintptr, pWalker uintptr, pFrom } pRecTerm = (*TSelect)(unsafe.Pointer(pRecTerm)).FpPrior } - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20014 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20005 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 { @@ -124953,7 +119072,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+20037, 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+20028, 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) } @@ -124962,9 +119081,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 + 20075 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20066 } else { - (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20109 + (*TCte)(unsafe.Pointer(pCte)).FzCteErr = __ccgo_ts + 20100 } _sqlite3WalkSelect(tls, pWalker, pSel) } @@ -125023,7 +119142,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+20147, libc.VaList(bp+8, pFrom)) + (*TTable)(unsafe.Pointer(pTab)).FzName = _sqlite3MPrintf(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, __ccgo_ts+20138, libc.VaList(bp+8, pFrom)) } for (*TSelect)(unsafe.Pointer(pSel)).FpPrior != 0 { pSel = (*TSelect)(unsafe.Pointer(pSel)).FpPrior @@ -125179,7 +119298,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+20151, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20142, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) (*TSrcItem)(unsafe.Pointer(pFrom)).FpSTab = uintptr(0) return int32(WRC_Abort) } @@ -125194,7 +119313,7 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if libc.Int32FromUint8((*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+20190, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20181, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } _sqlite3SrcItemAttachSubquery(tls, pParse, pFrom, (*(*struct { FpSelect uintptr @@ -125209,7 +119328,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+15331, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+15322, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName)) } } nCol = (*TTable)(unsafe.Pointer(pTab)).FnCol @@ -125333,7 +119452,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 + 6754 + v10 = __ccgo_ts + 6745 } zSchemaName = v10 } @@ -125350,7 +119469,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+20221, libc.VaList(bp+8, zUName)) + (*TExprList_item)(unsafe.Pointer(pX)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20212, 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) } @@ -125429,7 +119548,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+20226, libc.VaList(bp+8, zSchemaName, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+20217, libc.VaList(bp+8, zSchemaName, zTabName, zName)) } if j == int32((*TTable)(unsafe.Pointer(pTab1)).FnCol) { v13 = int32(ENAME_ROWID) @@ -125442,7 +119561,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+12635, libc.VaList(bp+8, zTabName, zName)) + (*TExprList_item)(unsafe.Pointer(pX1)).FzEName = _sqlite3MPrintf(tls, db, __ccgo_ts+12626, 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) @@ -125462,9 +119581,9 @@ func _selectExpander(tls *libc.TLS, pWalker uintptr, p uintptr) (r int32) { } if !(tableSeen != 0) { if zTName != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20235, libc.VaList(bp+8, zTName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20226, libc.VaList(bp+8, zTName)) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20253, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20244, 0) } } } @@ -125478,7 +119597,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+20273, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20264, 0) return int32(WRC_Abort) } if elistFlags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_HasFunc)|libc.Int32FromInt32(EP_Subquery)) != uint32(0) { @@ -125817,12 +119936,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+20304, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20295, 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+20355, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20346, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } } if (*TAggInfo_func)(unsafe.Pointer(pFunc)).FiOBTab >= 0 { @@ -125843,7 +119962,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+20388, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20379, libc.VaList(bp+8, (*TFuncDef)(unsafe.Pointer((*TAggInfo_func)(unsafe.Pointer(pFunc)).FpFunc)).FzName)) } goto _1 _1: @@ -126157,16 +120276,16 @@ func _explainSimpleCount(tls *libc.TLS, pParse uintptr, pTab uintptr, pIdx uintp if libc.Int32FromUint8((*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 + 20421 + v1 = __ccgo_ts + 20412 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } if bCover != 0 { v2 = (*TIndex)(unsafe.Pointer(pIdx)).FzName } else { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20444, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+20435, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, v1, v2)) } } @@ -126198,7 +120317,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&libc.Uint32FromInt32(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+8355) + pNew = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8346) if pNew != 0 { pWhere = (*TSelect)(unsafe.Pointer(pS)).FpWhere t = *(*TExpr)(unsafe.Pointer(pNew)) @@ -126356,7 +120475,7 @@ func _countOfViewOptimization(tls *libc.TLS, pParse uintptr, p uintptr) (r int32 if libc.Int32FromUint8((*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+16113) != 0 { + if Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(pExpr + 8)), __ccgo_ts+16104) != 0 { return 0 } /* Is count() */ if *(*uintptr)(unsafe.Pointer(pExpr + 32)) != uintptr(0) { @@ -126654,7 +120773,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r } else { v1 = (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(p0)).FpSTab)).FzName } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20456, libc.VaList(bp+176, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20447, libc.VaList(bp+176, v1)) goto select_end } /* Clear the SF_UFSrcCheck flag. The check has already been performed, @@ -126762,7 +120881,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+20510, 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+20501, 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 @@ -126920,7 +121039,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r zDb = *(*uintptr)(unsafe.Pointer(pItem1 + 72)) } } - _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1676, zDb) + _sqlite3AuthCheck(tls, pParse, int32(SQLITE_READ), (*TSrcItem)(unsafe.Pointer(pItem1)).FzName, __ccgo_ts+1667, zDb) } /* Generate code for all sub-queries in the FROM clause */ @@ -126970,7 +121089,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeAddOp3(tls, v, int32(OP_InitCoroutine), (*TSubquery)(unsafe.Pointer(pSubq)).FregReturn, 0, addrTop) (*TSubquery)(unsafe.Pointer(pSubq)).FaddrFillSub = addrTop _sqlite3SelectDestInit(tls, bp+72, int32(SRT_Coroutine), (*TSubquery)(unsafe.Pointer(pSubq)).FregReturn) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20550, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20541, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpSTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow libc.SetBitFieldPtr32Uint32(pItem1+24+4, libc.Uint32FromInt32(1), 6, 0x40) @@ -127017,7 +121136,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+20565, libc.VaList(bp+176, pItem1)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+20556, libc.VaList(bp+176, pItem1)) _sqlite3Select(tls, pParse, pSub1, bp+72) (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem1)).FpSTab)).FnRowLogEst = (*TSelect)(unsafe.Pointer(pSub1)).FnSelectRow if onceAddr != 0 { @@ -127416,6 +121535,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -127450,11 +121570,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) { - v47 = __ccgo_ts + 20581 + v47 = __ccgo_ts + 20572 } else { - v47 = __ccgo_ts + 20590 + v47 = __ccgo_ts + 20581 } - _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19433, libc.VaList(bp+176, v47)) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+19424, libc.VaList(bp+176, v47)) groupBySort = int32(1) nGroupBy = (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr nCol = nGroupBy @@ -127789,7 +121909,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r _sqlite3VdbeResolveLabel(tls, v, addrEnd) } /* endif aggregate query */ if libc.Int32FromUint8((*(*TDistinctCtx)(unsafe.Pointer(bp))).FeTnctType) == int32(WHERE_DISTINCT_UNORDERED) { - _explainTempTable(tls, pParse, __ccgo_ts+20581) + _explainTempTable(tls, pParse, __ccgo_ts+20572) } /* If there is an ORDER BY clause, then we need to sort the results ** and send them to the callback one by one. tag-select-0900 @@ -127895,7 +122015,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+3899, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) + z = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(colv + uintptr(i)*8)))) if z == uintptr(0) { goto malloc_failed } @@ -127911,7 +122031,7 @@ func _sqlite3_get_table_cb(tls *libc.TLS, pArg uintptr, nCol int32, argv uintptr } else { if libc.Int32FromUint32((*TTabResult)(unsafe.Pointer(p)).FnColumn) != nCol { Xsqlite3_free(tls, (*TTabResult)(unsafe.Pointer(p)).FzErrMsg) - (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20599, 0) + (*TTabResult)(unsafe.Pointer(p)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+20590, 0) (*TTabResult)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) return int32(1) } @@ -128001,7 +122121,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+3899, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+48, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg)) } Xsqlite3_free(tls, (*(*TTabResult)(unsafe.Pointer(bp))).FzErrMsg) } @@ -128163,7 +122283,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+20664, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20655, 0) goto trigger_cleanup } iDb = int32(1) @@ -128203,7 +122323,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+20710, *(*uintptr)(unsafe.Pointer(bp))) + _sqlite3FixInit(tls, bp+8, pParse, iDb, __ccgo_ts+20701, *(*uintptr)(unsafe.Pointer(bp))) if _sqlite3FixSrcList(tls, bp+8, pTableName) != 0 { goto trigger_cleanup } @@ -128213,11 +122333,11 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 goto trigger_orphan_error } if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20718, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20709, 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+20759, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20750, 0) goto trigger_orphan_error } /* Check that the trigger name is not reserved and that no trigger of the @@ -128226,13 +122346,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+20710, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { + if _sqlite3CheckObjectName(tls, pParse, zName, __ccgo_ts+20701, (*TTable)(unsafe.Pointer(pTab)).FzName) != 0 { goto trigger_cleanup } if !(libc.Int32FromUint8((*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+20799, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20790, libc.VaList(bp+112, *(*uintptr)(unsafe.Pointer(bp)))) } else { _sqlite3CodeVerifySchema(tls, pParse, iDb) } @@ -128240,8 +122360,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+6689, int32(7)) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20825, 0) + if Xsqlite3_strnicmp(tls, (*TTable)(unsafe.Pointer(pTab)).FzName, __ccgo_ts+6680, int32(7)) == 0 { + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20816, 0) goto trigger_cleanup } /* INSTEAD of triggers are only for views and views only support INSTEAD @@ -128249,15 +122369,15 @@ func _sqlite3BeginTrigger(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 */ if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VIEW) && tr_tm != int32(TK_INSTEAD) { if tr_tm == int32(TK_BEFORE) { - v1 = __ccgo_ts + 20863 + v1 = __ccgo_ts + 20854 } else { - v1 = __ccgo_ts + 20870 + v1 = __ccgo_ts + 20861 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20876, libc.VaList(bp+112, v1, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20867, libc.VaList(bp+112, v1, pTableName+8)) goto trigger_orphan_error } if !(libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VIEW)) && tr_tm == int32(TK_INSTEAD) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20913, libc.VaList(bp+112, pTableName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20904, libc.VaList(bp+112, pTableName+8)) goto trigger_orphan_error } if !(libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).FeParseMode) >= libc.Int32FromInt32(PARSE_MODE_RENAME)) { @@ -128277,9 +122397,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 + 6697 + v3 = __ccgo_ts + 6688 } else { - v3 = __ccgo_ts + 6184 + v3 = __ccgo_ts + 6175 } if _sqlite3AuthCheck(tls, pParse, int32(SQLITE_INSERT), v3, uintptr(0), zDb) != 0 { goto trigger_cleanup @@ -128379,7 +122499,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+20710, bp+96) + _sqlite3FixInit(tls, bp, pParse, iDb, __ccgo_ts+20701, 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 } @@ -128401,7 +122521,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+20959, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+20950, libc.VaList(bp+120, (*TTrigger)(unsafe.Pointer(pTrig)).FzName, (*TTriggerStep)(unsafe.Pointer(pStep)).FzTarget)) goto triggerfinish_cleanup } goto _1 @@ -128417,10 +122537,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+21007, 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+20998, 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+21082, libc.VaList(bp+120, zName)), uint16(0)) + _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, _sqlite3MPrintf(tls, db, __ccgo_ts+21073, libc.VaList(bp+120, zName)), uint16(0)) } } if (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy != 0 { @@ -128688,7 +122808,7 @@ func _sqlite3DropTrigger(tls *libc.TLS, pParse uintptr, pName uintptr, noErr int } if !(pTrigger != 0) { if !(noErr != 0) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21111, libc.VaList(bp+8, pName+8)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21102, libc.VaList(bp+8, pName+8)) } else { _sqlite3CodeVerifyNamedSchema(tls, pParse, zDb) } @@ -128730,9 +122850,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 + 6697 + v1 = __ccgo_ts + 6688 } else { - v1 = __ccgo_ts + 6184 + v1 = __ccgo_ts + 6175 } zTab = v1 if iDb == int32(1) { @@ -128747,7 +122867,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+21131, 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+21122, 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) } @@ -128880,11 +123000,11 @@ func _triggersReallyExist(tls *libc.TLS, pParse uintptr, pTab uintptr, op int32, if libc.Int32FromUint8((*TTable)(unsafe.Pointer(pTab)).FeTabType) == int32(TABTYP_VTAB) { if op != int32(TK_INSERT) { if op == int32(TK_DELETE) { - v1 = __ccgo_ts + 21193 + v1 = __ccgo_ts + 21184 } else { - v1 = __ccgo_ts + 21200 + v1 = __ccgo_ts + 21191 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21207, libc.VaList(bp+8, v1)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21198, libc.VaList(bp+8, v1)) } (*TTrigger)(unsafe.Pointer(p)).Ftr_tm = uint8(TRIGGER_BEFORE) } else { @@ -128986,7 +123106,7 @@ func _isAsteriskTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr) (r int32) { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer((*TExpr)(unsafe.Pointer(pTerm)).FpRight)).Fop) != int32(TK_ASTERISK) { return 0 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21255, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21246, 0) return int32(1) } @@ -129255,7 +123375,7 @@ func _codeTriggerProgram(tls *libc.TLS, pParse uintptr, pStepList uintptr, orcon } (*TParse)(unsafe.Pointer(pParse)).FeOrconf = libc.Uint8FromInt32(v2) if (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan != 0 { - _sqlite3VdbeAddOp4(tls, v, int32(OP_Trace), int32(0x7fffffff), int32(1), 0, _sqlite3MPrintf(tls, db, __ccgo_ts+6381, 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+6372, libc.VaList(bp+48, (*TTriggerStep)(unsafe.Pointer(pStep)).FzSpan)), -int32(6)) } switch libc.Int32FromUint8((*TTriggerStep)(unsafe.Pointer(pStep)).Fop) { case int32(TK_UPDATE): @@ -129359,7 +123479,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+21297, libc.VaList(bp+488, (*TTrigger)(unsafe.Pointer(pTrigger)).FzName)), -int32(6)) + _sqlite3VdbeChangeP4(tls, v, -int32(1), _sqlite3MPrintf(tls, db, __ccgo_ts+21288, 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 @@ -130043,7 +124163,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui chngPk = uint8(1) } else { if libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FcolFlags)&int32(COLFLAG_GENERATED) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21311, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21302, libc.VaList(bp+112, (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName)) goto update_cleanup } } @@ -130056,13 +124176,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+21347, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21338, libc.VaList(bp+112, (*(*TExprList_item)(unsafe.Pointer(pChanges + 8 + uintptr(i)*32))).FzEName)) libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 3, 0x8) goto update_cleanup } } if j < 0 { - v10 = __ccgo_ts + 8130 + v10 = __ccgo_ts + 8121 } else { v10 = (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(j)*16))).FzCnName } @@ -130744,7 +124864,7 @@ func _sqlite3Update(tls *libc.TLS, pParse uintptr, pTabList uintptr, pChanges ui ** that information. */ if regRowCount != 0 { - _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21366) + _sqlite3CodeChangeCount(tls, v, regRowCount, __ccgo_ts+21357) } goto update_cleanup update_cleanup: @@ -131178,9 +125298,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+21379, libc.VaList(bp+224, nClause+int32(1))) + Xsqlite3_snprintf(tls, int32(16), bp+200, __ccgo_ts+21370, libc.VaList(bp+224, nClause+int32(1))) } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21383, libc.VaList(bp+224, bp+200)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+21374, libc.VaList(bp+224, bp+200)) return int32(SQLITE_ERROR) } goto _1 @@ -131283,7 +125403,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+12724, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_Halt), int32(SQLITE_CORRUPT), int32(OE_Abort), 0, __ccgo_ts+12715, -int32(1)) _sqlite3MayAbort(tls, pParse) _sqlite3VdbeJumpHere(tls, v, i) } @@ -131365,7 +125485,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+21456, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21460, uint64(3)) == 0) { + if zSubSql != 0 && (libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21447, uint64(3)) == 0 || libc.Xstrncmp(tls, zSubSql, __ccgo_ts+21451, uint64(3)) == 0) { rc = _execSql(tls, db, pzErrMsg, zSubSql) if rc != SQLITE_OK { break @@ -131495,24 +125615,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) /* Name of the ATTACH-ed database used for vacuum */ if !((*Tsqlite3)(unsafe.Pointer(db)).FautoCommit != 0) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21464) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21455) return int32(SQLITE_ERROR) /* IMP: R-12218-18073 */ } if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive > int32(1) { - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21504) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21495) 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+21547) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21538) return int32(SQLITE_ERROR) } zOut = Xsqlite3_value_text(tls, pOut) *(*uint32)(unsafe.Pointer(db + 76)) &= libc.Uint32FromInt32(^libc.Int32FromInt32(SQLITE_OPEN_READONLY)) *(*uint32)(unsafe.Pointer(db + 76)) |= libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OPEN_CREATE) | libc.Int32FromInt32(SQLITE_OPEN_READWRITE)) } else { - zOut = __ccgo_ts + 1676 + zOut = __ccgo_ts + 1667 } /* Save the current value of the database flags so that it can be ** restored before returning. Then set the writable-schema flag, and @@ -131544,9 +125664,9 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** to write the journal header file. */ Xsqlite3_randomness(tls, int32(8), bp) - Xsqlite3_snprintf(tls, int32(42), bp+8, __ccgo_ts+21565, libc.VaList(bp+80, *(*Tu64)(unsafe.Pointer(bp)))) + Xsqlite3_snprintf(tls, int32(42), bp+8, __ccgo_ts+21556, libc.VaList(bp+80, *(*Tu64)(unsafe.Pointer(bp)))) nDb = (*Tsqlite3)(unsafe.Pointer(db)).FnDb - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21580, libc.VaList(bp+80, zOut, bp+8)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21571, libc.VaList(bp+80, zOut, bp+8)) (*Tsqlite3)(unsafe.Pointer(db)).FopenFlags = saved_openFlags if rc != SQLITE_OK { goto end_of_vacuum @@ -131558,7 +125678,7 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p *(*Ti64)(unsafe.Pointer(bp + 56)) = 0 if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != uintptr(0) && (_sqlite3OsFileSize(tls, id, bp+56) != SQLITE_OK || *(*Ti64)(unsafe.Pointer(bp + 56)) > 0) { rc = int32(SQLITE_ERROR) - _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21596) + _sqlite3SetString(tls, pzErrMsg, db, __ccgo_ts+21587) goto end_of_vacuum } *(*Tu32)(unsafe.Pointer(db + 44)) |= uint32(DBFLAG_VacuumInto) @@ -131575,7 +125695,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+15101) + rc = _execSql(tls, db, pzErrMsg, __ccgo_ts+15092) if rc != SQLITE_OK { goto end_of_vacuum } @@ -131606,11 +125726,11 @@ func _sqlite3RunVacuum(tls *libc.TLS, pzErrMsg uintptr, db uintptr, iDb int32, p ** in the temporary database. */ (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = libc.Uint8FromInt32(nDb) /* force new CREATE statements into vacuum_db */ - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21623, libc.VaList(bp+80, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21614, libc.VaList(bp+80, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } - rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21731, libc.VaList(bp+80, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21722, libc.VaList(bp+80, zDbMain)) if rc != SQLITE_OK { goto end_of_vacuum } @@ -131619,7 +125739,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+21785, libc.VaList(bp+80, bp+8, zDbMain, bp+8)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21776, libc.VaList(bp+80, bp+8, zDbMain, bp+8)) *(*Tu32)(unsafe.Pointer(db + 44)) &= libc.Uint32FromInt32(^libc.Int32FromInt32(DBFLAG_Vacuum)) if rc != SQLITE_OK { goto end_of_vacuum @@ -131629,7 +125749,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+21922, libc.VaList(bp+80, bp+8, zDbMain)) + rc = _execSqlF(tls, db, pzErrMsg, __ccgo_ts+21913, libc.VaList(bp+80, bp+8, zDbMain)) if rc != 0 { goto end_of_vacuum } @@ -131720,39 +125840,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131763,7 +125850,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131782,7 +125869,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131807,15 +125894,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131830,13 +125917,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132156,7 +126245,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+12954, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+12945, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTable)).FzName)) } azModuleArg = _sqlite3DbRealloc(tls, db, (*(*struct { FnArg int32 @@ -132279,7 +126368,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { if pEnd != 0 { (*TParse)(unsafe.Pointer(pParse)).FsNameToken.Fn = libc.Uint32FromInt32(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+22045, libc.VaList(bp+8, pParse+232)) + zStmt = _sqlite3MPrintf(tls, db, __ccgo_ts+22036, libc.VaList(bp+8, pParse+232)) /* 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. @@ -132289,7 +126378,7 @@ 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+22069, 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, (*(*struct { + _sqlite3NestedParse(tls, pParse, __ccgo_ts+22060, 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, (*(*struct { FaddrCrTab int32 FregRowid int32 FregRoot int32 @@ -132298,7 +126387,7 @@ func _sqlite3VtabFinishParse(tls *libc.TLS, pParse uintptr, pEnd uintptr) { v = _sqlite3GetVdbe(tls, pParse) _sqlite3ChangeCookie(tls, pParse, iDb) _sqlite3VdbeAddOp0(tls, v, int32(OP_Expire)) - zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+22168, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) + zWhere = _sqlite3MPrintf(tls, db, __ccgo_ts+22159, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, zStmt)) _sqlite3VdbeAddParseSchemaOp(tls, v, iDb, zWhere, uint16(0)) _sqlite3DbFree(tls, db, zStmt) v2 = pParse + 64 @@ -132358,7 +126447,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132385,7 +126474,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+22187, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22178, libc.VaList(bp+48, (*TTable)(unsafe.Pointer(pTab)).FzName)) return int32(SQLITE_LOCKED) } goto _1 @@ -132419,7 +126508,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132427,9 +126516,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+22229, libc.VaList(bp+48, zModuleName)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22220, libc.VaList(bp+48, zModuleName)) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3899, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+3890, libc.VaList(bp+48, *(*uintptr)(unsafe.Pointer(bp + 32)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 32))) } _sqlite3DbFree(tls, db, pVTable) @@ -132442,7 +126531,7 @@ 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 + 22259 + zFormat = __ccgo_ts + 22250 *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, zFormat, libc.VaList(bp+48, zModuleName)) _sqlite3VtabUnlock(tls, pVTable) rc = int32(SQLITE_ERROR) @@ -132468,7 +126557,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+1676) + zType = _sqlite3ColumnType(tls, (*TTable)(unsafe.Pointer(pTab)).FaCol+uintptr(iCol)*16, __ccgo_ts+1667) i = 0 nType = _sqlite3Strlen30(tls, zType) i = 0 @@ -132476,7 +126565,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, if !(i < nType) { break } - if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16851, zType+uintptr(i), int32(6)) && (i == 0 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { + if 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+16842, zType+uintptr(i), int32(6)) && (i == 0 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zType + uintptr(i-int32(1))))) == int32(' ')) && (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32('\000') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zType + uintptr(i+int32(6))))) == int32(' ')) { break } goto _3 @@ -132557,13 +126646,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+22305, libc.VaList(bp+16, zModule)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22296, 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+3899, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3890, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) (*TParse)(unsafe.Pointer(pParse)).Frc = rc } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) @@ -132644,7 +126733,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+22305, libc.VaList(bp+8, zMod)) + *(*uintptr)(unsafe.Pointer(pzErr)) = _sqlite3MPrintf(tls, db, __ccgo_ts+22296, 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) @@ -132692,7 +126781,7 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r i z += uintptr(_sqlite3GetToken(tls, z, bp+424)) } if *(*int32)(unsafe.Pointer(bp + 424)) != libc.Int32FromUint8(_aKeyword1[i]) { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22324, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+22315, 0) return int32(SQLITE_ERROR) } goto _1 @@ -132703,9 +126792,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -132747,7 +126836,7 @@ 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 { - v3 = __ccgo_ts + 3899 + v3 = __ccgo_ts + 3890 } else { v3 = uintptr(0) } @@ -133223,7 +127312,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+3899, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+3890, libc.VaList(bp+16, *(*uintptr)(unsafe.Pointer(bp)))) _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(bp))) _sqlite3VtabEponymousTableClear(tls, db, pMod) } @@ -133287,7 +127376,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133300,7 +127389,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133560,435 +127649,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff uint8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134020,10 +127680,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 + 22337 + return __ccgo_ts + 22328 } if i == -int32(1) { - return __ccgo_ts + 16960 + return __ccgo_ts + 16951 } return (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer((*TIndex)(unsafe.Pointer(pIdx)).FpTable)).FaCol + uintptr(i)*16))).FzCnName } @@ -134042,10 +127702,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+22344, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22335, int32(5)) } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22350, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22341, int32(1)) } i = 0 for { @@ -134053,7 +127713,7 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13344, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13335, int32(1)) } Xsqlite3_str_appendall(tls, pStr, _explainIndexColumnName(tls, pIdx, iTerm+i)) goto _1 @@ -134062,11 +127722,11 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5210, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5201, int32(1)) } Xsqlite3_str_append(tls, pStr, zOp, int32(1)) if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22350, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22341, int32(1)) } i = 0 for { @@ -134074,16 +127734,16 @@ func _explainAppendTerm(tls *libc.TLS, pStr uintptr, pIdx uintptr, nTerm int32, break } if i != 0 { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+13344, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+13335, int32(1)) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5212, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5203, int32(1)) goto _2 _2: ; i++ } if nTerm > int32(1) { - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5210, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5201, int32(1)) } } @@ -134130,7 +127790,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { if libc.Int32FromUint16(nEq) == 0 && (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&libc.Uint32FromInt32(libc.Int32FromInt32(WHERE_BTM_LIMIT)|libc.Int32FromInt32(WHERE_TOP_LIMIT)) == uint32(0) { return } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+22352, int32(2)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22343, int32(2)) i = 0 for { if !(i < libc.Int32FromUint16(nEq)) { @@ -134138,12 +127798,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+22344, int32(5)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+22335, int32(5)) } if i >= libc.Int32FromUint16(nSkip) { - v2 = __ccgo_ts + 22355 + v2 = __ccgo_ts + 22346 } else { - v2 = __ccgo_ts + 22360 + v2 = __ccgo_ts + 22351 } Xsqlite3_str_appendf(tls, pStr, v2, libc.VaList(bp+8, z)) goto _1 @@ -134160,7 +127820,7 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { FnDistinctCol Tu16 FpIndex uintptr FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnBtm), j, i, __ccgo_ts+22368) + })(unsafe.Pointer(pLoop + 24))).FnBtm), j, i, __ccgo_ts+22359) i = int32(1) } if (*TWhereLoop)(unsafe.Pointer(pLoop)).FwsFlags&uint32(WHERE_TOP_LIMIT) != 0 { @@ -134171,9 +127831,9 @@ func _explainIndexRange(tls *libc.TLS, pStr uintptr, pLoop uintptr) { FnDistinctCol Tu16 FpIndex uintptr FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnTop), j, i, __ccgo_ts+22370) + })(unsafe.Pointer(pLoop + 24))).FnTop), j, i, __ccgo_ts+22361) } - Xsqlite3_str_append(tls, pStr, __ccgo_ts+5210, int32(1)) + Xsqlite3_str_append(tls, pStr, __ccgo_ts+5201, int32(1)) } // C documentation @@ -134218,11 +127878,11 @@ func _sqlite3WhereAddExplainText(tls *libc.TLS, pParse uintptr, addr int32, pTab _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 + 22372 + v2 = __ccgo_ts + 22363 } else { - v2 = __ccgo_ts + 22379 + v2 = __ccgo_ts + 22370 } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22384, libc.VaList(bp+144, v2, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22375, libc.VaList(bp+144, v2, pItem)) if flags&libc.Uint32FromInt32(libc.Int32FromInt32(WHERE_IPK)|libc.Int32FromInt32(WHERE_VIRTUALTABLE)) == uint32(0) { zFmt = uintptr(0) pIdx = (*(*struct { @@ -134235,37 +127895,37 @@ func _sqlite3WhereAddExplainText(tls *libc.TLS, pParse uintptr, addr int32, pTab })(unsafe.Pointer(pLoop + 24))).FpIndex if !((*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pItem)).FpSTab)).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 + 11507 + zFmt = __ccgo_ts + 11498 } } else { if flags&uint32(WHERE_PARTIALIDX) != 0 { - zFmt = __ccgo_ts + 22390 + zFmt = __ccgo_ts + 22381 } else { if flags&uint32(WHERE_AUTO_INDEX) != 0 { - zFmt = __ccgo_ts + 22423 + zFmt = __ccgo_ts + 22414 } else { if flags&libc.Uint32FromInt32(libc.Int32FromInt32(WHERE_IDX_ONLY)|libc.Int32FromInt32(WHERE_EXPRIDX)) != 0 { - zFmt = __ccgo_ts + 22448 + zFmt = __ccgo_ts + 22439 } else { - zFmt = __ccgo_ts + 22466 + zFmt = __ccgo_ts + 22457 } } } } if zFmt != 0 { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22475, int32(7)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22466, 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 + 16960 - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22483, libc.VaList(bp+144, zRowid)) + zRowid = __ccgo_ts + 16951 + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22474, libc.VaList(bp+144, zRowid)) if flags&libc.Uint32FromInt32(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+22514, libc.VaList(bp+144, zRowid)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22505, libc.VaList(bp+144, zRowid)) cRangeOp = uint8('<') } else { if flags&uint32(WHERE_BTM_LIMIT) != 0 { @@ -134275,14 +127935,14 @@ func _sqlite3WhereAddExplainText(tls *libc.TLS, pParse uintptr, addr int32, pTab } } } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22524, libc.VaList(bp+144, libc.Int32FromUint8(cRangeOp))) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22515, libc.VaList(bp+144, libc.Int32FromUint8(cRangeOp))) } else { if flags&uint32(WHERE_VIRTUALTABLE) != uint32(0) { - Xsqlite3_str_appendall(tls, bp, __ccgo_ts+22529) + Xsqlite3_str_appendall(tls, bp, __ccgo_ts+22520) if int32(Tu32(*(*uint8)(unsafe.Pointer(pLoop + 24 + 4))&0x4>>2)) != 0 { - v3 = __ccgo_ts + 22551 + v3 = __ccgo_ts + 22542 } else { - v3 = __ccgo_ts + 22559 + v3 = __ccgo_ts + 22550 } Xsqlite3_str_appendf(tls, bp, v3, libc.VaList(bp+144, (*(*struct { FidxNum int32 @@ -134303,7 +127963,7 @@ func _sqlite3WhereAddExplainText(tls *libc.TLS, pParse uintptr, addr int32, pTab } } if libc.Int32FromUint8((*TSrcItem)(unsafe.Pointer(pItem)).Ffg.Fjointype)&int32(JT_LEFT) != 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22565, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22556, 0) } _sqlite3DbFree(tls, db, *(*uintptr)(unsafe.Pointer(pOp + 16))) (*TVdbeOp)(unsafe.Pointer(pOp)).Fp4type = int8(-libc.Int32FromInt32(6)) @@ -134333,10 +127993,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -134369,14 +128029,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+22576, libc.VaList(bp+144, pItem)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22567, 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)).FpSTab if int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) >= 0 { - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22355, 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+22346, 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+22597, 0) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22588, 0) } } else { i = libc.Int32FromUint16((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) @@ -134400,16 +128060,16 @@ func _sqlite3WhereExplainBloomFilter(tls *libc.TLS, pParse uintptr, pWInfo uintp FpOrderBy uintptr })(unsafe.Pointer(pLoop + 24))).FpIndex, i) if i > libc.Int32FromUint16((*TWhereLoop)(unsafe.Pointer(pLoop)).FnSkip) { - Xsqlite3_str_append(tls, bp, __ccgo_ts+22344, int32(5)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+22335, int32(5)) } - Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22355, libc.VaList(bp+144, z)) + Xsqlite3_str_appendf(tls, bp, __ccgo_ts+22346, libc.VaList(bp+144, z)) goto _1 _1: ; i++ } } - Xsqlite3_str_append(tls, bp, __ccgo_ts+5210, int32(1)) + Xsqlite3_str_append(tls, bp, __ccgo_ts+5201, 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 @@ -134959,7 +128619,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135309,7 +128969,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136325,7 +129985,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+22605, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22596, 0) ii = 0 for { if !(ii < (*TWhereClause)(unsafe.Pointer(pOrWc)).FnTerm) { @@ -136348,7 +130008,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+22620, libc.VaList(bp+96, ii+int32(1))) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22611, 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)) @@ -136848,14 +130508,14 @@ 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)*80 mAll = uint64(0) - _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22629, libc.VaList(bp+96, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpSTab)).FzName)) + _sqlite3VdbeExplain(tls, pParse, uint8(1), __ccgo_ts+22620, libc.VaList(bp+96, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pTabItem)).FpSTab)).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)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -137386,19 +131046,19 @@ var _aOp = [4]struct { FeOp2 uint8 }{ 0: { - FzOp: __ccgo_ts + 16809, + FzOp: __ccgo_ts + 16800, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_MATCH), }, 1: { - FzOp: __ccgo_ts + 16143, + FzOp: __ccgo_ts + 16134, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_GLOB), }, 2: { - FzOp: __ccgo_ts + 15602, + FzOp: __ccgo_ts + 15593, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_LIKE), }, 3: { - FzOp: __ccgo_ts + 22643, + FzOp: __ccgo_ts + 22634, FeOp2: uint8(SQLITE_INDEX_CONSTRAINT_REGEXP), }, } @@ -138190,7 +131850,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+22650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22641, 0) return } } else { @@ -138202,7 +131862,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 && libc.Int32FromUint8((*(*TSrcItem)(unsafe.Pointer(pSrc + 8))).Ffg.Fjointype)&int32(JT_LTORJ) != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22650, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22641, 0) return } *(*Tu32)(unsafe.Pointer(pExpr + 4)) &= ^libc.Uint32FromInt32(libc.Int32FromInt32(EP_InnerON)) @@ -138286,7 +131946,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { } else { if op == int32(TK_ISNULL) && !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(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 + 8116 + *(*uintptr)(unsafe.Pointer(pExpr + 8)) = __ccgo_ts + 8107 *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_IsFalse)) (*TWhereTerm)(unsafe.Pointer(pTerm)).FprereqAll = uint64(0) (*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator = uint16(0) @@ -138387,7 +132047,7 @@ func _exprAnalyze(tls *libc.TLS, pSrc uintptr, pWC uintptr, idxTerm int32) { *(*Tu8)(unsafe.Pointer(pC))++ } if *(*int32)(unsafe.Pointer(bp + 12)) != 0 { - v13 = __ccgo_ts + 22691 + v13 = __ccgo_ts + 22682 } else { v13 = uintptr(unsafe.Pointer(&_sqlite3StrBINARY)) } @@ -138918,7 +132578,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+22698, libc.VaList(bp+8, (*TTable)(unsafe.Pointer(pTab)).FzName, j)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22689, 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) @@ -138994,16 +132654,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -139116,7 +132766,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140032,7 +133682,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)<>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -143014,7 +136655,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -143043,19 +136684,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143357,6 +136998,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143670,7 +137319,7 @@ func _whereLoopAddVirtualOne(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask, pTerm1 = v4 } if v5 || v4 == uintptr(0) || *(*uintptr)(unsafe.Pointer((*TWhereLoop)(unsafe.Pointer(pNew)).FaLTerm + uintptr(iTerm)*8)) != uintptr(0) || libc.Int32FromUint8((*Tsqlite3_index_constraint)(unsafe.Pointer(pIdxCons)).Fusable) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22771, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpSTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22762, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpSTab)).FzName)) _freeIdxStr(tls, pIdxInfo) return int32(SQLITE_ERROR) } @@ -143745,7 +137394,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+22771, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpSTab)).FzName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22762, libc.VaList(bp+8, (*TTable)(unsafe.Pointer((*TSrcItem)(unsafe.Pointer(pSrc)).FpSTab)).FzName)) _freeIdxStr(tls, pIdxInfo) return int32(SQLITE_ERROR) } @@ -143899,7 +137548,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144335,7 +137984,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+22797, 0) + Xsqlite3_log(tls, int32(SQLITE_WARNING), __ccgo_ts+22788, 0) rc = SQLITE_OK } else { break @@ -144564,17 +138213,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -145543,7 +139181,7 @@ func _wherePathSolver(tls *libc.TLS, pWInfo uintptr, nRowEst TLogEst) (r int32) iLoop++ } if nFrom == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22832, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22823, 0) _sqlite3DbFreeNN(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pSpace) return int32(SQLITE_ERROR) } @@ -146277,7 +139915,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** bits in a Bitmask */ if (*TSrcList)(unsafe.Pointer(pTabList)).FnSrc > libc.Int32FromUint64(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22850, libc.VaList(bp+64, libc.Int32FromUint64(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22841, libc.VaList(bp+64, libc.Int32FromUint64(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(8)))) return uintptr(0) } /* This function normally generates a nested loop for all tables in @@ -146347,7 +139985,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere (*TWhereInfo)(unsafe.Pointer(pWInfo)).FeDistinct = uint8(WHERE_DISTINCT_UNIQUE) } 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+22878, 0) + _sqlite3VdbeExplain(tls, pParse, uint8(0), __ccgo_ts+22869, 0) } } else { /* Assign a bit from the bitmask to every term in the FROM clause. @@ -146549,7 +140187,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146562,7 +140200,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146741,7 +140379,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -147089,7 +140727,7 @@ func _sqlite3WhereEnd(tls *libc.TLS, pWInfo uintptr) { /* An error. pLoop is supposed to be a covering index loop, ** and yet the VM code refers to a column of the table that ** is not part of the index. */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22896, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+22887, 0) (*TParse)(unsafe.Pointer(pParse)).Frc = int32(SQLITE_INTERNAL) } else { /* The WHERE_EXPRIDX flag is set by the planner when it is likely @@ -147408,7 +141046,7 @@ func _nth_valueStepFunc(tls *libc.TLS, pCtx uintptr, nArg int32, apArg uintptr) goto error_out error_out: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22925, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22916, -int32(1)) } func _nth_valueFinalizeFunc(tls *libc.TLS, pCtx uintptr) { @@ -147590,7 +141228,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+22981, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+22972, -int32(1)) } } (*TNtileCtx)(unsafe.Pointer(p)).FnTotal++ @@ -147916,7 +141554,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+23026, libc.VaList(bp+8, zName)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23017, libc.VaList(bp+8, zName)) } return p } @@ -147967,12 +141605,12 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin _sqlite3WindowChain(tls, pParse, pWin, pList) } if libc.Int32FromUint8((*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+23045, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23036, 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+23116, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23107, 0) } else { aUp = [8]struct { FzFunc uintptr @@ -148045,7 +141683,7 @@ func _sqlite3WindowUpdate(tls *libc.TLS, pParse uintptr, pList uintptr, pWin uin (*TWindow)(unsafe.Pointer(pWin)).FeEnd = libc.Uint8FromInt32(aUp[i].FeEnd) (*TWindow)(unsafe.Pointer(pWin)).FeExclude = uint8(0) if libc.Int32FromUint8((*TWindow)(unsafe.Pointer(pWin)).FeStart) == int32(TK_FOLLOWING) { - (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8355) + (*TWindow)(unsafe.Pointer(pWin)).FpStart = _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+8346) } break } @@ -148076,16 +141714,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -148104,17 +141732,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -148132,7 +141760,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -148156,13 +141784,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -148177,9 +141805,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -148187,13 +141815,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148209,13 +141837,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -148327,7 +141955,7 @@ func _disallowAggregatesInOrderByCb(tls *libc.TLS, pWalker uintptr, pExpr uintpt bp := tls.Alloc(16) defer tls.Free(16) if libc.Int32FromUint8((*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+23179, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) + _sqlite3ErrorMsg(tls, (*TWalker)(unsafe.Pointer(pWalker)).FpParse, __ccgo_ts+23170, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(pExpr + 8)))) } return WRC_Continue } @@ -148468,7 +142096,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+1822)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3ExprListAppend(tls, pParse, uintptr(0), _sqlite3Expr(tls, db, int32(TK_INTEGER), __ccgo_ts+1813)) } 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)) @@ -148614,7 +142242,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+23205, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23196, 0) goto windowAllocErr } pWin = _sqlite3DbMallocZero(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, uint64(144)) @@ -148682,18 +142310,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 + 23237 + zErr = __ccgo_ts + 23228 } else { if (*TWindow)(unsafe.Pointer(pExist)).FpOrderBy != 0 && (*TWindow)(unsafe.Pointer(pWin)).FpOrderBy != 0 { - zErr = __ccgo_ts + 23254 + zErr = __ccgo_ts + 23245 } else { if libc.Int32FromUint8((*TWindow)(unsafe.Pointer(pExist)).FbImplicitFrame) == 0 { - zErr = __ccgo_ts + 23270 + zErr = __ccgo_ts + 23261 } } } if zErr != 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23290, libc.VaList(bp+8, zErr, (*TWindow)(unsafe.Pointer(pWin)).FzBase)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23281, 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 { @@ -148717,7 +142345,7 @@ func _sqlite3WindowAttach(tls *libc.TLS, pParse uintptr, p uintptr, pWin uintptr *(*Tu32)(unsafe.Pointer(p + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc) | libc.Int32FromInt32(EP_FullSize)) (*TWindow)(unsafe.Pointer(pWin)).FpOwner = p if (*TExpr)(unsafe.Pointer(p)).Fflags&uint32(EP_Distinct) != 0 && libc.Int32FromUint8((*TWindow)(unsafe.Pointer(pWin)).FeFrmType) != int32(TK_FILTER) { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23323, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23314, 0) } } else { _sqlite3WindowDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pWin) @@ -148916,7 +142544,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+1676, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1667, -int32(1)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Ge), regString, _sqlite3VdbeCurrentAddr(tls, v)+int32(2), reg) _sqlite3VdbeChangeP5(tls, v, libc.Uint16FromInt32(libc.Int32FromInt32(SQLITE_AFF_NUMERIC)|libc.Int32FromInt32(SQLITE_JUMPIFNULL))) } else { @@ -148935,11 +142563,11 @@ func _windowCheckValue(tls *libc.TLS, pParse uintptr, reg int32, eCond int32) { } var _azErr = [5]uintptr{ - 0: __ccgo_ts + 23370, - 1: __ccgo_ts + 23423, - 2: __ccgo_ts + 22925, - 3: __ccgo_ts + 23474, - 4: __ccgo_ts + 23526, + 0: __ccgo_ts + 23361, + 1: __ccgo_ts + 23414, + 2: __ccgo_ts + 22916, + 3: __ccgo_ts + 23465, + 4: __ccgo_ts + 23517, } var _aOp1 = [5]int32{ @@ -148992,87 +142620,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -149691,7 +143238,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+1676, -int32(1)) + _sqlite3VdbeAddOp4(tls, v, int32(OP_String8), 0, regString, 0, __ccgo_ts+1667, -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) @@ -150687,7 +144234,7 @@ type FrameBound = TFrameBound func _parserSyntaxError(tls *libc.TLS, pParse uintptr, p uintptr) { bp := tls.Alloc(16) defer tls.Free(16) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23576, libc.VaList(bp+8, p)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23567, libc.VaList(bp+8, p)) } // C documentation @@ -150735,11 +144282,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 + 23600 + v1 = __ccgo_ts + 23591 } else { - v1 = __ccgo_ts + 23609 + v1 = __ccgo_ts + 23600 } - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23615, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(pNext)).Fop)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23606, libc.VaList(bp+8, v1, _sqlite3SelectOpName(tls, libc.Int32FromUint8((*TSelect)(unsafe.Pointer(pNext)).Fop)))) break } } @@ -150748,7 +144295,7 @@ func _parserDoubleLinkSelect(tls *libc.TLS, pParse uintptr, p uintptr) { mxSelect = v2 } if v3 && v2 > 0 && cnt > mxSelect { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23657, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23648, 0) } } } @@ -150854,7 +144401,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)) && libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).Finit1.Fbusy) == 0 { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23691, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23682, libc.VaList(bp+8, (*TToken)(unsafe.Pointer(pIdToken)).Fn, (*TToken)(unsafe.Pointer(pIdToken)).Fz)) } _sqlite3ExprListSetName(tls, pParse, p, pIdToken, int32(1)) return p @@ -157321,14 +150868,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157339,16 +150878,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -159311,20 +152840,20 @@ _30: 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+16960, int32(5)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(5) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16951, int32(5)) == 0 { *(*Tu32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) = libc.Uint32FromInt32(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+23729, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23720, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) } 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+16896, int32(6)) == 0 { + if *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)) == uint32(6) && Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(yymsp + 8)), __ccgo_ts+16887, 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+23729, libc.VaList(bp+128, *(*uint32)(unsafe.Pointer(yymsp + 8 + 8)), *(*uintptr)(unsafe.Pointer(yymsp + 8)))) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23720, 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 _346 @@ -159967,7 +153496,7 @@ _176: _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+23756) + _sqlite3ExprListCheckLength(tls, pParse, *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(2))*24 + 8)), __ccgo_ts+23747) 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) { @@ -160308,9 +153837,9 @@ _237: ; /* expr ::= expr in_op LP exprlist RP */ if *(*uintptr)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(1))*24 + 8)) == uintptr(0) { if *(*int32)(unsafe.Pointer(yymsp + uintptr(-libc.Int32FromInt32(3))*24 + 8)) != 0 { - v347 = __ccgo_ts + 8111 + v347 = __ccgo_ts + 8102 } else { - v347 = __ccgo_ts + 8116 + v347 = __ccgo_ts + 8107 } /* Expressions of the form ** @@ -160575,15 +154104,15 @@ _276: _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+23765, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23756, 0) goto _346 _278: ; /* tridxby ::= INDEXED BY nm */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23860, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23851, 0) goto _346 _279: ; /* tridxby ::= NOT INDEXED */ - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23944, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+23935, 0) goto _346 _280: ; /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ @@ -160919,7 +154448,7 @@ func _yy_syntax_error(tls *libc.TLS, yypParser uintptr, yymajor int32, _yyminor if *(*uint8)(unsafe.Pointer((*(*TToken)(unsafe.Pointer(bp))).Fz)) != 0 { _parserSyntaxError(tls, pParse, bp) } else { - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24029, 0) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24020, 0) } /************ End %syntax_error code ******************************************/ /* Suppress warning about unused %extra_argument variable */ @@ -163659,7 +157188,7 @@ func _sqlite3RunParser(tls *libc.TLS, pParse uintptr, zSql uintptr) (r int32) { if *(*int32)(unsafe.Pointer(bp)) != int32(TK_QNUMBER) { (*(*TToken)(unsafe.Pointer(bp + 2440))).Fz = zSql (*(*TToken)(unsafe.Pointer(bp + 2440))).Fn = libc.Uint32FromInt32(n) - _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24046, libc.VaList(bp+2464, bp+2440)) + _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+24037, libc.VaList(bp+2464, bp+2440)) break } } @@ -163683,10 +157212,10 @@ 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+3899, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) + (*TParse)(unsafe.Pointer(pParse)).FzErrMsg = _sqlite3MPrintf(tls, db, __ccgo_ts+3890, libc.VaList(bp+2464, _sqlite3ErrStr(tls, (*TParse)(unsafe.Pointer(pParse)).Frc))) } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(pParse)).FprepFlags)&int32(SQLITE_PREPARE_DONT_LOG) == 0 { - Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+24071, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) + Xsqlite3_log(tls, (*TParse)(unsafe.Pointer(pParse)).Frc, __ccgo_ts+24062, libc.VaList(bp+2464, (*TParse)(unsafe.Pointer(pParse)).FzErrMsg, (*TParse)(unsafe.Pointer(pParse)).FzTail)) } nErr++ } @@ -163879,7 +157408,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+24082, int32(6)) == 0 { + if nId == int32(6) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24073, int32(6)) == 0 { token = uint8(tkCREATE) } else { token = uint8(tkOTHER) @@ -163887,13 +157416,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+20710, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+20701, int32(7)) == 0 { token = uint8(tkTRIGGER) } else { - if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24089, int32(4)) == 0 { + if nId == int32(4) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24080, int32(4)) == 0 { token = uint8(tkTEMP) } else { - if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24094, int32(9)) == 0 { + if nId == int32(9) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24085, int32(9)) == 0 { token = uint8(tkTEMP) } else { token = uint8(tkOTHER) @@ -163903,10 +157432,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+24104, int32(3)) == 0 { + if nId == int32(3) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24095, int32(3)) == 0 { token = uint8(tkEND) } else { - if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24108, int32(7)) == 0 { + if nId == int32(7) && Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+24099, int32(7)) == 0 { token = uint8(tkEXPLAIN) } else { token = uint8(tkOTHER) @@ -164324,7 +157853,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)<= 0 && rc < libc.Int32FromUint64(libc.Uint64FromInt64(232)/libc.Uint64FromInt64(8)) && _aMsg[rc] != uintptr(0) { @@ -165482,31 +159011,31 @@ func _sqlite3ErrStr(tls *libc.TLS, rc int32) (r uintptr) { } var _aMsg = [29]uintptr{ - 0: __ccgo_ts + 24184, - 1: __ccgo_ts + 24197, - 3: __ccgo_ts + 24213, - 4: __ccgo_ts + 24238, - 5: __ccgo_ts + 24252, - 6: __ccgo_ts + 24271, - 7: __ccgo_ts + 1646, - 8: __ccgo_ts + 24296, - 9: __ccgo_ts + 24333, - 10: __ccgo_ts + 24345, - 11: __ccgo_ts + 24360, - 12: __ccgo_ts + 24393, - 13: __ccgo_ts + 24411, - 14: __ccgo_ts + 24436, - 15: __ccgo_ts + 24465, - 17: __ccgo_ts + 6139, - 18: __ccgo_ts + 5543, - 19: __ccgo_ts + 24482, - 20: __ccgo_ts + 24500, - 21: __ccgo_ts + 24518, - 23: __ccgo_ts + 24552, - 25: __ccgo_ts + 24573, - 26: __ccgo_ts + 24599, - 27: __ccgo_ts + 24622, - 28: __ccgo_ts + 24643, + 0: __ccgo_ts + 24175, + 1: __ccgo_ts + 24188, + 3: __ccgo_ts + 24204, + 4: __ccgo_ts + 24229, + 5: __ccgo_ts + 24243, + 6: __ccgo_ts + 24262, + 7: __ccgo_ts + 1637, + 8: __ccgo_ts + 24287, + 9: __ccgo_ts + 24324, + 10: __ccgo_ts + 24336, + 11: __ccgo_ts + 24351, + 12: __ccgo_ts + 24384, + 13: __ccgo_ts + 24402, + 14: __ccgo_ts + 24427, + 15: __ccgo_ts + 24456, + 17: __ccgo_ts + 6130, + 18: __ccgo_ts + 5534, + 19: __ccgo_ts + 24473, + 20: __ccgo_ts + 24491, + 21: __ccgo_ts + 24509, + 23: __ccgo_ts + 24543, + 25: __ccgo_ts + 24564, + 26: __ccgo_ts + 24590, + 27: __ccgo_ts + 24613, + 28: __ccgo_ts + 24634, } // C documentation @@ -165600,15 +159129,17 @@ func _sqlite3InvokeBusyHandler(tls *libc.TLS, p uintptr) (r int32) { return rc } +type t__ccgo_fp__Xsqlite3_busy_handler_1 = func(*libc.TLS, uintptr, int32) int32 + // C documentation // // /* // ** This routine sets the busy callback for an Sqlite database to the // ** given callback function with the given argument. // */ -func Xsqlite3_busy_handler(tls *libc.TLS, db uintptr, xBusy uintptr, pArg uintptr) (r int32) { +func Xsqlite3_busy_handler(tls *libc.TLS, db uintptr, __ccgo_fp_xBusy uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FxBusyHandler = xBusy + (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FxBusyHandler = __ccgo_fp_xBusy (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FpBusyArg = pArg (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 (*Tsqlite3)(unsafe.Pointer(db)).FbusyTimeout = 0 @@ -165616,6 +159147,8 @@ func Xsqlite3_busy_handler(tls *libc.TLS, db uintptr, xBusy uintptr, pArg uintpt return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_progress_handler_2 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165623,10 +159156,10 @@ func Xsqlite3_busy_handler(tls *libc.TLS, db uintptr, xBusy uintptr, pArg uintpt // ** given callback function with the given argument. The progress callback will // ** be invoked every nOps opcodes. // */ -func Xsqlite3_progress_handler(tls *libc.TLS, db uintptr, nOps int32, xProgress uintptr, pArg uintptr) { +func Xsqlite3_progress_handler(tls *libc.TLS, db uintptr, nOps int32, __ccgo_fp_xProgress uintptr, pArg uintptr) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if nOps > 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165694,12 +159227,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165717,9 +159250,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165742,13 +159275,13 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i p = _sqlite3FindFunction(tls, db, zFunctionName, nArg, libc.Uint8FromInt32(enc), uint8(0)) if p != 0 && (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) == libc.Uint32FromInt32(enc) && int32((*TFuncDef)(unsafe.Pointer(p)).FnArg) == nArg { if (*Tsqlite3)(unsafe.Pointer(db)).FnVdbeActive != 0 { - _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24740, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24731, 0) return int32(SQLITE_BUSY) } else { _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165766,15 +159299,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165789,27 +159322,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165820,30 +159353,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165868,7 +159431,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+24803, libc.VaList(bp+8, zName)) + zErr = Xsqlite3_mprintf(tls, __ccgo_ts+24794, libc.VaList(bp+8, zName)) Xsqlite3_result_error(tls, context, zErr, -int32(1)) Xsqlite3_free(tls, zErr) } @@ -165899,13 +159462,15 @@ 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+3899, libc.VaList(bp+8, zName)) + zCopy = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, zName)) if zCopy == uintptr(0) { return int32(SQLITE_NOMEM) } return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165916,43 +159481,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -165963,12 +159532,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -165980,6 +159549,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165987,82 +159558,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -166106,18 +159687,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -166143,7 +159726,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -166153,7 +159736,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+24854, libc.VaList(bp+8, zDb)) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_ERROR), __ccgo_ts+24845, libc.VaList(bp+8, zDb)) } else { (*Tsqlite3)(unsafe.Pointer(db)).FbusyHandler.FnBusy = 0 rc = _sqlite3Checkpoint(tls, db, iDb, eMode, pnLog, pnCkpt) @@ -166275,7 +159858,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166407,7 +159990,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166417,7 +160000,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166453,7 +160036,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166466,7 +160049,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166475,7 +160058,7 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui pColl = _sqlite3FindCollSeq(tls, db, libc.Uint8FromInt32(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+24875, 0) + _sqlite3ErrorWithMsg(tls, db, int32(SQLITE_BUSY), __ccgo_ts+24866, 0) return int32(SQLITE_BUSY) } _sqlite3ExpirePreparedStatements(tls, db, 0) @@ -166510,9 +160093,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -166622,7 +160205,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+24943, 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+24934, uint64(5)) == 0 { /* Input character index */ iOut = 0 /* Output character index */ nByte = libc.Uint64FromInt32(nUri + int32(8)) /* Bytes of space to allocate */ /* Make sure the SQLITE_OPEN_URI flag is set to indicate to the VFS xOpen @@ -166652,8 +160235,8 @@ func _sqlite3ParseUri(tls *libc.TLS, zDefaultVfs uintptr, zUri uintptr, pFlags u for *(*uint8)(unsafe.Pointer(zUri + uintptr(iIn))) != 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zUri + uintptr(iIn)))) != int32('/') { iIn++ } - if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24949, zUri+7, uint64(9)) != 0) { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24959, libc.VaList(bp+8, iIn-int32(7), zUri+7)) + if iIn != int32(7) && (iIn != int32(16) || libc.Xmemcmp(tls, __ccgo_ts+24940, zUri+7, uint64(9)) != 0) { + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+24950, libc.VaList(bp+8, iIn-int32(7), zUri+7)) rc = int32(SQLITE_ERROR) goto parse_uri_out } @@ -166742,24 +160325,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+24987, zOpt, uint64(3)) == 0 { + if nOpt == int32(3) && libc.Xmemcmp(tls, __ccgo_ts+24978, 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+24991, zOpt, uint64(5)) == 0 { + if nOpt == int32(5) && libc.Xmemcmp(tls, __ccgo_ts+24982, 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 + 24991 + zModeType = __ccgo_ts + 24982 } - if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+25012, zOpt, uint64(4)) == 0 { + if nOpt == int32(4) && libc.Xmemcmp(tls, __ccgo_ts+25003, 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 = libc.Int32FromUint32(libc.Uint32FromInt32(mask) & flags) - zModeType = __ccgo_ts + 3508 + zModeType = __ccgo_ts + 3499 } if aMode != 0 { mode = 0 @@ -166788,12 +160371,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+25027, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25018, 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+25047, libc.VaList(bp+8, zModeType, zVal)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25038, libc.VaList(bp+8, zModeType, zVal)) rc = int32(SQLITE_PERM) goto parse_uri_out } @@ -166817,7 +160400,7 @@ 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+25071, libc.VaList(bp+8, zVfs)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+25062, libc.VaList(bp+8, zVfs)) rc = int32(SQLITE_ERROR) } goto parse_uri_out @@ -166837,11 +160420,11 @@ var _aCacheMode = [3]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 24997, + Fz: __ccgo_ts + 24988, Fmode: int32(SQLITE_OPEN_SHAREDCACHE), }, 1: { - Fz: __ccgo_ts + 25004, + Fz: __ccgo_ts + 24995, Fmode: int32(SQLITE_OPEN_PRIVATECACHE), }, 2: {}, @@ -166852,19 +160435,19 @@ var _aOpenMode = [5]struct { Fmode int32 }{ 0: { - Fz: __ccgo_ts + 25017, + Fz: __ccgo_ts + 25008, Fmode: int32(SQLITE_OPEN_READONLY), }, 1: { - Fz: __ccgo_ts + 25020, + Fz: __ccgo_ts + 25011, Fmode: int32(SQLITE_OPEN_READWRITE), }, 2: { - Fz: __ccgo_ts + 25023, + Fz: __ccgo_ts + 25014, Fmode: libc.Int32FromInt32(SQLITE_OPEN_READWRITE) | libc.Int32FromInt32(SQLITE_OPEN_CREATE), }, 3: { - Fz: __ccgo_ts + 18030, + Fz: __ccgo_ts + 18021, Fmode: int32(SQLITE_OPEN_MEMORY), }, 4: {}, @@ -166992,8 +160575,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+22691, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) - _createCollation(tls, db, __ccgo_ts+25087, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+22682, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_nocaseCollatingFunc), uintptr(0)) + _createCollation(tls, db, __ccgo_ts+25078, uint8(SQLITE_UTF8), uintptr(0), __ccgo_fp(_rtrimCollFunc), uintptr(0)) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { goto opendb_out } @@ -167014,10 +160597,10 @@ 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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 4294 + zFilename = __ccgo_ts + 4285 } rc = _sqlite3ParseUri(tls, zVfs, zFilename, bp, db, bp+8, bp+16) } @@ -167026,7 +160609,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 + 3899 + v2 = __ccgo_ts + 3890 } else { v2 = uintptr(0) } @@ -167053,9 +160636,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 + 6749 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).FzDbSName = __ccgo_ts + 6740 (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb))).Fsafety_level = libc.Uint8FromInt32(libc.Int32FromInt32(SQLITE_DEFAULT_SYNCHRONOUS) + libc.Int32FromInt32(1)) - (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 24089 + (*(*TDb)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FaDb + 1*32))).FzDbSName = __ccgo_ts + 24080 (*(*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 { @@ -167149,7 +160732,7 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc } if zFilename == uintptr(0) { - zFilename = __ccgo_ts + 25093 + zFilename = __ccgo_ts + 25084 } pVal = _sqlite3ValueNew(tls, uintptr(0)) _sqlite3ValueSetStr(tls, pVal, -int32(1), zFilename, uint8(SQLITE_UTF16LE), libc.UintptrFromInt32(0)) @@ -167168,36 +160751,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -167205,7 +160796,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167213,31 +160804,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167271,12 +160866,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167311,8 +160908,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167323,7 +160920,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -167366,20 +160963,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+25096, libc.VaList(bp+8, zType, lineno, uintptr(20)+Xsqlite3_sourceid(tls))) + Xsqlite3_log(tls, iErr, __ccgo_ts+25087, 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+25121) + return _sqlite3ReportError(tls, int32(SQLITE_CORRUPT), lineno, __ccgo_ts+25112) } func _sqlite3MisuseError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+25141) + return _sqlite3ReportError(tls, int32(SQLITE_MISUSE), lineno, __ccgo_ts+25132) } func _sqlite3CantopenError(tls *libc.TLS, lineno int32) (r int32) { - return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+25148) + return _sqlite3ReportError(tls, int32(SQLITE_CANTOPEN), lineno, __ccgo_ts+25139) } // C documentation @@ -167468,7 +161065,7 @@ func Xsqlite3_table_column_metadata(tls *libc.TLS, db uintptr, zDbName uintptr, primarykey = libc.BoolInt32(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FcolFlags)&int32(COLFLAG_PRIMKEY) != 0) autoinc = libc.BoolInt32(int32((*TTable)(unsafe.Pointer(pTab)).FiPKey) == iCol && (*TTable)(unsafe.Pointer(pTab)).FtabFlags&uint32(TF_Autoincrement) != uint32(0)) } else { - zDataType = __ccgo_ts + 1150 + zDataType = __ccgo_ts + 1141 primarykey = int32(1) } if !(zCollSeq != 0) { @@ -167499,11 +161096,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+25165, libc.VaList(bp+16, zTableName, zColumnName)) + *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3MPrintf(tls, db, __ccgo_ts+25156, libc.VaList(bp+16, zTableName, zColumnName)) rc = int32(SQLITE_ERROR) } if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - v2 = __ccgo_ts + 3899 + v2 = __ccgo_ts + 3890 } else { v2 = uintptr(0) } @@ -168527,7 +162124,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+25193, int32(7)) == 0 { + if Xsqlite3_strnicmp(tls, zOptName, __ccgo_ts+25184, int32(7)) == 0 { zOptName += uintptr(7) } n = _sqlite3Strlen30(tls, zOptName) @@ -168675,6 +162272,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168698,7 +162297,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168708,7 +162307,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168720,7 +162319,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168736,7 +162335,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -168745,7 +162344,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui } _leaveMutex(tls) if rc != 0 { - v2 = __ccgo_ts + 25201 + v2 = __ccgo_ts + 25192 } else { v2 = uintptr(0) } @@ -169632,23 +163231,23 @@ func _sqlite3ConnectionClosed(tls *libc.TLS, db uintptr) { // ** string must correspond to the JSONB_* integer above. // */ var _jsonbType = [17]uintptr{ - 0: __ccgo_ts + 1662, - 1: __ccgo_ts + 8111, - 2: __ccgo_ts + 8116, - 3: __ccgo_ts + 6425, - 4: __ccgo_ts + 6425, - 5: __ccgo_ts + 6420, - 6: __ccgo_ts + 6420, - 7: __ccgo_ts + 8422, - 8: __ccgo_ts + 8422, - 9: __ccgo_ts + 8422, - 10: __ccgo_ts + 8422, - 11: __ccgo_ts + 25224, - 12: __ccgo_ts + 25230, - 13: __ccgo_ts + 1676, - 14: __ccgo_ts + 1676, - 15: __ccgo_ts + 1676, - 16: __ccgo_ts + 1676, + 0: __ccgo_ts + 1653, + 1: __ccgo_ts + 8102, + 2: __ccgo_ts + 8107, + 3: __ccgo_ts + 6416, + 4: __ccgo_ts + 6416, + 5: __ccgo_ts + 6411, + 6: __ccgo_ts + 6411, + 7: __ccgo_ts + 8413, + 8: __ccgo_ts + 8413, + 9: __ccgo_ts + 8413, + 10: __ccgo_ts + 8413, + 11: __ccgo_ts + 25215, + 12: __ccgo_ts + 25221, + 13: __ccgo_ts + 1667, + 14: __ccgo_ts + 1667, + 15: __ccgo_ts + 1667, + 16: __ccgo_ts + 1667, } // C documentation @@ -169952,106 +163551,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]uint8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -170429,8 +163928,8 @@ func _jsonAppendControlChar(tls *libc.TLS, p uintptr, c Tu8) { *(*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 + 1698 + uintptr(libc.Int32FromUint8(c)>>int32(4)))) - *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 1698 + uintptr(libc.Int32FromUint8(c)&int32(0xf)))) + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(4)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 1689 + uintptr(libc.Int32FromUint8(c)>>int32(4)))) + *(*uint8)(unsafe.Pointer((*TJsonString)(unsafe.Pointer(p)).FzBuf + uintptr((*TJsonString)(unsafe.Pointer(p)).FnUsed+uint64(5)))) = *(*uint8)(unsafe.Pointer(__ccgo_ts + 1689 + uintptr(libc.Int32FromUint8(c)&int32(0xf)))) *(*Tu64)(unsafe.Pointer(p + 24)) += uint64(6) } } @@ -170564,9 +164063,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+1662, uint32(4)) + _jsonAppendRawNZ(tls, p, __ccgo_ts+1653, uint32(4)) case int32(SQLITE_FLOAT): - _jsonPrintf(tls, int32(100), p, __ccgo_ts+15545, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) + _jsonPrintf(tls, int32(100), p, __ccgo_ts+15536, libc.VaList(bp+80, Xsqlite3_value_double(tls, pValue))) case int32(SQLITE_INTEGER): z = Xsqlite3_value_text(tls, pValue) n = libc.Uint32FromInt32(Xsqlite3_value_bytes(tls, pValue)) @@ -170585,7 +164084,7 @@ func _jsonAppendSqlValue(tls *libc.TLS, p uintptr, pValue uintptr) { _jsonTranslateBlobToText(tls, bp, uint32(0), p) } else { if libc.Int32FromUint8((*TJsonString)(unsafe.Pointer(p)).FeErr) == 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25237, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25228, -int32(1)) (*TJsonString)(unsafe.Pointer(p)).FeErr = uint8(JSTRING_ERR) _jsonStringReset(tls, p) } @@ -170639,7 +164138,7 @@ func _jsonReturnString(tls *libc.TLS, p uintptr, pParse uintptr, ctx uintptr) { Xsqlite3_result_error_nomem(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx) } else { if libc.Int32FromUint8((*TJsonString)(unsafe.Pointer(p)).FeErr)&int32(JSTRING_MALFORMED) != 0 { - Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25266, -int32(1)) + Xsqlite3_result_error(tls, (*TJsonString)(unsafe.Pointer(p)).FpCtx, __ccgo_ts+25257, -int32(1)) } } } @@ -170922,8 +164421,8 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(3), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 25281, - FzRepl: __ccgo_ts + 25285, + FzMatch: __ccgo_ts + 25272, + FzRepl: __ccgo_ts + 25276, }, 1: { Fc1: uint8('i'), @@ -170931,32 +164430,32 @@ var _aNanInfName = [5]TNanInfName{ Fn: uint8(8), FeType: uint8(JSONB_FLOAT), FnRepl: uint8(7), - FzMatch: __ccgo_ts + 25293, - FzRepl: __ccgo_ts + 25285, + FzMatch: __ccgo_ts + 25284, + FzRepl: __ccgo_ts + 25276, }, 2: { Fc1: uint8('n'), Fc2: uint8('N'), Fn: uint8(3), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 1667, - FzRepl: __ccgo_ts + 1662, + FzMatch: __ccgo_ts + 1658, + FzRepl: __ccgo_ts + 1653, }, 3: { Fc1: uint8('q'), Fc2: uint8('Q'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 25302, - FzRepl: __ccgo_ts + 1662, + FzMatch: __ccgo_ts + 25293, + FzRepl: __ccgo_ts + 1653, }, 4: { Fc1: uint8('s'), Fc2: uint8('S'), Fn: uint8(4), FnRepl: uint8(4), - FzMatch: __ccgo_ts + 25307, - FzRepl: __ccgo_ts + 1662, + FzMatch: __ccgo_ts + 25298, + FzRepl: __ccgo_ts + 1653, }, } @@ -170971,7 +164470,7 @@ func _jsonWrongNumArgs(tls *libc.TLS, pCtx uintptr, zFuncName uintptr) { defer tls.Free(16) var zMsg uintptr _ = zMsg - zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25312, libc.VaList(bp+8, zFuncName)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25303, libc.VaList(bp+8, zFuncName)) Xsqlite3_result_error(tls, pCtx, zMsg, -int32(1)) Xsqlite3_free(tls, zMsg) } @@ -171433,7 +164932,7 @@ func _jsonbValidityCheck(tls *libc.TLS, pParse uintptr, i Tu32, iEnd Tu32, iDept if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(z + uintptr(j)))) != int32('\\') || j+uint32(1) >= k { return j + uint32(1) } else { - if libc.Xstrchr(tls, __ccgo_ts+25355, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { + if libc.Xstrchr(tls, __ccgo_ts+25346, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1)))))) != uintptr(0) { j++ } else { if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(z + uintptr(j+uint32(1))))) == int32('u') { @@ -171902,7 +165401,7 @@ parse_string: return libc.Int32FromUint32(j + uint32(1)) _5: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8111, uint64(4)) == 0 && !(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8102, uint64(4)) == 0 && !(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_TRUE)) return libc.Int32FromUint32(i + uint32(4)) } @@ -171910,7 +165409,7 @@ _5: return -int32(1) _6: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8116, uint64(5)) == 0 && !(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+8107, uint64(5)) == 0 && !(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(5))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_FALSE)) return libc.Int32FromUint32(i + uint32(5)) } @@ -171987,14 +165486,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 (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25281, int32(3)) == 0 { + if (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('I') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(1))))) == int32('i')) && Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(1)), __ccgo_ts+25272, int32(3)) == 0 { (*TJsonParse)(unsafe.Pointer(pParse)).FhasNonstd = uint8(1) if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z + uintptr(i)))) == int32('-') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25364) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25355) } else { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25371) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25362) } - if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25377, int32(5)) == 0 { + if Xsqlite3_strnicmp(tls, z+uintptr(i+uint32(4)), __ccgo_ts+25368, int32(5)) == 0 { v48 = int32(9) } else { v48 = int32(4) @@ -172155,7 +165654,7 @@ _29: return -int32(1) _37: ; - if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1662, uint64(4)) == 0 && !(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { + if libc.Xstrncmp(tls, z+uintptr(i), __ccgo_ts+1653, uint64(4)) == 0 && !(libc.Int32FromUint8(_sqlite3CtypeMap[*(*uint8)(unsafe.Pointer(z + uintptr(i+uint32(4))))])&libc.Int32FromInt32(0x06) != 0) { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) return libc.Int32FromUint32(i + uint32(4)) } @@ -172179,7 +165678,7 @@ _38: goto _51 } if libc.Int32FromUint8(_aNanInfName[k1].FeType) == int32(JSONB_FLOAT) { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25371) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25362) } else { _jsonBlobAppendOneByte(tls, pParse, uint8(JSONB_NULL)) } @@ -172224,7 +165723,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+25266, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25257, -int32(1)) } _jsonParseReset(tls, pParse) return int32(1) @@ -172237,7 +165736,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+25266, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25257, -int32(1)) } } _jsonParseReset(tls, pParse) @@ -172396,15 +165895,15 @@ func _jsonTranslateBlobToText(tls *libc.TLS, pParse uintptr, i Tu32, pOut uintpt goto _16 _2: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1662, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+1653, uint32(4)) return i + uint32(1) _3: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8111, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8102, uint32(4)) return i + uint32(1) _4: ; - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8116, uint32(5)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+8107, uint32(5)) return i + uint32(1) _6: ; @@ -172453,9 +165952,9 @@ _7: k++ } if bOverflow != 0 { - v19 = __ccgo_ts + 25285 + v19 = __ccgo_ts + 25276 } else { - v19 = __ccgo_ts + 12007 + v19 = __ccgo_ts + 11998 } _jsonPrintf(tls, int32(100), pOut, v19, libc.VaList(bp+16, u)) goto _16 @@ -172523,7 +166022,7 @@ _11: sz2 -= k2 } if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zIn2))) == int32('"') { - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25383, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25374, uint32(2)) zIn2++ sz2-- continue @@ -172546,7 +166045,7 @@ _11: case int32('\''): _jsonAppendChar(tls, pOut, uint8('\'')) case int32('v'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25386, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25377, uint32(6)) case int32('x'): if sz2 < uint32(4) { p23 = pOut + 33 @@ -172554,12 +166053,12 @@ _11: sz2 = uint32(2) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25393, uint32(4)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25384, uint32(4)) _jsonAppendRawNZ(tls, pOut, zIn2+2, uint32(2)) zIn2 += uintptr(2) sz2 -= uint32(2) case int32('0'): - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25398, uint32(6)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25389, uint32(6)) case int32('\r'): if sz2 > uint32(2) && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zIn2 + 2))) == int32('\n') { zIn2++ @@ -172662,16 +166161,6 @@ type TJsonPretty = struct { 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 */ @@ -172739,7 +166228,7 @@ func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r T if j >= iEnd { break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25405, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25396, uint32(2)) } _jsonAppendChar(tls, pOut, uint8('\n')) (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- @@ -172762,12 +166251,12 @@ func _jsonTranslateBlobToPrettyText(tls *libc.TLS, pPretty uintptr, i Tu32) (r T *(*Tu8)(unsafe.Pointer(p2)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p2))) | libc.Int32FromInt32(JSTRING_MALFORMED)) break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25408, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25399, uint32(2)) j = _jsonTranslateBlobToPrettyText(tls, pPretty, j) if j >= iEnd { break } - _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25405, uint32(2)) + _jsonAppendRawNZ(tls, pOut, __ccgo_ts+25396, uint32(2)) } _jsonAppendChar(tls, pOut, uint8('\n')) (*TJsonPretty)(unsafe.Pointer(pPretty)).FnIndent-- @@ -173550,7 +167039,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+25266, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25257, -int32(1)) return } switch libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TJsonParse)(unsafe.Pointer(pParse)).FaBlob + uintptr(i)))) & libc.Int32FromInt32(0x0f) { @@ -173786,7 +167275,7 @@ returnfromblob_oom: goto returnfromblob_malformed returnfromblob_malformed: ; - Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25266, -int32(1)) + Xsqlite3_result_error(tls, pCtx, __ccgo_ts+25257, -int32(1)) return } @@ -173824,7 +167313,7 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return 0 case int32(SQLITE_BLOB): if !(_jsonArgIsJsonb(tls, pArg, pParse) != 0) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25237, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25228, -int32(1)) return int32(1) } case int32(SQLITE_TEXT): @@ -173837,7 +167326,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+25266, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25257, -int32(1)) _sqlite3DbFree(tls, (*TJsonParse)(unsafe.Pointer(pParse)).Fdb, (*TJsonParse)(unsafe.Pointer(pParse)).FaBlob) libc.Xmemset(tls, pParse, 0, uint64(72)) return int32(1) @@ -173856,10 +167345,10 @@ func _jsonFunctionArgToBlob(tls *libc.TLS, ctx uintptr, pArg uintptr, pParse uin return int32(1) } if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25371) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(5), __ccgo_ts+25362) } else { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z))) == int32('-') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z + 1))) == int32('I') { - _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25364) + _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), uint32(6), __ccgo_ts+25355) } else { _jsonBlobAppendNode(tls, pParse, uint8(JSONB_FLOAT), libc.Uint32FromInt32(n), z) } @@ -173898,7 +167387,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+25411, libc.VaList(bp+8, zPath)) + zMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25402, libc.VaList(bp+8, zPath)) if ctx == uintptr(0) { return zMsg } @@ -173995,7 +167484,7 @@ jsonInsertIntoBlob_patherror: ; _jsonParseFree(tls, p) if rc == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25266, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25257, -int32(1)) } else { _jsonBadPathError(tls, ctx, zPath) } @@ -174197,7 +167686,7 @@ json_pfa_malformed: return p } else { _jsonParseFree(tls, p) - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25266, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25257, -int32(1)) return uintptr(0) } goto json_pfa_oom @@ -174332,7 +167821,7 @@ func _jsonArrayLengthFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zPath))) == int32('$') { v1 = zPath + uintptr(1) } else { - v1 = __ccgo_ts + 25429 + v1 = __ccgo_ts + 25420 } i = _jsonLookupStep(tls, p, uint32(0), v1, uint32(0)) if i >= uint32(JSON_LOOKUP_PATHERROR) { @@ -174342,7 +167831,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+25266, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25257, -int32(1)) } } eErr = uint8(1) @@ -174452,23 +167941,23 @@ func _jsonExtractFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { */ _jsonStringInit(tls, bp, ctx) if Xsqlite3_value_type(tls, *(*uintptr)(unsafe.Pointer(argv + uintptr(i)*8))) == int32(SQLITE_INTEGER) { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25431, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25422, uint32(1)) if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zPath))) == int32('-') { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25433, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25424, uint32(1)) } _jsonAppendRaw(tls, bp, zPath, libc.Uint32FromInt32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+5265, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+5256, uint32(2)) } else { if _jsonAllAlphanum(tls, zPath, nPath) != 0 { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+1715, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1706, uint32(1)) _jsonAppendRaw(tls, bp, zPath, libc.Uint32FromInt32(nPath)) } else { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zPath))) == int32('[') && nPath >= int32(3) && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zPath + uintptr(nPath-int32(1))))) == int32(']') { _jsonAppendRaw(tls, bp, zPath, libc.Uint32FromInt32(nPath)) } else { - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25435, uint32(2)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25426, uint32(2)) _jsonAppendRaw(tls, bp, zPath, libc.Uint32FromInt32(nPath)) - _jsonAppendRawNZ(tls, bp, __ccgo_ts+25438, uint32(1)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+25429, uint32(1)) } } } @@ -174504,11 +167993,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+1662, uint32(4)) + _jsonAppendRawNZ(tls, bp, __ccgo_ts+1653, uint32(4)) } } else { if j == uint32(JSON_LOOKUP_ERROR) { - Xsqlite3_result_error(tls, ctx, __ccgo_ts+25266, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25257, -int32(1)) goto json_extract_error } else { _jsonBadPathError(tls, ctx, zPath) @@ -174776,7 +168265,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+25266, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25257, -int32(1)) } } _jsonParseFree(tls, pPatch) @@ -174800,7 +168289,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+25440, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25431, -int32(1)) return } _jsonStringInit(tls, bp, ctx) @@ -174811,7 +168300,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+25491, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25482, -int32(1)) _jsonStringReset(tls, bp) return } @@ -174883,7 +168372,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+25266, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25257, -int32(1)) } } goto json_remove_done @@ -174920,7 +168409,7 @@ func _jsonReplaceFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { return } if argc&int32(1) == 0 { - _jsonWrongNumArgs(tls, ctx, __ccgo_ts+16065) + _jsonWrongNumArgs(tls, ctx, __ccgo_ts+16056) return } _jsonInsertIntoBlob(tls, ctx, argc, argv, int32(JEDIT_REPL)) @@ -174951,9 +168440,9 @@ func _jsonSetFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { } if argc&int32(1) == 0 { if bIsSet != 0 { - v1 = __ccgo_ts + 25525 + v1 = __ccgo_ts + 25516 } else { - v1 = __ccgo_ts + 25529 + v1 = __ccgo_ts + 25520 } _jsonWrongNumArgs(tls, ctx, v1) return @@ -175001,7 +168490,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+25266, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25257, -int32(1)) } } goto json_type_done @@ -175048,7 +168537,7 @@ func _jsonPrettyFunc(tls *libc.TLS, ctx uintptr, argc int32, argv uintptr) { (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = v1 } if v2 || v1 == uintptr(0) { - (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25536 + (*(*TJsonPretty)(unsafe.Pointer(bp + 136))).FzIndent = __ccgo_ts + 25527 (*(*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)) @@ -175131,7 +168620,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+25541, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+25532, -int32(1)) return } flags = libc.Uint8FromInt64(f & int64(0x0f)) @@ -175319,7 +168808,7 @@ func _jsonArrayCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25598, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25589, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -175470,7 +168959,7 @@ func _jsonObjectCompute(tls *libc.TLS, ctx uintptr, isFinal int32) { } } } else { - Xsqlite3_result_text(tls, ctx, __ccgo_ts+25601, int32(2), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, ctx, __ccgo_ts+25592, int32(2), libc.UintptrFromInt32(0)) } Xsqlite3_result_subtype(tls, ctx, uint32(JSON_SUBTYPE)) } @@ -175498,16 +168987,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175526,24 +169005,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175551,13 +169012,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -175573,7 +169027,7 @@ func _jsonEachConnect(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv _ = argv _ = argc _ = pAux - rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25604) + rc = Xsqlite3_declare_vtab(tls, db, __ccgo_ts+25595) if rc == SQLITE_OK { pNew = _sqlite3DbMallocZero(tls, db, uint64(32)) *(*uintptr)(unsafe.Pointer(ppVtab)) = pNew @@ -175707,7 +169161,7 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { var _ /* sz at bp+0 */ Tu32 _, _, _, _, _ = i, k, n, needQuote, z if libc.Int32FromUint8((*TJsonEachCursor)(unsafe.Pointer(p)).FeType) == int32(JSONB_ARRAY) { - _jsonPrintf(tls, int32(30), p+56, __ccgo_ts+25687, 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+25678, 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 @@ -175733,9 +169187,9 @@ func _jsonAppendPathName(tls *libc.TLS, p uintptr) { } } if needQuote != 0 { - _jsonPrintf(tls, libc.Int32FromUint32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25694, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, libc.Int32FromUint32(*(*Tu32)(unsafe.Pointer(bp))+uint32(4)), p+56, __ccgo_ts+25685, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } else { - _jsonPrintf(tls, libc.Int32FromUint32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25702, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) + _jsonPrintf(tls, libc.Int32FromUint32(*(*Tu32)(unsafe.Pointer(bp))+uint32(2)), p+56, __ccgo_ts+25693, libc.VaList(bp+16, *(*Tu32)(unsafe.Pointer(bp)), z)) } } } @@ -176120,7 +169574,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+25708, uint32(1)) + _jsonAppendRaw(tls, p+56, __ccgo_ts+25699, uint32(1)) } (*TJsonEachCursor)(unsafe.Pointer(p)).FnParent = uint32(0) n = _jsonbPayloadSize(tls, p+192, i, bp) @@ -176144,7 +169598,7 @@ func _jsonEachFilter(tls *libc.TLS, cur uintptr, idxNum int32, idxStr uintptr, a 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+25266, 0) + (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+25257, 0) _jsonEachCursorReset(tls, p) if (*Tsqlite3_vtab)(unsafe.Pointer((*Tsqlite3_vtab_cursor)(unsafe.Pointer(cur)).FpVtab)).FzErrMsg != 0 { v6 = int32(SQLITE_ERROR) @@ -176205,186 +169659,186 @@ var _aJsonFunc = [34]TFuncDef{ 0: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25710, + FzName: __ccgo_ts + 25701, }, 1: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25715, + FzName: __ccgo_ts + 25706, }, 2: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 25721, + FzName: __ccgo_ts + 25712, }, 3: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 25732, + FzName: __ccgo_ts + 25723, }, 4: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25744, + FzName: __ccgo_ts + 25735, }, 5: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25744, + FzName: __ccgo_ts + 25735, }, 6: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25762, + FzName: __ccgo_ts + 25753, }, 7: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25782, + FzName: __ccgo_ts + 25773, }, 8: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25795, + FzName: __ccgo_ts + 25786, }, 9: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25809, + FzName: __ccgo_ts + 25800, }, 10: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25812, + FzName: __ccgo_ts + 25803, }, 11: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25816, + FzName: __ccgo_ts + 25807, }, 12: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25828, + FzName: __ccgo_ts + 25819, }, 13: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 25841, + FzName: __ccgo_ts + 25832, }, 14: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(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 + 25853, + FzName: __ccgo_ts + 25844, }, 15: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25866, + FzName: __ccgo_ts + 25857, }, 16: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25877, + FzName: __ccgo_ts + 25868, }, 17: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25889, + FzName: __ccgo_ts + 25880, }, 18: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25889, + FzName: __ccgo_ts + 25880, }, 19: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 25901, + FzName: __ccgo_ts + 25892, }, 20: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25912, + FzName: __ccgo_ts + 25903, }, 21: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25924, + FzName: __ccgo_ts + 25915, }, 22: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25937, + FzName: __ccgo_ts + 25928, }, 23: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25950, + FzName: __ccgo_ts + 25941, }, 24: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25964, + FzName: __ccgo_ts + 25955, }, 25: { FnArg: int16(-int32(1)), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25973, + FzName: __ccgo_ts + 25964, }, 26: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25983, + FzName: __ccgo_ts + 25974, }, 27: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25983, + FzName: __ccgo_ts + 25974, }, 28: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25993, + FzName: __ccgo_ts + 25984, }, 29: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_FUNC_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 + 25993, + FzName: __ccgo_ts + 25984, }, 30: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 26004, + FzName: __ccgo_ts + 25995, }, 31: { FnArg: int16(1), FfuncFlags: libc.Uint32FromInt32(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 + 26021, + FzName: __ccgo_ts + 26012, }, 32: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 26039, + FzName: __ccgo_ts + 26030, }, 33: { FnArg: int16(2), FfuncFlags: libc.Uint32FromInt32(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 + 26057, + FzName: __ccgo_ts + 26048, }, } @@ -176467,11 +169921,11 @@ var _aMod = [2]struct { FpModule uintptr }{ 0: { - FzName: __ccgo_ts + 26076, + FzName: __ccgo_ts + 26067, FpModule: uintptr(unsafe.Pointer(&_jsonEachModule)), }, 1: { - FzName: __ccgo_ts + 26086, + FzName: __ccgo_ts + 26077, FpModule: uintptr(unsafe.Pointer(&_jsonTreeModule)), }, } @@ -176529,223 +169983,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176763,33 +170003,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176800,78 +170034,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -177119,7 +170337,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+26096, 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+26087, iNode, 0, pRtree+112) } if rc != 0 { *(*uintptr)(unsafe.Pointer(ppNode)) = uintptr(0) @@ -177424,7 +170642,7 @@ func _rtreeDestroy(tls *libc.TLS, pVtab uintptr) (r int32) { var rc int32 _, _, _ = pRtree, rc, zCreate pRtree = pVtab - zCreate = Xsqlite3_mprintf(tls, __ccgo_ts+26101, 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+26092, 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 +171559,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+26183) + pSrc = Xsqlite3_value_pointer(tls, pValue, __ccgo_ts+26174) if pSrc == uintptr(0) { return int32(SQLITE_ERROR) } @@ -179827,9 +173045,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179844,9 +173062,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179876,7 +173094,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+26197, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+26188, 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 { @@ -179886,11 +173104,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+26217, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26208, 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+26249, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) + (*TRtree)(unsafe.Pointer(pRtree)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+26240, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzName, zCol1, zCol2)) } } Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -180104,7 +173322,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+26286, 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+26277, 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)) @@ -180158,9 +173376,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 + 26431 + zFmt = __ccgo_ts + 26422 nRow = int64(RTREE_MIN_ROWEST) - rc = Xsqlite3_table_column_metadata(tls, db, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, __ccgo_ts+11836, 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+11827, 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) { @@ -180218,9 +173436,9 @@ func _rtreeShadowName(tls *libc.TLS, zName uintptr) (r int32) { } var _azName1 = [3]uintptr{ - 0: __ccgo_ts + 26487, - 1: __ccgo_ts + 5604, - 2: __ccgo_ts + 16960, + 0: __ccgo_ts + 26478, + 1: __ccgo_ts + 5595, + 2: __ccgo_ts + 16951, } var _rtreeModule = Tsqlite3_module{ @@ -180264,21 +173482,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+26901, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26892, libc.VaList(bp+8, zDb, zPrefix)) ii = 0 for { if !(ii < libc.Int32FromUint8((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26963, libc.VaList(bp+8, ii)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26954, libc.VaList(bp+8, ii)) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, p, __ccgo_ts+26968, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27032, libc.VaList(bp+8, zDb, zPrefix)) - Xsqlite3_str_appendf(tls, p, __ccgo_ts+27102, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+26959, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27023, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p, __ccgo_ts+27093, libc.VaList(bp+8, zDb, zPrefix, (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize)) zCreate = Xsqlite3_str_finish(tls, p) if !(zCreate != 0) { return int32(SQLITE_NOMEM) @@ -180308,7 +173526,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 + 27151 + zFormat = __ccgo_ts + 27142 } zSql = Xsqlite3_mprintf(tls, zFormat, libc.VaList(bp+8, zDb, zPrefix)) if zSql != 0 { @@ -180323,31 +173541,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+27259, libc.VaList(bp+8, zDb, zPrefix)) + (*TRtree)(unsafe.Pointer(pRtree)).FzReadAuxSql = Xsqlite3_mprintf(tls, __ccgo_ts+27250, 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+27304, libc.VaList(bp+8, zDb, zPrefix)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27295, libc.VaList(bp+8, zDb, zPrefix)) ii1 = 0 for { if !(ii1 < libc.Int32FromUint8((*TRtree)(unsafe.Pointer(pRtree)).FnAux)) { break } if ii1 != 0 { - Xsqlite3_str_append(tls, p1, __ccgo_ts+13344, int32(1)) + Xsqlite3_str_append(tls, p1, __ccgo_ts+13335, int32(1)) } if ii1 < libc.Int32FromUint8((*TRtree)(unsafe.Pointer(pRtree)).FnAuxNotNull) { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27331, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27322, libc.VaList(bp+8, ii1, ii1+int32(2), ii1)) } else { - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27353, libc.VaList(bp+8, ii1, ii1+int32(2))) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27344, libc.VaList(bp+8, ii1, ii1+int32(2))) } goto _3 _3: ; ii1++ } - Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27361, 0) + Xsqlite3_str_appendf(tls, p1, __ccgo_ts+27352, 0) zSql1 = Xsqlite3_str_finish(tls, p1) if zSql1 == uintptr(0) { rc = int32(SQLITE_NOMEM) @@ -180361,14 +173579,14 @@ func _rtreeSqlInit(tls *libc.TLS, pRtree uintptr, db uintptr, zDb uintptr, zPref } var _azSql = [8]uintptr{ - 0: __ccgo_ts + 26492, - 1: __ccgo_ts + 26545, - 2: __ccgo_ts + 26590, - 3: __ccgo_ts + 26642, - 4: __ccgo_ts + 26696, - 5: __ccgo_ts + 26741, - 6: __ccgo_ts + 26799, - 7: __ccgo_ts + 26854, + 0: __ccgo_ts + 26483, + 1: __ccgo_ts + 26536, + 2: __ccgo_ts + 26581, + 3: __ccgo_ts + 26633, + 4: __ccgo_ts + 26687, + 5: __ccgo_ts + 26732, + 6: __ccgo_ts + 26790, + 7: __ccgo_ts + 26845, } // C documentation @@ -180426,7 +173644,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+27377, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27368, 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) @@ -180434,17 +173652,17 @@ func _getNodeSize(tls *libc.TLS, db uintptr, pRtree uintptr, isCreate int32, pzE (*TRtree)(unsafe.Pointer(pRtree)).FiNodeSize = int32(4) + libc.Int32FromUint8((*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell)*int32(RTREE_MAXCELLS) } } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3899, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) } } else { - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27397, libc.VaList(bp+16, (*TRtree)(unsafe.Pointer(pRtree)).FzDb, (*TRtree)(unsafe.Pointer(pRtree)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+27388, 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+3899, libc.VaList(bp+16, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, 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+3899, libc.VaList(bp+8, aErrMsg[int32(2)+libc.BoolInt32(argc >= int32(6))])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, 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))) @@ -180521,13 +173739,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)), libc.Uint64FromInt32(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), libc.Uint64FromInt32(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), libc.Uint64FromInt32(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27640, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27631, 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+27646, 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+27637, 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) { @@ -180536,7 +173754,7 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt zArg = *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)) if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) == int32('+') { (*TRtree)(unsafe.Pointer(pRtree)).FnAux++ - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27670, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27661, libc.VaList(bp+8, _rtreeTokenLength(tls, zArg+uintptr(1)), zArg+uintptr(1))) } else { if libc.Int32FromUint8((*TRtree)(unsafe.Pointer(pRtree)).FnAux) > 0 { break @@ -180550,19 +173768,19 @@ func _rtreeInit(tls *libc.TLS, db uintptr, pAux uintptr, argc int32, argv uintpt ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27697, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27688, 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+3899, libc.VaList(bp+8, aErrMsg[int32(4)])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, 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+3899, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } } @@ -180585,7 +173803,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+3899, libc.VaList(bp+8, aErrMsg[iErr])) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, aErrMsg[iErr])) goto rtreeInit_fail } (*TRtree)(unsafe.Pointer(pRtree)).FnBytesPerCell = libc.Uint8FromInt32(int32(8) + libc.Int32FromUint8((*TRtree)(unsafe.Pointer(pRtree)).FnDim2)*int32(4)) @@ -180596,7 +173814,7 @@ 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+3899, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto rtreeInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree @@ -180612,8 +173830,8 @@ rtreeInit_fail: } var _azFormat = [2]uintptr{ - 0: __ccgo_ts + 27676, - 1: __ccgo_ts + 27687, + 0: __ccgo_ts + 27667, + 1: __ccgo_ts + 27678, } // C documentation @@ -180671,21 +173889,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+11456, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+11447, int32(1)) } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27700, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27691, libc.VaList(bp+1064, (*(*TRtreeCell)(unsafe.Pointer(bp + 1008))).FiRowid)) jj = 0 for { if !(jj < libc.Int32FromUint8((*(*TRtree)(unsafe.Pointer(bp + 40))).FnDim2)) { break } - Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27706, libc.VaList(bp+1064, float64(*(*TRtreeValue)(unsafe.Pointer(bp + 1008 + 8 + uintptr(jj)*4))))) + Xsqlite3_str_appendf(tls, pOut, __ccgo_ts+27697, 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+27710, int32(1)) + Xsqlite3_str_append(tls, pOut, __ccgo_ts+27701, int32(1)) goto _1 _1: ; @@ -180712,7 +173930,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+27712, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+27703, -int32(1)) } else { zBlob = Xsqlite3_value_blob(tls, *(*uintptr)(unsafe.Pointer(apArg))) if zBlob != 0 { @@ -180746,23 +173964,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -180830,11 +174031,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 + 4307 + v1 = __ccgo_ts + 4298 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } - (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27745, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport, v1, z)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzReport = Xsqlite3_mprintf(tls, __ccgo_ts+27736, 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) } @@ -180868,7 +174069,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+27752, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab)) + (*TRtreeCheck)(unsafe.Pointer(pCheck)).FpGetNode = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+27743, 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) @@ -180885,7 +174086,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+27797, libc.VaList(bp+8, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27788, libc.VaList(bp+8, iNode)) } } return pRet @@ -180914,8 +174115,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 + 27829, - 1: __ccgo_ts + 27883, + 0: __ccgo_ts + 27820, + 1: __ccgo_ts + 27874, } 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)) @@ -180928,21 +174129,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 + 27931 + v1 = __ccgo_ts + 27922 } else { - v1 = __ccgo_ts + 27939 + v1 = __ccgo_ts + 27930 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27948, libc.VaList(bp+8, iKey, iVal, v1)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27939, 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 + 27931 + v2 = __ccgo_ts + 27922 } else { - v2 = __ccgo_ts + 27939 + v2 = __ccgo_ts + 27930 } - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27993, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+27984, libc.VaList(bp+8, iKey, ii, v2, iKey, iVal)) } } } @@ -180987,7 +174188,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+28051, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28042, libc.VaList(bp+24, i, iCell, iNode)) } if pParent != 0 { _readCoord(tls, pParent+uintptr(libc.Int32FromInt32(4)*libc.Int32FromInt32(2)*i), bp+8) @@ -181005,7 +174206,7 @@ func _rtreeCheckCellCoord(tls *libc.TLS, pCheck uintptr, iNode Ti64, iCell int32 } } if v5 || v4 != 0 { - _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28099, libc.VaList(bp+24, i, iCell, iNode)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28090, libc.VaList(bp+24, i, iCell, iNode)) } } goto _1 @@ -181038,19 +174239,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+28166, libc.VaList(bp+16, iNode, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28157, 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+28200, libc.VaList(bp+16, iDepth)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28191, 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+28230, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28221, libc.VaList(bp+16, iNode, nCell, *(*int32)(unsafe.Pointer(bp)))) } else { i = 0 for { @@ -181095,12 +174296,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+28285, libc.VaList(bp+8, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzDb, (*TRtreeCheck)(unsafe.Pointer(pCheck)).FzTab, zTbl)) + pCount = _rtreeCheckPrepare(tls, pCheck, __ccgo_ts+28276, 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+28316, libc.VaList(bp+8, zTbl, nExpect, nActual)) + _rtreeCheckAppendMsg(tls, pCheck, __ccgo_ts+28307, libc.VaList(bp+8, zTbl, nExpect, nActual)) } } (*TRtreeCheck)(unsafe.Pointer(pCheck)).Frc = Xsqlite3_finalize(tls, pCount) @@ -181129,7 +174330,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+28383, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+28374, libc.VaList(bp+96, zDb, zTab)) if pStmt != 0 { nAux = Xsqlite3_column_count(tls, pStmt) - int32(2) Xsqlite3_finalize(tls, pStmt) @@ -181139,11 +174340,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+26197, libc.VaList(bp+96, zDb, zTab)) + pStmt = _rtreeCheckPrepare(tls, bp, __ccgo_ts+26188, 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+28411, 0) + _rtreeCheckAppendMsg(tls, bp, __ccgo_ts+28402, 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)) @@ -181159,8 +174360,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+28442, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) - _rtreeCheckCount(tls, bp, __ccgo_ts+28449, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28433, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnLeaf)) + _rtreeCheckCount(tls, bp, __ccgo_ts+28440, int64((*(*TRtreeCheck)(unsafe.Pointer(bp))).FnNonLeaf)) } /* Finalize SQL statements used by the integrity-check */ Xsqlite3_finalize(tls, (*(*TRtreeCheck)(unsafe.Pointer(bp))).FpGetNode) @@ -181187,7 +174388,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+28457, 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+28448, 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) } @@ -181238,13 +174439,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+28476, -int32(1)) + Xsqlite3_result_error(tls, ctx, __ccgo_ts+28467, -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 + 6749 + zDb = __ccgo_ts + 6740 } else { zTab = Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apArg + 1*8))) } @@ -181253,7 +174454,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 + 18727 + v1 = __ccgo_ts + 18718 } Xsqlite3_result_text(tls, ctx, v1, -int32(1), uintptr(-libc.Int32FromInt32(1))) } else { @@ -181347,14 +174548,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181379,16 +174572,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -181720,19 +174903,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+25431, int32(1)) + Xsqlite3_str_append(tls, x, __ccgo_ts+25422, int32(1)) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28527, 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+28518, 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+28538, 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+28529, 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) } @@ -181761,20 +174944,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+28549, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28540, 0) i = 0 for { if !(i < (*TGeoPoly)(unsafe.Pointer(p)).FnVertex) { break } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28567, libc.VaList(bp+8, libc.Int32FromUint8(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+28558, libc.VaList(bp+8, libc.Int32FromUint8(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+28575, 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+28566, 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) { @@ -181782,14 +174965,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+28583, libc.VaList(bp+8, z)) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28574, libc.VaList(bp+8, z)) } goto _2 _2: ; i++ } - Xsqlite3_str_appendf(tls, x, __ccgo_ts+28587, 0) + Xsqlite3_str_appendf(tls, x, __ccgo_ts+28578, 0) Xsqlite3_result_text(tls, context, Xsqlite3_str_finish(tls, x), -int32(1), __ccgo_fp(Xsqlite3_free)) Xsqlite3_free(tls, p) } @@ -182171,13 +175354,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182412,36 +175588,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -182918,13 +176064,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)), libc.Uint64FromInt64(nDb)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), libc.Uint64FromInt64(nName)) libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName, *(*uintptr)(unsafe.Pointer(argv + 2*8)), libc.Uint64FromInt64(nName)) - libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27640, uint64(6)) + libc.Xmemcpy(tls, (*TRtree)(unsafe.Pointer(pRtree)).FzNodeName+uintptr(nName), __ccgo_ts+27631, 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+28600, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28591, 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) @@ -182933,13 +176079,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+28622, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+28613, libc.VaList(bp+8, *(*uintptr)(unsafe.Pointer(argv + uintptr(ii)*8)))) goto _1 _1: ; ii++ } - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27697, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+27688, 0) zSql = Xsqlite3_str_finish(tls, pSql) if !(zSql != 0) { rc = int32(SQLITE_NOMEM) @@ -182947,7 +176093,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+3899, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } Xsqlite3_free(tls, zSql) @@ -182962,7 +176108,7 @@ 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+3899, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) goto geopolyInit_fail } *(*uintptr)(unsafe.Pointer(ppVtab)) = pRtree @@ -183174,7 +176320,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 + 16960 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 16951 (*(*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) @@ -183184,7 +176330,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 + 28626 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28617 (*(*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) @@ -183192,7 +176338,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 + 28632 + (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FidxStr = __ccgo_ts + 28623 (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedCost = float64(3e+06) (*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FestimatedRows = int64(100000) return SQLITE_OK @@ -183312,7 +176458,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+28641, 0) + (*Tsqlite3_vtab)(unsafe.Pointer(pVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+28632, 0) } goto geopoly_update_end } @@ -183412,16 +176558,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28681) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28672) == 0 { + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } - if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28697) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28688) == 0 { + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183491,7 +176637,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+28874, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28865, uintptr(unsafe.Pointer(&_geopolyModule)), uintptr(0), uintptr(0)) } return rc } @@ -183505,61 +176651,61 @@ var _aFunc = [12]struct { 0: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28712, + FzName: __ccgo_ts + 28703, }, 1: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28725, + FzName: __ccgo_ts + 28716, }, 2: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28738, + FzName: __ccgo_ts + 28729, }, 3: { FnArg: int8(-int32(1)), FbPure: uint8(1), - FzName: __ccgo_ts + 28751, + FzName: __ccgo_ts + 28742, }, 4: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28697, + FzName: __ccgo_ts + 28688, }, 5: { FnArg: int8(3), FbPure: uint8(1), - FzName: __ccgo_ts + 28763, + FzName: __ccgo_ts + 28754, }, 6: { FnArg: int8(2), FbPure: uint8(1), - FzName: __ccgo_ts + 28681, + FzName: __ccgo_ts + 28672, }, 7: { FnArg: int8(1), - FzName: __ccgo_ts + 28786, + FzName: __ccgo_ts + 28777, }, 8: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28800, + FzName: __ccgo_ts + 28791, }, 9: { FnArg: int8(7), FbPure: uint8(1), - FzName: __ccgo_ts + 28813, + FzName: __ccgo_ts + 28804, }, 10: { FnArg: int8(4), FbPure: uint8(1), - FzName: __ccgo_ts + 28827, + FzName: __ccgo_ts + 28818, }, 11: { FnArg: int8(1), FbPure: uint8(1), - FzName: __ccgo_ts + 28843, + FzName: __ccgo_ts + 28834, }, } @@ -183585,7 +176731,7 @@ var _aAgg = [1]struct { FzName uintptr }{ 0: { - FzName: __ccgo_ts + 28855, + FzName: __ccgo_ts + 28846, }, } @@ -183610,20 +176756,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+28882, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28873, int32(2), utf8, uintptr(0), __ccgo_fp(_rtreenode), uintptr(0), uintptr(0)) if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28892, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28883, int32(1), utf8, uintptr(0), __ccgo_fp(_rtreedepth), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28903, -int32(1), utf8, uintptr(0), __ccgo_fp(_rtreecheck), uintptr(0), uintptr(0)) + rc = Xsqlite3_create_function(tls, db, __ccgo_ts+28894, -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+28626, uintptr(unsafe.Pointer(&_rtreeModule)), c, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28617, 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+28914, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) + rc = Xsqlite3_create_module_v2(tls, db, __ccgo_ts+28905, uintptr(unsafe.Pointer(&_rtreeModule)), c1, uintptr(0)) } if rc == SQLITE_OK { rc = _sqlite3_geopoly_init(tls, db) @@ -183725,17 +176871,19 @@ 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+26183, __ccgo_fp(_rtreeMatchArgFree)) + Xsqlite3_result_pointer(tls, ctx, pBlob, __ccgo_ts+26174, __ccgo_fp(_rtreeMatchArgFree)) } } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183743,33 +176891,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184387,248 +177539,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]uint8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -184942,7 +177852,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+28924, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28915, -int32(1)) return } aOut = Xsqlite3_malloc(tls, nOut+int32(1)) @@ -184952,7 +177862,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+28924, -int32(1)) + Xsqlite3_result_error(tls, context, __ccgo_ts+28915, -int32(1)) } else { Xsqlite3_result_blob(tls, context, aOut, nOut, __ccgo_fp(Xsqlite3_free)) } @@ -184978,7 +177888,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+3899, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) } return rc @@ -185001,7 +177911,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+3899, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) + *(*uintptr)(unsafe.Pointer(pzErrmsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, Xsqlite3_errmsg(tls, Xsqlite3_db_handle(tls, pStmt)))) } return rc } @@ -185133,7 +178043,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+28945, uintptr(0), uintptr(0), p+64) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+28936, uintptr(0), uintptr(0), p+64) } if rc == SQLITE_OK { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -185222,7 +178132,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+26096, zIn, uint64(4)) == 0 { + if libc.Xstrlen(tls, zIn) > uint64(4) && libc.Xmemcmp(tls, __ccgo_ts+26087, zIn, uint64(4)) == 0 { i = int32(4) for { if !(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) >= int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zIn + uintptr(i)))) <= int32('9')) { @@ -185259,13 +178169,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 + 29116 + v1 = __ccgo_ts + 29107 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29157, libc.VaList(bp+8, v1))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+29148, libc.VaList(bp+8, v1))) if rc == SQLITE_OK { - rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29307) + rc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+8, p+64, __ccgo_ts+29298) } (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup = int32(1) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -185432,7 +178342,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+3899, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, Xsqlite3_errmsg(tls, db))) } } @@ -185493,7 +178403,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+29432, 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+29423, 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 @@ -185503,7 +178413,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+29551, 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+29542, libc.VaList(bp+40, zTab))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { goto rbuTableType_end } @@ -185511,7 +178421,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 && libc.Int32FromUint8(*(*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+29572, 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+29563, 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) @@ -185523,7 +178433,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+29623, 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+29614, 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 { @@ -185567,7 +178477,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)*libc.Uint64FromInt32((*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+29644, 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+29635, 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))) { @@ -185580,7 +178490,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)*libc.Uint64FromInt32((*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+29672, 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+29663, 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 { @@ -185633,7 +178543,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+20235, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+20226, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl)) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc @@ -185644,7 +178554,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+29701, 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+29692, 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) @@ -185655,7 +178565,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+29720, zName, int32(4)) != 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+29711, 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 @@ -185663,7 +178573,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+29725, zName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+29716, zName) { bRbuRowid = int32(1) } } @@ -185677,17 +178587,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 + 29735 + v4 = __ccgo_ts + 29726 } else { - v4 = __ccgo_ts + 29748 + v4 = __ccgo_ts + 29739 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29757, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v4)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29748, 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+29786, 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+29777, 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)) @@ -185709,7 +178619,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+29808, libc.VaList(bp+24, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zName1)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+29799, 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)) @@ -185748,15 +178658,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 + 1676 + zSep = __ccgo_ts + 1667 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+29835, libc.VaList(bp+8, zList, zSep, z)) - zSep = __ccgo_ts + 15212 + zList = _rbuMPrintf(tls, p, __ccgo_ts+29826, libc.VaList(bp+8, zList, zSep, z)) + zSep = __ccgo_ts + 15203 goto _1 _1: ; @@ -185781,7 +178691,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 + 1676 + zSep = __ccgo_ts + 1667 for int32(1) != 0 { i = 0 for { @@ -185790,7 +178700,7 @@ func _rbuObjIterGetPkList(tls *libc.TLS, p uintptr, pIter uintptr, zPre uintptr, } if libc.Int32FromUint8(*(*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+29844, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29835, libc.VaList(bp+8, zRet, zSep, zPre, zCol, zPost)) zSep = zSeparator break } @@ -185838,21 +178748,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+29857, 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+29848, 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+29889, libc.VaList(bp+16, iMax)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29880, libc.VaList(bp+16, iMax)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1676, __ccgo_ts+15212, __ccgo_ts+29912) - zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29918, __ccgo_ts+29925, __ccgo_ts+5210) - zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1676, __ccgo_ts+15212, __ccgo_ts+1676) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1667, __ccgo_ts+15203, __ccgo_ts+29903) + zSelect = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+29909, __ccgo_ts+29916, __ccgo_ts+5201) + zList = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1667, __ccgo_ts+15203, __ccgo_ts+1667) 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+29933, 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+29924, 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+29975, libc.VaList(bp+16, zList, zVal)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+29966, libc.VaList(bp+16, zList, zVal)) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -185901,10 +178811,10 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { zVector = uintptr(0) zRet = uintptr(0) bFailed = 0 - zSep = __ccgo_ts + 1676 + zSep = __ccgo_ts + 1667 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+29672, 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+29663, 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)) @@ -185926,15 +178836,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 + 29995 + zCol = __ccgo_ts + 29986 } } else { zCol = *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(iCid)*8)) } - zLhs = _rbuMPrintf(tls, p, __ccgo_ts+30003, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30024, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) - zSelect = _rbuMPrintf(tls, p, __ccgo_ts+30060, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) - zSep = __ccgo_ts + 15212 + zLhs = _rbuMPrintf(tls, p, __ccgo_ts+29994, libc.VaList(bp+24, zLhs, zSep, zCol, zCollate)) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+30015, libc.VaList(bp+24, zOrder, zSep, iCol, zCol, zCollate)) + zSelect = _rbuMPrintf(tls, p, __ccgo_ts+30051, libc.VaList(bp+24, zSelect, zSep, iCol, zCol)) + zSep = __ccgo_ts + 15203 iCol++ } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) @@ -185943,9 +178853,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+30087, 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+30078, 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 + 1676 + zSep = __ccgo_ts + 1667 iCol = 0 for { if !(iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnCol) { @@ -185960,15 +178870,15 @@ func _rbuVacuumIndexStart(tls *libc.TLS, p uintptr, pIter uintptr) (r uintptr) { break } } - zVector = _rbuMPrintf(tls, p, __ccgo_ts+30135, libc.VaList(bp+24, zVector, zSep, zQuoted)) - zSep = __ccgo_ts + 15212 + zVector = _rbuMPrintf(tls, p, __ccgo_ts+30126, libc.VaList(bp+24, zVector, zSep, zQuoted)) + zSep = __ccgo_ts + 15203 goto _2 _2: ; iCol++ } if !(bFailed != 0) { - zRet = _rbuMPrintf(tls, p, __ccgo_ts+30142, libc.VaList(bp+24, zLhs, zVector)) + zRet = _rbuMPrintf(tls, p, __ccgo_ts+30133, libc.VaList(bp+24, zLhs, zVector)) } } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -186022,11 +178932,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 + 1676 /* Set to ", " later on */ - zAnd = __ccgo_ts + 1676 /* Set to " AND " later on */ + zCom = __ccgo_ts + 1667 /* Set to ", " later on */ + zAnd = __ccgo_ts + 1667 /* 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+29672, 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+29663, 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)) @@ -186035,8 +178945,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+30154, 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 + 1676 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30145, 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 + 1667 } else { if iCid < 0 { /* An integer primary key. If the table has an explicit IPK, use @@ -186055,34 +178965,34 @@ 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 + 29995 + zCol = __ccgo_ts + 29986 } else { - zCol = __ccgo_ts + 29725 + zCol = __ccgo_ts + 29716 } } - zType = __ccgo_ts + 1150 + zType = __ccgo_ts + 1141 } else { 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+30176, libc.VaList(bp+16, zRet, zCom, zCol, zCollate)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+30167, 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 + 29912 + v2 = __ccgo_ts + 29903 } else { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } zOrder = v2 - zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+30196, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) + zImpPK = Xsqlite3_mprintf(tls, __ccgo_ts+30187, libc.VaList(bp+16, zImpPK, zCom, nBind, zCol, zOrder)) } - zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30217, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) - zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30250, libc.VaList(bp+16, zWhere, zAnd, nBind, zCol)) + zImpCols = Xsqlite3_mprintf(tls, __ccgo_ts+30208, libc.VaList(bp+16, zImpCols, zCom, nBind, zCol, zType, zCollate)) + zWhere = Xsqlite3_mprintf(tls, __ccgo_ts+30241, 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 + 15212 - zAnd = __ccgo_ts + 22344 + zCom = __ccgo_ts + 15203 + zAnd = __ccgo_ts + 22335 nBind++ } rc2 = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -186128,7 +179038,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 + 1676 + zS = __ccgo_ts + 1667 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186136,11 +179046,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+30274, libc.VaList(bp+8, zList, zS, zObj, zCol)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30265, libc.VaList(bp+8, zList, zS, zObj, zCol)) } else { - zList = Xsqlite3_mprintf(tls, __ccgo_ts+30286, libc.VaList(bp+8, zList, zS)) + zList = Xsqlite3_mprintf(tls, __ccgo_ts+30277, libc.VaList(bp+8, zList, zS)) } - zS = __ccgo_ts + 15212 + zS = __ccgo_ts + 15203 if zList == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) break @@ -186152,7 +179062,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+30295, libc.VaList(bp+8, zList, zObj)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30286, libc.VaList(bp+8, zList, zObj)) } } return zList @@ -186178,27 +179088,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+30310, libc.VaList(bp+8, (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol+int32(1))) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30301, 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 + 1676 + zSep = __ccgo_ts + 1667 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+30324, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) - zSep = __ccgo_ts + 22344 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30315, libc.VaList(bp+8, zList, zSep, i, i+int32(1))) + zSep = __ccgo_ts + 22335 } goto _1 _1: ; i++ } - zList = _rbuMPrintf(tls, p, __ccgo_ts+30336, libc.VaList(bp+8, zList)) + zList = _rbuMPrintf(tls, p, __ccgo_ts+30327, libc.VaList(bp+8, zList)) } else { - zSep1 = __ccgo_ts + 1676 + zSep1 = __ccgo_ts + 1667 i1 = 0 for { if !(i1 < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186206,8 +179116,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+30386, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) - zSep1 = __ccgo_ts + 22344 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30377, libc.VaList(bp+8, zList, zSep1, zCol, i1+int32(1))) + zSep1 = __ccgo_ts + 22335 } goto _2 _2: @@ -186230,7 +179140,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+30399, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+30390, 0) } // C documentation @@ -186264,7 +179174,7 @@ func _rbuObjIterGetSetlist(tls *libc.TLS, p uintptr, pIter uintptr, zMask uintpt if libc.Int32FromUint64(libc.Xstrlen(tls, zMask)) != (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol { _rbuBadControlError(tls, p) } else { - zSep = __ccgo_ts + 1676 + zSep = __ccgo_ts + 1667 i = 0 for { if !(i < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { @@ -186272,16 +179182,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 libc.Int32FromUint8(c) == int32('x') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30386, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) - zSep = __ccgo_ts + 15212 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30377, libc.VaList(bp+8, zList, zSep, *(*uintptr)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FazTblCol + uintptr(i)*8)), i+int32(1))) + zSep = __ccgo_ts + 15203 } else { if libc.Int32FromUint8(c) == int32('d') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30425, 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 + 15212 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30416, 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 + 15203 } else { if libc.Int32FromUint8(c) == int32('f') { - zList = _rbuMPrintf(tls, p, __ccgo_ts+30455, 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 + 15212 + zList = _rbuMPrintf(tls, p, __ccgo_ts+30446, 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 + 15203 } } } @@ -186365,16 +179275,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 + 30492 + zSep = __ccgo_ts + 30483 *(*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+29644, 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+29635, 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+16848) == 0 { + if zOrig != 0 && libc.Xstrcmp(tls, zOrig, __ccgo_ts+16839) == 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+29672, 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+29663, libc.VaList(bp+24, zIdx))) } break } @@ -186385,16 +179295,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 + 29912 + v1 = __ccgo_ts + 29903 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } zDesc = v1 - z = _rbuMPrintf(tls, p, __ccgo_ts+30505, libc.VaList(bp+24, z, zSep, zCol, zDesc)) - zSep = __ccgo_ts + 15212 + z = _rbuMPrintf(tls, p, __ccgo_ts+30496, libc.VaList(bp+24, z, zSep, zCol, zDesc)) + zSep = __ccgo_ts + 15203 } } - z = _rbuMPrintf(tls, p, __ccgo_ts+30516, libc.VaList(bp+24, z)) + z = _rbuMPrintf(tls, p, __ccgo_ts+30507, libc.VaList(bp+24, z)) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) } return z @@ -186434,13 +179344,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 + 1676 + zComma = __ccgo_ts + 1667 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+30520) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30511) 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))) { @@ -186448,7 +179358,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+29672, 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+29663, 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))) { @@ -186457,21 +179367,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+30570, 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+30561, 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 + 29912 + v1 = __ccgo_ts + 29903 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } - zPk = _rbuMPrintf(tls, p, __ccgo_ts+30592, libc.VaList(bp+24, zPk, zComma, iCid, v1)) - zComma = __ccgo_ts + 15212 + zPk = _rbuMPrintf(tls, p, __ccgo_ts+30583, libc.VaList(bp+24, zPk, zComma, iCid, v1)) + zComma = __ccgo_ts + 15203 } } - zCols = _rbuMPrintf(tls, p, __ccgo_ts+30602, libc.VaList(bp+24, zCols)) + zCols = _rbuMPrintf(tls, p, __ccgo_ts+30593, 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+6749, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30617, 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+6749, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+24, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30608, 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+6740, 0, 0)) } } @@ -186506,30 +179416,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 + 1676 + zComma = __ccgo_ts + 1667 zSql = uintptr(0) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6749, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740, 0, int32(1))) iCol = 0 for { if !((*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && iCol < (*TRbuObjIter)(unsafe.Pointer(pIter)).FnTblCol) { break } - zPk = __ccgo_ts + 1676 + zPk = __ccgo_ts + 1667 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+6749, (*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+6740, (*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 + 30679 + zPk = __ccgo_ts + 30670 } if *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabNotNull + uintptr(iCol))) != 0 { - v2 = __ccgo_ts + 30692 + v2 = __ccgo_ts + 30683 } else { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } - zSql = _rbuMPrintf(tls, p, __ccgo_ts+30702, 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 + 15212 + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30693, 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 + 15203 goto _1 _1: ; @@ -186538,17 +179448,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+30729, libc.VaList(bp+16, zSql, zPk1)) + zSql = _rbuMPrintf(tls, p, __ccgo_ts+30720, 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+6749, int32(1), tnum)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740, int32(1), tnum)) if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_WITHOUT_ROWID) { - v3 = __ccgo_ts + 30736 + v3 = __ccgo_ts + 30727 } else { - v3 = __ccgo_ts + 1676 + v3 = __ccgo_ts + 1667 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30751, 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+6749, 0, 0)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30742, 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+6740, 0, 0)) } } @@ -186574,7 +179484,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+30783, 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+30774, libc.VaList(bp+8, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zCollist, zRbuRowid, zBind))) } } @@ -186620,7 +179530,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+30840) + *(*int32)(unsafe.Pointer(bp + 8)) = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp, p+64, __ccgo_ts+30831) } 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)) @@ -186789,7 +179699,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+30906, libc.VaList(bp+40, nOffset)) + zLimit = Xsqlite3_mprintf(tls, __ccgo_ts+30897, libc.VaList(bp+40, nOffset)) if !(zLimit != 0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } @@ -186806,18 +179716,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+6749, 0, int32(1))) - Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6749, int32(1), tnum)) - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30926, 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+6749, 0, 0)) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740, 0, int32(1))) + Xsqlite3_test_control(tls, int32(SQLITE_TESTCTRL_IMPOSTER), libc.VaList(bp+40, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740, int32(1), tnum)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+30917, 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+6740, 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+30991, 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+30982, 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+31027, 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+31018, 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 { @@ -186832,26 +179742,26 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } if zStart != 0 { if zPart != 0 { - v2 = __ccgo_ts + 31061 + v2 = __ccgo_ts + 31052 } else { - v2 = __ccgo_ts + 31065 + v2 = __ccgo_ts + 31056 } v1 = v2 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31071, libc.VaList(bp+40, zCollist, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, v1, zStart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31062, 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+31132, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31123, libc.VaList(bp+40, zCollist, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, zPart, zCollist, zLimit)) } else { if zPart != 0 { - v3 = __ccgo_ts + 31061 + v3 = __ccgo_ts + 31052 } else { - v3 = __ccgo_ts + 31065 + v3 = __ccgo_ts + 31056 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+31193, 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+31184, 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 { @@ -186870,62 +179780,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+6760) - zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6756) + zOldlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6751) + zNewlist = _rbuObjIterGetOldlist(tls, p, pIter, __ccgo_ts+6747) 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 + 1676 + v4 = __ccgo_ts + 1667 } else { - v4 = __ccgo_ts + 31352 + v4 = __ccgo_ts + 31343 } 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 + 31361 + v5 = __ccgo_ts + 31352 } else { - v5 = __ccgo_ts + 1676 + v5 = __ccgo_ts + 1667 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, pIter+136, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31371, 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+31362, 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+31407, 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+31398, 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 + 1676 + zRbuRowid = __ccgo_ts + 1667 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_EXTERNAL) || (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_NONE) { - zRbuRowid = __ccgo_ts + 31435 + zRbuRowid = __ccgo_ts + 31426 } /* 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 + 31447 + v6 = __ccgo_ts + 31438 } else { - v6 = __ccgo_ts + 1676 + v6 = __ccgo_ts + 1667 } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31464, 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+31540, libc.VaList(bp+40, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zOldlist, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+31455, 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+31531, 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+31839, libc.VaList(bp+40, zWrite, zTbl1, zNewlist)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+31830, 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 + 1676 + zRbuRowid1 = __ccgo_ts + 1667 zStart1 = uintptr(0) zOrder = uintptr(0) if bRbuRowid != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v7 = __ccgo_ts + 31938 + v7 = __ccgo_ts + 31929 } else { - v7 = __ccgo_ts + 31948 + v7 = __ccgo_ts + 31939 } zRbuRowid1 = v7 } @@ -186938,28 +179848,28 @@ func _rbuObjIterPrepareAll(tls *libc.TLS, p uintptr, pIter uintptr, nOffset int3 } } if bRbuRowid != 0 { - zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29995, 0) + zOrder = _rbuMPrintf(tls, p, __ccgo_ts+29986, 0) } else { - zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1676, __ccgo_ts+15212, __ccgo_ts+1676) + zOrder = _rbuObjIterGetPkList(tls, p, pIter, __ccgo_ts+1667, __ccgo_ts+15203, __ccgo_ts+1667) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v8 = __ccgo_ts + 31959 + v8 = __ccgo_ts + 31950 } else { - v8 = __ccgo_ts + 1676 + v8 = __ccgo_ts + 1667 } if zStart1 != 0 { v9 = zStart1 } else { - v9 = __ccgo_ts + 1676 + v9 = __ccgo_ts + 1667 } if zOrder != 0 { - v10 = __ccgo_ts + 23600 + v10 = __ccgo_ts + 23591 } else { - v10 = __ccgo_ts + 1676 + v10 = __ccgo_ts + 1667 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, pIter+128, pz, Xsqlite3_mprintf(tls, __ccgo_ts+31965, 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+31956, libc.VaList(bp+40, zCollist, v8, zRbuRowid1, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl, v9, v10, zOrder, zLimit))) } Xsqlite3_free(tls, zStart1) Xsqlite3_free(tls, zOrder) @@ -187045,11 +179955,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 + 1676 + zPrefix = __ccgo_ts + 1667 if (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType != int32(RBU_PK_VTAB) { - zPrefix = __ccgo_ts + 31352 + zPrefix = __ccgo_ts + 31343 } - zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+32013, libc.VaList(bp+8, zPrefix, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl, zSet, zWhere)) + zUpdate = Xsqlite3_mprintf(tls, __ccgo_ts+32004, 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 } @@ -187076,7 +179986,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+3899, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+16, Xsqlite3_errmsg(tls, *(*uintptr)(unsafe.Pointer(bp))))) Xsqlite3_close(tls, *(*uintptr)(unsafe.Pointer(bp))) *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) } @@ -187123,7 +180033,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+32043, 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+32034, 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): @@ -187182,27 +180092,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+6749, int32(SQLITE_FCNTL_RBUCNT), p) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6740, 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+6749) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+32073, libc.VaList(bp+8, zFile, zFile)) + zFile = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6740) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+32064, 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+32101, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) - libc.Xmemcpy(tls, p+48, __ccgo_ts+3522, uint64(4)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32092, libc.VaList(bp+8, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+3513, uint64(4)) } else { - libc.Xmemcpy(tls, p+48, __ccgo_ts+6749, uint64(4)) + libc.Xmemcpy(tls, p+48, __ccgo_ts+6740, uint64(4)) } /* If it has not already been created, create the rbu_state table */ - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32119, libc.VaList(bp+8, p+48)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32110, 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+6749, int32(SQLITE_FCNTL_RBUCNT), p) + rc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6740, int32(SQLITE_FCNTL_RBUCNT), p) if rc != int32(SQLITE_NOTFOUND) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc } @@ -187235,10 +180145,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+32185, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32176, 0) } else { zExtra = uintptr(0) - if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24943, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { + if libc.Xstrlen(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu) >= uint64(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+24934, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, uint64(5)) { zExtra = (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu + 5 for *(*uint8)(unsafe.Pointer(zExtra)) != 0 { v1 = zExtra @@ -187252,16 +180162,16 @@ func _rbuOpenDatabase(tls *libc.TLS, p uintptr, dbMain uintptr, pbRetry uintptr) } } if zExtra == uintptr(0) { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } else { - v2 = __ccgo_ts + 32217 + v2 = __ccgo_ts + 32208 } if zExtra == uintptr(0) { - v3 = __ccgo_ts + 1676 + v3 = __ccgo_ts + 1667 } else { v3 = zExtra } - zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32219, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6749), v2, v3)) + zTarget = Xsqlite3_mprintf(tls, __ccgo_ts+32210, libc.VaList(bp+8, Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6740), v2, v3)) if zTarget == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) return @@ -187272,27 +180182,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+32251, -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+32242, -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+32266, 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+32257, 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+32283, -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+32274, -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+6749, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740, int32(SQLITE_FCNTL_RBU), p) } - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32299, 0) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32290, 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+6749, int32(SQLITE_FCNTL_RBU), p) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740, 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+32327, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32318, 0) } } @@ -187342,7 +180252,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187444,7 +180354,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187517,12 +180427,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187544,21 +180454,21 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { _ = rc rc = SQLITE_OK *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - Xsqlite3_file_control(tls, db, __ccgo_ts+6749, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) + Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { - Xsqlite3_file_control(tls, db, __ccgo_ts+6749, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } - Xsqlite3_file_control(tls, db, __ccgo_ts+6749, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) + Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { - Xsqlite3_file_control(tls, db, __ccgo_ts+6749, int32(SQLITE_FCNTL_FILE_POINTER), bp) + Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -187575,7 +180485,7 @@ func _rbuExclusiveCheckpoint(tls *libc.TLS, db uintptr) (r int32) { var zUri uintptr _ = zUri zUri = Xsqlite3_db_filename(tls, db, uintptr(0)) - return Xsqlite3_uri_boolean(tls, zUri, __ccgo_ts+32380, 0) + return Xsqlite3_uri_boolean(tls, zUri, __ccgo_ts+32371, 0) } // C documentation @@ -187592,13 +180502,13 @@ func _rbuMoveOalFile(tls *libc.TLS, p uintptr) { defer tls.Free(16) var dbMain, zBase, zMove, zOal, zWal uintptr _, _, _, _, _ = dbMain, zBase, zMove, zOal, zWal - zBase = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6749) + zBase = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740) zMove = zBase if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - zMove = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6749) + zMove = Xsqlite3_db_filename(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+6740) } - zOal = Xsqlite3_mprintf(tls, __ccgo_ts+32405, libc.VaList(bp+8, zMove)) - zWal = Xsqlite3_mprintf(tls, __ccgo_ts+32412, libc.VaList(bp+8, zMove)) + zOal = Xsqlite3_mprintf(tls, __ccgo_ts+32396, libc.VaList(bp+8, zMove)) + zWal = Xsqlite3_mprintf(tls, __ccgo_ts+32403, libc.VaList(bp+8, zMove)) if zWal == uintptr(0) || zOal == uintptr(0) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_NOMEM) } else { @@ -187730,7 +180640,7 @@ func _rbuStepOneOp(tls *libc.TLS, p uintptr, eType int32) { ** to write a NULL into the IPK column. That is not permitted. */ if eType == int32(RBU_INSERT) && (*TRbuObjIter)(unsafe.Pointer(pIter)).FzIdx == uintptr(0) && (*TRbuObjIter)(unsafe.Pointer(pIter)).FeType == int32(RBU_PK_IPK) && *(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i))) != 0 && Xsqlite3_column_type(tls, (*TRbuObjIter)(unsafe.Pointer(pIter)).FpSelect, i) == int32(SQLITE_NULL) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_MISMATCH) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+24500, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+24491, 0) return } if eType == int32(RBU_DELETE) && libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TRbuObjIter)(unsafe.Pointer(pIter)).FabTblPk + uintptr(i)))) == 0 { @@ -187866,7 +180776,7 @@ func _rbuIncrSchemaCookie(tls *libc.TLS, p uintptr) { } dbread = v1 iCookie = int32(1000000) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, dbread, bp, p+64, __ccgo_ts+32419) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, dbread, bp, p+64, __ccgo_ts+32410) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { /* Coverage: it may be that this sqlite3_step() cannot fail. There ** is already a transaction open, so the prepared statement cannot @@ -187879,7 +180789,7 @@ func _rbuIncrSchemaCookie(tls *libc.TLS, p uintptr) { _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32441, libc.VaList(bp+16, iCookie+int32(1))) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32432, libc.VaList(bp+16, iCookie+int32(1))) } } } @@ -187906,7 +180816,7 @@ func _rbuSaveState(tls *libc.TLS, p uintptr, eStage int32) { v1 = (*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd } pFd = v1 - rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32468, libc.VaList(bp+16, p+48, int32(RBU_STATE_STAGE), eStage, int32(RBU_STATE_TBL), (*Tsqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzTbl, int32(RBU_STATE_IDX), (*Tsqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzIdx, int32(RBU_STATE_ROW), (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep, int32(RBU_STATE_PROGRESS), (*Tsqlite3rbu)(unsafe.Pointer(p)).FnProgress, int32(RBU_STATE_CKPT), (*Tsqlite3rbu)(unsafe.Pointer(p)).FiWalCksum, int32(RBU_STATE_COOKIE), libc.Int64FromUint32((*Trbu_file)(unsafe.Pointer(pFd)).FiCookie), int32(RBU_STATE_OALSZ), (*Tsqlite3rbu)(unsafe.Pointer(p)).FiOalSz, int32(RBU_STATE_PHASEONESTEP), (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep, int32(RBU_STATE_DATATBL), (*Tsqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzDataTbl))) + rc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32459, libc.VaList(bp+16, p+48, int32(RBU_STATE_STAGE), eStage, int32(RBU_STATE_TBL), (*Tsqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzTbl, int32(RBU_STATE_IDX), (*Tsqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzIdx, int32(RBU_STATE_ROW), (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep, int32(RBU_STATE_PROGRESS), (*Tsqlite3rbu)(unsafe.Pointer(p)).FnProgress, int32(RBU_STATE_CKPT), (*Tsqlite3rbu)(unsafe.Pointer(p)).FiWalCksum, int32(RBU_STATE_COOKIE), libc.Int64FromUint32((*Trbu_file)(unsafe.Pointer(pFd)).FiCookie), int32(RBU_STATE_OALSZ), (*Tsqlite3rbu)(unsafe.Pointer(p)).FiOalSz, int32(RBU_STATE_PHASEONESTEP), (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep, int32(RBU_STATE_DATATBL), (*Tsqlite3rbu)(unsafe.Pointer(p)).Fobjiter.FzDataTbl))) if rc == SQLITE_OK { Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -187942,9 +180852,9 @@ func _rbuCopyPragma(tls *libc.TLS, p uintptr, zPragma uintptr) { var _ /* pPragma at bp+0 */ uintptr if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32628, libc.VaList(bp+16, zPragma))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareFreeAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, Xsqlite3_mprintf(tls, __ccgo_ts+32619, libc.VaList(bp+16, zPragma))) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32643, libc.VaList(bp+16, zPragma, Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0))) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32634, libc.VaList(bp+16, zPragma, Xsqlite3_column_int(tls, *(*uintptr)(unsafe.Pointer(bp)), 0))) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) } @@ -187967,9 +180877,9 @@ func _rbuCreateTargetSchema(tls *libc.TLS, p uintptr) { _, _ = i, zSql *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32663, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32654, uintptr(0), uintptr(0), p+64) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, __ccgo_ts+32688) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, __ccgo_ts+32679) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) == int32(SQLITE_ROW) { zSql = Xsqlite3_column_text(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) @@ -187980,10 +180890,10 @@ func _rbuCreateTargetSchema(tls *libc.TLS, p uintptr) { return } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, __ccgo_ts+32796) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, __ccgo_ts+32787) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, __ccgo_ts+32861) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, bp+8, p+64, __ccgo_ts+32852) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) == int32(SQLITE_ROW) { i = 0 @@ -188001,7 +180911,7 @@ func _rbuCreateTargetSchema(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32905, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+32896, uintptr(0), uintptr(0), p+64) } _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp))) _rbuFinalize(tls, p, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -188028,8 +180938,8 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { ** when this handle was opened, create the target database schema. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) && (*Tsqlite3rbu)(unsafe.Pointer(p)).FnProgress == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { _rbuCreateTargetSchema(tls, p) - _rbuCopyPragma(tls, p, __ccgo_ts+17933) - _rbuCopyPragma(tls, p, __ccgo_ts+17044) + _rbuCopyPragma(tls, p, __ccgo_ts+17924) + _rbuCopyPragma(tls, p, __ccgo_ts+17035) } for (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl != 0 { if (*TRbuObjIter)(unsafe.Pointer(pIter)).FbCleanup != 0 { @@ -188037,7 +180947,7 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { ** cannot be dropped as there are currently active SQL statements. ** But the contents can be deleted. */ if libc.BoolInt32((*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0)) == 0 && (*TRbuObjIter)(unsafe.Pointer(pIter)).FabIndexed != 0 { - _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32930, libc.VaList(bp+16, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) + _rbuMPrintfExec(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+32921, libc.VaList(bp+16, p+48, (*TRbuObjIter)(unsafe.Pointer(pIter)).FzDataTbl)) } } else { _rbuObjIterPrepareAll(tls, p, pIter, 0) @@ -188059,10 +180969,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { _rbuSaveState(tls, p, int32(RBU_STAGE_MOVE)) _rbuIncrSchemaCookie(tls, p) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15116, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15107, uintptr(0), uintptr(0), p+64) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15116, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15107, uintptr(0), uintptr(0), p+64) } (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage = int32(RBU_STAGE_MOVE) } @@ -188076,10 +180986,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188149,7 +181059,7 @@ func _rbuSetupOal(tls *libc.TLS, p uintptr, pState uintptr) { } if rc == SQLITE_OK && !((*TRbuObjIter)(unsafe.Pointer(pIter)).FzTbl != 0) { rc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32958, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+32949, 0) } if rc == SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep = (*TRbuState)(unsafe.Pointer(pState)).FnRow @@ -188172,10 +181082,10 @@ func _rbuDeleteOalFile(tls *libc.TLS, p uintptr) { var zOal uintptr var _ /* pVfs at bp+0 */ uintptr _ = zOal - zOal = _rbuMPrintf(tls, p, __ccgo_ts+32405, libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget)) + zOal = _rbuMPrintf(tls, p, __ccgo_ts+32396, libc.VaList(bp+16, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget)) if zOal != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6749, int32(SQLITE_FCNTL_VFS_POINTER), bp) + Xsqlite3_file_control(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+6740, int32(SQLITE_FCNTL_VFS_POINTER), bp) (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_vfs)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxDelete})))(tls, *(*uintptr)(unsafe.Pointer(bp)), zOal, 0) Xsqlite3_free(tls, zOal) } @@ -188197,7 +181107,7 @@ func _rbuCreateVfs(tls *libc.TLS, p uintptr) { var _ /* zRnd at bp+4 */ [64]uint8 _ = pVfs Xsqlite3_randomness(tls, int32(4), bp) - Xsqlite3_snprintf(tls, int32(64), bp+4, __ccgo_ts+32983, libc.VaList(bp+80, *(*int32)(unsafe.Pointer(bp)))) + Xsqlite3_snprintf(tls, int32(64), bp+4, __ccgo_ts+32974, libc.VaList(bp+80, *(*int32)(unsafe.Pointer(bp)))) (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3rbu_create_vfs(tls, bp+4, uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { pVfs = Xsqlite3_vfs_find(tls, bp+4) @@ -188244,7 +181154,7 @@ func _rbuIndexCntFunc(tls *libc.TLS, pCtx uintptr, nVal int32, apVal uintptr) { } db = v1 _ = nVal - rc = _prepareFreeAndCollectError(tls, db, bp, bp+8, Xsqlite3_mprintf(tls, __ccgo_ts+32994, libc.VaList(bp+24, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal)))))) + rc = _prepareFreeAndCollectError(tls, db, bp, bp+8, Xsqlite3_mprintf(tls, __ccgo_ts+32985, libc.VaList(bp+24, Xsqlite3_value_text(tls, *(*uintptr)(unsafe.Pointer(apVal)))))) if rc != SQLITE_OK { Xsqlite3_result_error(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 8)), -int32(1)) } else { @@ -188289,11 +181199,11 @@ func _rbuInitPhaseOneSteps(tls *libc.TLS, p uintptr) { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) bExists = 0 /* True if rbu_count exists */ (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep = int64(-int32(1)) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33066, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuIndexCntFunc), uintptr(0), uintptr(0)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_create_function(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33057, int32(1), int32(SQLITE_UTF8), p, __ccgo_fp(_rbuIndexCntFunc), uintptr(0), uintptr(0)) /* Check for the rbu_count table. If it does not exist, or if an error ** occurs, nPhaseOneStep will be left set to -1. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, __ccgo_ts+33080) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, __ccgo_ts+33071) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { @@ -188302,7 +181212,7 @@ func _rbuInitPhaseOneSteps(tls *libc.TLS, p uintptr) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && bExists != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, __ccgo_ts+33137) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _prepareAndCollectError(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, bp, p+64, __ccgo_ts+33128) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if int32(SQLITE_ROW) == Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp))) { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPhaseOneStep = Xsqlite3_column_int64(tls, *(*uintptr)(unsafe.Pointer(bp)), 0) @@ -188350,7 +181260,7 @@ func _openRbuHandle(tls *libc.TLS, zTarget uintptr, zRbu uintptr, zState uintptr libc.Xmemcpy(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzRbu, zRbu, nRbu+uint64(1)) pCsr += uintptr(nRbu + uint64(1)) if zState != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+3899, libc.VaList(bp+16, zState)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzState = _rbuMPrintf(tls, p, __ccgo_ts+3890, libc.VaList(bp+16, zState)) } /* If the first attempt to open the database file fails and the bRetry ** flag it set, this means that the db was not opened because it seemed @@ -188382,7 +181292,7 @@ func _openRbuHandle(tls *libc.TLS, zTarget uintptr, zRbu uintptr, zState uintptr if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd != 0 { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_ERROR) - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33211, 0) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33202, 0) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_MOVE) { (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage = int32(RBU_STAGE_CKPT) @@ -188404,17 +181314,17 @@ func _openRbuHandle(tls *libc.TLS, zTarget uintptr, zRbu uintptr, zState uintptr ** page 1 of the database file. */ (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = int32(SQLITE_BUSY) if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v3 = __ccgo_ts + 33243 + v3 = __ccgo_ts + 33234 } else { - v3 = __ccgo_ts + 33250 + v3 = __ccgo_ts + 33241 } - (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33257, libc.VaList(bp+16, v3)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg = Xsqlite3_mprintf(tls, __ccgo_ts+33248, libc.VaList(bp+16, v3)) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_OAL) { db = (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15101, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15092, uintptr(0), uintptr(0), p+64) /* Point the object iterator at the first object */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = _rbuObjIterFirst(tls, p, p+88) @@ -188426,21 +181336,21 @@ func _openRbuHandle(tls *libc.TLS, zTarget uintptr, zRbu uintptr, zState uintptr (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage = int32(RBU_STAGE_DONE) } else { if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK && (*TRbuState)(unsafe.Pointer(pState)).FeStage == 0 && (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - _rbuCopyPragma(tls, p, __ccgo_ts+17647) - _rbuCopyPragma(tls, p, __ccgo_ts+17059) + _rbuCopyPragma(tls, p, __ccgo_ts+17638) + _rbuCopyPragma(tls, p, __ccgo_ts+17050) } /* Open transactions both databases. The *-oal file is opened or ** created at this point. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, db, __ccgo_ts+33289, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, db, __ccgo_ts+33280, uintptr(0), uintptr(0), p+64) } /* Check if the main database is a zipvfs db. If it is, set the upper ** level pager to use "journal_mode=off". This prevents it from ** generating a large journal using a temp file. */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - frc = Xsqlite3_file_control(tls, db, __ccgo_ts+6749, int32(SQLITE_FCNTL_ZIPVFS), uintptr(0)) + frc = Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_ZIPVFS), uintptr(0)) if frc == SQLITE_OK { - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, db, __ccgo_ts+33305, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, db, __ccgo_ts+33296, uintptr(0), uintptr(0), p+64) } } if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { @@ -188518,7 +181428,7 @@ func Xsqlite3rbu_vacuum(tls *libc.TLS, zTarget uintptr, zState uintptr) (r uintp } if zState != 0 { n = libc.Xstrlen(tls, zState) - if n >= uint64(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33329, zState+uintptr(n-uint64(7)), uint64(7)) { + if n >= uint64(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+33320, zState+uintptr(n-uint64(7)), uint64(7)) { return _rbuMisuseError(tls) } } @@ -188565,7 +181475,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+31352, uint64(8)) == 0 { + if libc.Xmemcmp(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg+uintptr(i), __ccgo_ts+31343, uint64(8)) == 0 { nDel = int32(8) for libc.Int32FromUint8(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+libc.Uint32FromInt32(nDel))))) >= int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FzErrmsg + uintptr(i+libc.Uint32FromInt32(nDel))))) <= int32('9') { nDel++ @@ -188593,16 +181503,16 @@ 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+15116, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15107, 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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+15116, uintptr(0), uintptr(0), p+64) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15107, uintptr(0), uintptr(0), p+64) } /* Close any open statement handles. */ _rbuObjIterFinalize(tls, p+88) @@ -188612,7 +181522,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+33337, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+33328, uintptr(0), uintptr(0), uintptr(0)) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == int32(SQLITE_DONE) && rc2 != SQLITE_OK { (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc2 } @@ -188713,32 +181623,32 @@ 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+15116, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+15107, uintptr(0), uintptr(0), uintptr(0)) } } /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) 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+15116, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbRbu, __ccgo_ts+15107, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FzTarget == uintptr(0) { - v1 = __ccgo_ts + 15101 + v1 = __ccgo_ts + 15092 } else { - v1 = __ccgo_ts + 33289 + v1 = __ccgo_ts + 33280 } 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+33289, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, (*Tsqlite3rbu)(unsafe.Pointer(p)).FdbMain, __ccgo_ts+33280, uintptr(0), uintptr(0), uintptr(0)) } } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc @@ -188764,9 +181674,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188838,7 +181750,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -189041,7 +181953,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -189092,14 +182004,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint64FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -190675,7 +183526,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+33432, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p)).FzPath, (*TStatPage)(unsafe.Pointer(p)).FiCell)) + v4 = Xsqlite3_mprintf(tls, __ccgo_ts+33423, 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) { @@ -190698,13 +183549,13 @@ statNextRestart: case int32(0x05): /* table internal */ fallthrough case int32(0x02): /* index internal */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33440 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33431 case int32(0x0D): /* table leaf */ fallthrough case int32(0x0A): /* index leaf */ - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33449 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33440 default: - (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33454 + (*TStatCursor)(unsafe.Pointer(pCsr)).FzPagetype = __ccgo_ts + 33445 break } *(*int32)(unsafe.Pointer(pCsr + 2108)) += (*TStatPage)(unsafe.Pointer(p1)).FnCell @@ -190713,7 +183564,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+3899, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) + v5 = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+16, (*TStatPage)(unsafe.Pointer(p1)).FzPath)) z = v5 (*TStatCursor)(unsafe.Pointer(pCsr)).FzPath = v5 if z == uintptr(0) { @@ -190802,12 +183653,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+33464, 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+33455, 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+33619, libc.VaList(bp+8, zName)) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33610, libc.VaList(bp+8, zName)) } if idxNum&int32(0x08) != 0 { - Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33633, 0) + Xsqlite3_str_appendf(tls, pSql, __ccgo_ts+33624, 0) } zSql = Xsqlite3_str_finish(tls, pSql) if zSql == uintptr(0) { @@ -190884,7 +183735,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+33648, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) + return Xsqlite3_create_module(tls, db, __ccgo_ts+33639, uintptr(unsafe.Pointer(&_dbstat_module)), uintptr(0)) } var _dbstat_module = Tsqlite3_module{} @@ -191024,315 +183875,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192178,20 +184720,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+11836, zThis) { + if nThis == int32(12) && 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11827, 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+33655, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33646, 0) } else { if rc == int32(SQLITE_ERROR) { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1676, 0) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+1667, 0) } else { return rc } } } else { - zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33785, libc.VaList(bp+16, zDb, zThis)) + zPragma = Xsqlite3_mprintf(tls, __ccgo_ts+33776, libc.VaList(bp+16, zDb, zThis)) } if !(zPragma != 0) { return int32(SQLITE_NOMEM) @@ -192217,7 +184759,7 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, bRowid = 0 } nDbCol += bRowid - nByte = Tsqlite3_int64(uint64(nByte) + uint64(libc.Xstrlen(tls, __ccgo_ts+29995))) + nByte = Tsqlite3_int64(uint64(nByte) + uint64(libc.Xstrlen(tls, __ccgo_ts+29986))) rc = Xsqlite3_reset(tls, *(*uintptr)(unsafe.Pointer(bp))) if rc == SQLITE_OK { nByte = Tsqlite3_int64(uint64(nByte) + uint64(libc.Uint64FromInt32(nDbCol)*(libc.Uint64FromInt64(8)*libc.Uint64FromInt32(2)+libc.Uint64FromInt64(4)+libc.Uint64FromInt64(1)+libc.Uint64FromInt32(1)+libc.Uint64FromInt32(1)))) @@ -192241,8 +184783,8 @@ func _sessionTableInfo(tls *libc.TLS, pSession uintptr, db uintptr, zDb uintptr, } i = 0 if bRowid != 0 { - nName = libc.Xstrlen(tls, __ccgo_ts+29995) - libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29995, nName+uint64(1)) + nName = libc.Xstrlen(tls, __ccgo_ts+29986) + libc.Xmemcpy(tls, pAlloc, __ccgo_ts+29986, nName+uint64(1)) *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)) = pAlloc pAlloc += uintptr(nName + uint64(1)) *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) = uint8(1) @@ -192346,7 +184888,7 @@ func _sessionInitTable(tls *libc.TLS, pSession uintptr, pTab uintptr, db uintptr ; i++ } - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11836, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11827, (*TSessionTable)(unsafe.Pointer(pTab)).FzName) { (*TSessionTable)(unsafe.Pointer(pTab)).FbStat1 = int32(1) } if pSession != 0 && (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbEnableSize != 0 { @@ -192641,10 +185183,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 + 11456 + zSep = __ccgo_ts + 11447 ii = 0 *(*uintptr)(unsafe.Pointer(ppStmt)) = uintptr(0) - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33815, 0) + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+33806, 0) ii = 0 for { if !(ii < (*TSessionTable)(unsafe.Pointer(pTab)).FnCol) { @@ -192653,11 +185195,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 + 1677 + v2 = __ccgo_ts + 1668 } zDflt = v2 - _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5180, libc.VaList(bp+32, zSep, zDflt)) - zSep = __ccgo_ts + 15212 + _sessionAppendPrintf(tls, bp, bp+16, __ccgo_ts+5171, libc.VaList(bp+32, zSep, zDflt)) + zSep = __ccgo_ts + 15203 goto _1 _1: ; @@ -192738,13 +185280,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -192976,7 +185511,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+1676, uint8(0), libc.UintptrFromInt32(0)) + _sqlite3ValueSetStr(tls, p, 0, __ccgo_ts+1667, uint8(0), libc.UintptrFromInt32(0)) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpZeroBlob = p } } @@ -193236,14 +185771,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193303,7 +185830,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 + 1676 + zSep = __ccgo_ts + 1667 zRet = uintptr(0) i = 0 for { @@ -193311,8 +185838,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+33822, 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 + 22344 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33813, 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 + 22335 if zRet == uintptr(0) { break } @@ -193331,7 +185858,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 + 1676 + zSep = __ccgo_ts + 1667 zRet = uintptr(0) bHave = 0 i = 0 @@ -193341,8 +185868,8 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(abPK + uintptr(i)))) == 0 { bHave = int32(1) - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33856, 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 + 33897 + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33847, 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 + 33888 if zRet == uintptr(0) { break } @@ -193353,7 +185880,7 @@ func _sessionExprCompareOther(tls *libc.TLS, nCol int32, zDb1 uintptr, zDb2 uint i++ } if bHave == 0 { - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1822, 0) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+1813, 0) } return zRet } @@ -193364,12 +185891,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 + 33902 + v1 = __ccgo_ts + 33893 } else { - v1 = __ccgo_ts + 6754 + v1 = __ccgo_ts + 6745 } zSel = v1 - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33913, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) + zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33904, libc.VaList(bp+8, zSel, zDb1, zTbl, zDb2, zTbl, zExpr)) return zRet } @@ -193430,11 +185957,11 @@ func _sessionAllCols(tls *libc.TLS, zDb uintptr, pTab uintptr) (r uintptr) { break } if zRet != 0 { - v2 = __ccgo_ts + 15212 + v2 = __ccgo_ts + 15203 } else { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } - zRet = Xsqlite3_mprintf(tls, __ccgo_ts+33992, 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+33983, 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 } @@ -193462,7 +185989,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+34011, 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+34002, 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 { @@ -193535,7 +186062,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u *(*uintptr)(unsafe.Pointer(bp + 40)) = uintptr(0) zDbExists = uintptr(0) /* Check that database zFrom is attached. */ - zDbExists = Xsqlite3_mprintf(tls, __ccgo_ts+34068, libc.VaList(bp+64, zFrom)) + zDbExists = Xsqlite3_mprintf(tls, __ccgo_ts+34059, libc.VaList(bp+64, zFrom)) if zDbExists == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -193561,7 +186088,7 @@ func Xsqlite3session_diff(tls *libc.TLS, pSession uintptr, zFrom uintptr, zTbl u if *(*int32)(unsafe.Pointer(bp + 24)) <= 0 { rc = int32(SQLITE_SCHEMA) if pzErrMsg != 0 { - *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+34099, libc.VaList(bp+64, zFrom, zTbl)) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+34090, libc.VaList(bp+64, zFrom, zTbl)) } } else { bMismatch = int32(1) @@ -193591,7 +186118,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+34120, 0) + *(*uintptr)(unsafe.Pointer(pzErrMsg)) = Xsqlite3_mprintf(tls, __ccgo_ts+34111, 0) } rc = int32(SQLITE_SCHEMA) } @@ -193751,15 +186278,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -193923,7 +186452,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, libc.Int32FromUint64(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5242, libc.VaList(bp+32, iVal)) + Xsqlite3_snprintf(tls, libc.Int32FromUint64(libc.Uint64FromInt64(24)-libc.Uint64FromInt32(1)), bp, __ccgo_ts+5233, libc.VaList(bp+32, iVal)) _sessionAppendStr(tls, p, bp, pRc) } @@ -194217,18 +186746,18 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt _, _, _, _, _ = i, nSql, zSep, zSql, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK zSql = uintptr(0) - zSep = __ccgo_ts + 1676 + zSep = __ccgo_ts + 1667 nSql = -int32(1) *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 24)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 40)) = TSessionBuffer{} *(*TSessionBuffer)(unsafe.Pointer(bp + 56)) = TSessionBuffer{} - _sessionAppendStr(tls, bp+24, __ccgo_ts+34147, bp) - if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11836, zTab) { - _sessionAppendStr(tls, bp+24, __ccgo_ts+34151, bp) - _sessionAppendStr(tls, bp+40, __ccgo_ts+34175, bp) - _sessionAppendStr(tls, bp+56, __ccgo_ts+34184, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34229, bp) + _sessionAppendStr(tls, bp+24, __ccgo_ts+34138, bp) + if 0 == Xsqlite3_stricmp(tls, __ccgo_ts+11827, zTab) { + _sessionAppendStr(tls, bp+24, __ccgo_ts+34142, bp) + _sessionAppendStr(tls, bp+40, __ccgo_ts+34166, bp) + _sessionAppendStr(tls, bp+56, __ccgo_ts+34175, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34220, bp) } else { i = 0 for { @@ -194236,17 +186765,17 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt break } if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+15212, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15203, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) if *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { _sessionAppendStr(tls, bp+40, zSep, bp) _sessionAppendStr(tls, bp+56, zSep, bp) - zSep = __ccgo_ts + 15212 + zSep = __ccgo_ts + 15203 _sessionAppendIdent(tls, bp+40, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)), bp) - _sessionAppendPrintf(tls, bp+56, bp, __ccgo_ts+34243, libc.VaList(bp+80, i+int32(1))) + _sessionAppendPrintf(tls, bp+56, bp, __ccgo_ts+34234, libc.VaList(bp+80, i+int32(1))) } else { - _sessionAppendPrintf(tls, bp+24, bp, __ccgo_ts+34247, libc.VaList(bp+80, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) + _sessionAppendPrintf(tls, bp+24, bp, __ccgo_ts+34238, libc.VaList(bp+80, i+int32(1)+nCol, i+int32(1), zTab, *(*uintptr)(unsafe.Pointer(azCol + uintptr(i)*8)))) } goto _1 _1: @@ -194258,9 +186787,9 @@ func _sessionSelectStmt(tls *libc.TLS, db uintptr, bIgnoreNoop int32, zDb uintpt if bIgnoreNoop != 0 { v2 = (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf } else { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } - zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34274, libc.VaList(bp+80, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, v2, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 56))).FaBuf)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+34265, libc.VaList(bp+80, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, v2, zDb, zTab, (*(*TSessionBuffer)(unsafe.Pointer(bp + 40))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 56))).FaBuf)) if zSql == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } @@ -194381,7 +186910,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194395,14 +186924,14 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } 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+34316, uintptr(0), uintptr(0), uintptr(0)) + *(*int32)(unsafe.Pointer(bp + 16)) = Xsqlite3_exec(tls, (*Tsqlite3_session)(unsafe.Pointer(pSession)).Fdb, __ccgo_ts+34307, uintptr(0), uintptr(0), uintptr(0)) if *(*int32)(unsafe.Pointer(bp + 16)) != SQLITE_OK { return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -194471,8 +187000,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194497,18 +187026,18 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } Xsqlite3_free(tls, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf) - Xsqlite3_exec(tls, db, __ccgo_ts+34336, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+34327, uintptr(0), uintptr(0), uintptr(0)) Xsqlite3_mutex_leave(tls, Xsqlite3_db_mutex(tls, db)) return *(*int32)(unsafe.Pointer(bp + 16)) } @@ -194532,28 +187061,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194692,7 +187225,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194707,9 +187240,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194738,20 +187271,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194926,7 +187463,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194950,7 +187487,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194965,7 +187502,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -195021,7 +187558,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195126,7 +187663,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195232,7 +187769,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195242,7 +187779,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195321,7 +187858,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195582,7 +188119,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195731,11 +188268,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195747,8 +188284,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -195776,12 +188313,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -195789,9 +188330,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195804,14 +188345,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195835,29 +188368,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -195934,18 +188444,18 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 } if pUp == uintptr(0) { nByte = libc.Int32FromUint64(uint64(24) * libc.Uint64FromInt32(nU32) * uint64(4)) - bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11836) == 0) + bStat1 = libc.BoolInt32(Xsqlite3_stricmp(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, __ccgo_ts+11827) == 0) pUp = Xsqlite3_malloc(tls, nByte) if pUp == uintptr(0) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_NOMEM) } else { - zSep = __ccgo_ts + 1676 + zSep = __ccgo_ts + 1667 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, libc.Uint64FromInt32(nU32)*uint64(4)) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34354, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34345, bp) _sessionAppendIdent(tls, bp+8, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FzTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34367, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34358, bp) /* Create the assignments part of the UPDATE */ ii = 0 for { @@ -195955,9 +188465,9 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 if libc.Int32FromUint8(*(*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+34373, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34364, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(1), bp) - zSep = __ccgo_ts + 15212 + zSep = __ccgo_ts + 15203 } goto _2 _2: @@ -195965,8 +188475,8 @@ func _sessionUpdateFind(tls *libc.TLS, pIter uintptr, p uintptr, bPatchset int32 ii++ } /* Create the WHERE clause part of the UPDATE */ - zSep = __ccgo_ts + 1676 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34378, bp) + zSep = __ccgo_ts + 1667 + _sessionAppendStr(tls, bp+8, __ccgo_ts+34369, bp) ii = 0 for { if !(ii < (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FnCol) { @@ -195975,13 +188485,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+34386, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34377, bp) } else { _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(ii)*8)), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34461, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34452, bp) _sessionAppendInteger(tls, bp+8, ii*int32(2)+int32(2), bp) } - zSep = __ccgo_ts + 22344 + zSep = __ccgo_ts + 22335 } goto _3 _3: @@ -196064,13 +188574,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 + 1676 + zSep = __ccgo_ts + 1667 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK *(*TSessionBuffer)(unsafe.Pointer(bp + 8)) = TSessionBuffer{} nPk = 0 - _sessionAppendStr(tls, bp+8, __ccgo_ts+34467, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34458, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+34378, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34369, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196080,9 +188590,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+34373, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34364, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 22344 + zSep = __ccgo_ts + 22335 } goto _1 _1: @@ -196090,10 +188600,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+34485, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34476, bp) _sessionAppendInteger(tls, bp+8, (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol+int32(1), bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+33897, bp) - zSep = __ccgo_ts + 1676 + _sessionAppendStr(tls, bp+8, __ccgo_ts+33888, bp) + zSep = __ccgo_ts + 1667 i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { @@ -196102,16 +188612,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+34461, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34452, bp) _sessionAppendInteger(tls, bp+8, i+int32(1), bp) - zSep = __ccgo_ts + 34493 + zSep = __ccgo_ts + 34484 } goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5210, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5201, 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)) @@ -196137,7 +188647,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, libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6749, 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, libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop), __ccgo_ts+6740, 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 @@ -196160,16 +188670,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+34498, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34489, bp) _sessionAppendIdent(tls, bp+8, zTab, bp) - _sessionAppendStr(tls, bp+8, __ccgo_ts+22350, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+22341, bp) i = 0 for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } if i != 0 { - _sessionAppendStr(tls, bp+8, __ccgo_ts+15212, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+15203, bp) } _sessionAppendIdent(tls, bp+8, *(*uintptr)(unsafe.Pointer((*TSessionApplyCtx)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)), bp) goto _1 @@ -196177,19 +188687,19 @@ func _sessionInsertRow(tls *libc.TLS, db uintptr, zTab uintptr, p uintptr) (r in ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34516, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34507, bp) i = int32(1) for { if !(i < (*TSessionApplyCtx)(unsafe.Pointer(p)).FnCol) { break } - _sessionAppendStr(tls, bp+8, __ccgo_ts+34527, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+34518, bp) goto _2 _2: ; i++ } - _sessionAppendStr(tls, bp+8, __ccgo_ts+5210, bp) + _sessionAppendStr(tls, bp+8, __ccgo_ts+5201, 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)) } @@ -196212,12 +188722,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+11836, p) + rc = _sessionSelectRow(tls, db, __ccgo_ts+11827, p) if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34531) + rc = _sessionPrepare(tls, db, p+16, __ccgo_ts+34522) } if rc == SQLITE_OK { - rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34644) + rc = _sessionPrepare(tls, db, p+8, __ccgo_ts+34635) } return rc } @@ -196261,7 +188771,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196279,11 +188789,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196460,7 +188970,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -196484,7 +188994,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196499,7 +189009,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196550,7 +189060,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -196590,10 +189100,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196631,11 +189141,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196658,7 +189168,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196677,7 +189187,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196686,7 +189196,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196696,10 +189206,10 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34788, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34779, 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)) @@ -196709,10 +189219,10 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34809, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34800, uintptr(0), uintptr(0), uintptr(0)) } } } @@ -196725,7 +189235,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196752,7 +189262,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196780,7 +189290,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196812,15 +189322,15 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbInvertConstraints = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbIgnoreNoop = libc.BoolUint8(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_IGNORENOOP) != 0)) if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34828, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34819, uintptr(0), uintptr(0), uintptr(0)) } if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+34854, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+34845, 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)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196844,9 +189354,9 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { - *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3899, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) + *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { rc = int32(SQLITE_NOMEM) break @@ -196856,7 +189366,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+6749, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, uintptr(0), bp, bp+8+40, uintptr(0), uintptr(0), bp+8+48, bp+8+124) + rc = _sessionTableInfo(tls, uintptr(0), db, __ccgo_ts+6740, *(*uintptr)(unsafe.Pointer(bp + 144)), bp+8+32, uintptr(0), bp, bp+8+40, uintptr(0), uintptr(0), bp+8+48, bp+8+124) if rc != SQLITE_OK { break } @@ -196875,18 +189385,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+34884, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34875, 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+34928, 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+34919, 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)), libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 136)))) != 0 { schemaMismatch = int32(1) - Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34999, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp)))) + Xsqlite3_log(tls, int32(SQLITE_SCHEMA), __ccgo_ts+34990, 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+11836) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_ts+11827) { v2 = _sessionStat1Sql(tls, db, bp+8) rc = v2 if v2 != 0 { @@ -196920,7 +189430,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196929,7 +189439,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -196937,23 +189447,23 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } } } - rc2 = Xsqlite3_exec(tls, db, __ccgo_ts+35059, uintptr(0), uintptr(0), uintptr(0)) + rc2 = Xsqlite3_exec(tls, db, __ccgo_ts+35050, uintptr(0), uintptr(0), uintptr(0)) if rc == SQLITE_OK { rc = rc2 } if flags&int32(SQLITE_CHANGESETAPPLY_NOSAVEPOINT) == 0 { if rc == SQLITE_OK { - rc = Xsqlite3_exec(tls, db, __ccgo_ts+35089, uintptr(0), uintptr(0), uintptr(0)) + rc = Xsqlite3_exec(tls, db, __ccgo_ts+35080, uintptr(0), uintptr(0), uintptr(0)) } if rc != SQLITE_OK { - Xsqlite3_exec(tls, db, __ccgo_ts+35113, uintptr(0), uintptr(0), uintptr(0)) - Xsqlite3_exec(tls, db, __ccgo_ts+35089, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35104, uintptr(0), uintptr(0), uintptr(0)) + Xsqlite3_exec(tls, db, __ccgo_ts+35080, uintptr(0), uintptr(0), uintptr(0)) } } if rc == SQLITE_OK && bPatchset == 0 && (*(*TSessionApplyCtx)(unsafe.Pointer(bp + 8))).FbRebase != 0 { @@ -196976,13 +189486,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -196991,11 +189505,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -197003,10 +189521,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -197014,37 +189538,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197620,7 +190136,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -197655,8 +190171,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -197675,9 +190191,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -197729,7 +190245,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+3899, libc.VaList(bp+8, zDb)) + (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+8, zDb)) if (*Tsqlite3_changegroup)(unsafe.Pointer(pGrp)).FzDb == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -197788,18 +190304,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197807,13 +190325,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197855,12 +190375,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197868,27 +190394,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -198043,7 +190560,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -198151,8 +190668,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -198164,9 +190681,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -198240,21 +190757,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198411,18 +190932,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198482,99 +190991,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198596,14 +191012,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198615,29 +191023,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198693,15 +191084,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198723,14 +191105,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198840,13 +191214,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199413,14 +191780,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199431,16 +191790,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199492,10 +191841,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199601,12 +191950,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -199681,7 +192030,7 @@ func _fts5yyStackOverflow(tls *libc.TLS, fts5yypParser uintptr) { /* Here code is inserted which will execute if the parser ** stack every overflows */ /******** Begin %stack_overflow code ******************************************/ - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35141, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35132, 0) /******** End %stack_overflow code ********************************************/ (*Tfts5yyParser)(unsafe.Pointer(fts5yypParser)).FpParse = pParse /* Suppress warning about unused %extra_argument var */ } @@ -200037,7 +192386,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+35169, libc.VaList(bp+8, fts5yyminor.Fn, fts5yyminor.Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35160, 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 */ } @@ -200193,18 +192542,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200287,22 +192624,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200321,7 +192642,7 @@ func _fts5HighlightAppend(tls *libc.TLS, pRc uintptr, p uintptr, z uintptr, n in if n < 0 { n = libc.Int32FromUint64(libc.Xstrlen(tls, z)) } - (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+35200, libc.VaList(bp+8, (*THighlightContext)(unsafe.Pointer(p)).FzOut, n, z)) + (*THighlightContext)(unsafe.Pointer(p)).FzOut = Xsqlite3_mprintf(tls, __ccgo_ts+35191, 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) } @@ -200420,7 +192741,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 + 35207 + zErr = __ccgo_ts + 35198 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -200431,7 +192752,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+1676, -int32(1), libc.UintptrFromInt32(0)) + Xsqlite3_result_text(tls, pCtx, __ccgo_ts+1667, -int32(1), libc.UintptrFromInt32(0)) *(*int32)(unsafe.Pointer(bp + 104)) = SQLITE_OK } else { if (*(*THighlightContext)(unsafe.Pointer(bp))).FzIn != 0 { @@ -200480,16 +192801,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200637,7 +192948,7 @@ func _fts5ValueToText(tls *libc.TLS, pVal uintptr) (r uintptr) { if zRet != 0 { v1 = zRet } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } return v1 } @@ -200675,7 +192986,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 + 35257 + zErr = __ccgo_ts + 35248 Xsqlite3_result_error(tls, pCtx, zErr, -int32(1)) return } @@ -200857,15 +193168,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201070,13 +193372,13 @@ func _fts5GetLocaleFunction(tls *libc.TLS, pApi uintptr, pFts uintptr, pCtx uint *(*int32)(unsafe.Pointer(bp + 8)) = 0 /* xColumnLocale() must be available */ if nVal != int32(1) { - z = __ccgo_ts + 35305 + z = __ccgo_ts + 35296 Xsqlite3_result_error(tls, pCtx, z, -int32(1)) return } eType = Xsqlite3_value_numeric_type(tls, *(*uintptr)(unsafe.Pointer(apVal))) if eType != int32(SQLITE_INTEGER) { - z1 = __ccgo_ts + 35361 + z1 = __ccgo_ts + 35352 Xsqlite3_result_error(tls, pCtx, z1, -int32(1)) return } @@ -201109,19 +193411,19 @@ func _sqlite3Fts5AuxInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDestroy uintptr }{ 0: { - FzFunc: __ccgo_ts + 35419, + FzFunc: __ccgo_ts + 35410, FxFunc: __ccgo_fp(_fts5SnippetFunction), }, 1: { - FzFunc: __ccgo_ts + 35427, + FzFunc: __ccgo_ts + 35418, FxFunc: __ccgo_fp(_fts5HighlightFunction), }, 2: { - FzFunc: __ccgo_ts + 35437, + FzFunc: __ccgo_ts + 35428, FxFunc: __ccgo_fp(_fts5Bm25Function), }, 3: { - FzFunc: __ccgo_ts + 35442, + FzFunc: __ccgo_ts + 35433, FxFunc: __ccgo_fp(_fts5GetLocaleFunction), }, } @@ -201596,21 +193898,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201781,7 +194068,7 @@ func _fts5ConfigSkipLiteral(tls *libc.TLS, pIn uintptr) (r uintptr) { case int32('n'): fallthrough case int32('N'): - if Xsqlite3_strnicmp(tls, __ccgo_ts+1662, p, int32(4)) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+1653, p, int32(4)) == 0 { p = p + 4 } else { p = uintptr(0) @@ -201919,13 +194206,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -201985,7 +194265,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pConfig uintptr, zCmd uintptr, zArg _, _, _, _, _, _, _, _, _, _, _ = azArg, bFirst, nArg, nByte, nCmd, nPre, p, p1, p2, pSpace, v2 *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK nCmd = libc.Int32FromUint64(libc.Xstrlen(tls, zCmd)) - if Xsqlite3_strnicmp(tls, __ccgo_ts+35458, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35449, zCmd, nCmd) == 0 { nByte = libc.Int32FromUint64(libc.Uint64FromInt64(4) * libc.Uint64FromInt32(FTS5_MAX_PREFIX_INDEXES)) bFirst = int32(1) if (*TFts5Config)(unsafe.Pointer(pConfig)).FaPrefix == uintptr(0) { @@ -202011,12 +194291,12 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pConfig uintptr, zCmd uintptr, zArg } } if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p))) < int32('0') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p))) > int32('9') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35465, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35456, 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+35496, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35487, libc.VaList(bp+80, int32(FTS5_MAX_PREFIX_INDEXES))) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202025,7 +194305,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pConfig uintptr, zCmd uintptr, zArg p++ } if nPre <= 0 || nPre >= int32(1000) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35529, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35520, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) break } @@ -202035,14 +194315,14 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pConfig uintptr, zCmd uintptr, zArg } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35566, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35557, zCmd, nCmd) == 0 { p1 = zArg nArg = libc.Int64FromUint64(libc.Xstrlen(tls, zArg) + uint64(1)) azArg = _sqlite3Fts5MallocZero(tls, bp, libc.Int64FromUint64(uint64(libc.Uint64FromInt64(8)+libc.Uint64FromInt32(2))*libc.Uint64FromInt64(nArg))) if azArg != 0 { pSpace = azArg + uintptr(nArg)*8 if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FazArg != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35575, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35566, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { nArg = 0 @@ -202069,7 +194349,7 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pConfig uintptr, zCmd uintptr, zArg nArg++ } if p1 == uintptr(0) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35608, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35599, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FazArg = azArg @@ -202081,76 +194361,76 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pConfig uintptr, zCmd uintptr, zArg Xsqlite3_free(tls, azArg) return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35642, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35633, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent != FTS5_CONTENT_NORMAL { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35650, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35641, 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+35682, libc.VaList(bp+80, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, zArg)) + (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+35673, 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+35688, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35679, zCmd, nCmd) == 0 { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35707, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35698, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete = libc.BoolInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35750, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35741, zCmd, nCmd) == 0 { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35707, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35698, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessUnindexed = libc.BoolInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35772, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35763, zCmd, nCmd) == 0 { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContentRowid != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35786, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35777, 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+35824, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35815, zCmd, nCmd) == 0 { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35835, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35826, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize = libc.BoolInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35870, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35861, zCmd, nCmd) == 0 { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35877, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35868, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbLocale = libc.BoolInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+5619, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+5610, zCmd, nCmd) == 0 { *(*[4]TFts5Enum)(unsafe.Pointer(bp + 8)) = [4]TFts5Enum{ 0: { - FzName: __ccgo_ts + 8443, + FzName: __ccgo_ts + 8434, FeVal: int32(FTS5_DETAIL_NONE), }, 1: { - FzName: __ccgo_ts + 18013, + FzName: __ccgo_ts + 18004, }, 2: { - FzName: __ccgo_ts + 35908, + FzName: __ccgo_ts + 35899, FeVal: int32(FTS5_DETAIL_COLUMNS), }, 3: {}, @@ -202158,20 +194438,20 @@ func _fts5ConfigParseSpecial(tls *libc.TLS, pConfig uintptr, zCmd uintptr, zArg v2 = _fts5ConfigSetEnum(tls, bp+8, zArg, pConfig+116) *(*int32)(unsafe.Pointer(bp)) = v2 if v2 != 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35916, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35907, 0) } return *(*int32)(unsafe.Pointer(bp)) } - if Xsqlite3_strnicmp(tls, __ccgo_ts+35947, zCmd, nCmd) == 0 { + if Xsqlite3_strnicmp(tls, __ccgo_ts+35938, zCmd, nCmd) == 0 { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg + 1))) != int32('\000') { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35957, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35948, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FbTokendata = libc.BoolInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) == int32('1')) } return *(*int32)(unsafe.Pointer(bp)) } - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35991, libc.VaList(bp+80, nCmd, zCmd)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+35982, libc.VaList(bp+80, nCmd, zCmd)) return int32(SQLITE_ERROR) } @@ -202232,16 +194512,16 @@ 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+36019) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16960) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36024, libc.VaList(bp+8, zCol)) + if 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+36010) || 0 == Xsqlite3_stricmp(tls, zCol, __ccgo_ts+16951) { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36015, libc.VaList(bp+8, zCol)) rc = int32(SQLITE_ERROR) } else { if zArg != 0 { - if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+36054) { + if 0 == Xsqlite3_stricmp(tls, zArg, __ccgo_ts+36045) { *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr((*TFts5Config)(unsafe.Pointer(p)).FnCol))) = uint8(1) *(*int32)(unsafe.Pointer(pbUnindexed)) = int32(1) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36064, libc.VaList(bp+8, zArg)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36055, libc.VaList(bp+8, zArg)) rc = int32(SQLITE_ERROR) } } @@ -202267,7 +194547,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+36095, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36086, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(p)).FzContentRowid)) if (*TFts5Config)(unsafe.Pointer(p)).FeContent != int32(FTS5_CONTENT_NONE) { i = 0 for { @@ -202275,12 +194555,12 @@ 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+36100, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36091, libc.VaList(bp+32, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FazCol + uintptr(i)*8)))) } else { if (*TFts5Config)(unsafe.Pointer(p)).FeContent == FTS5_CONTENT_NORMAL || *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr(i))) != 0 { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36107, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36098, libc.VaList(bp+32, i)) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36115, 0) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36106, 0) } } goto _1 @@ -202296,9 +194576,9 @@ func _fts5ConfigMakeExprlist(tls *libc.TLS, p uintptr) (r int32) { break } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(p)).FabUnindexed + uintptr(i)))) == 0 { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36122, libc.VaList(bp+32, i)) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36113, libc.VaList(bp+32, i)) } else { - _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36115, 0) + _sqlite3Fts5BufferAppendPrintf(tls, bp, bp+8, __ccgo_ts+36106, 0) } goto _2 _2: @@ -202361,8 +194641,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+36019) == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36130, 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+36010) == 0 { + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36121, libc.VaList(bp+40, (*TFts5Config)(unsafe.Pointer(pRet)).FzName)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } i = int32(3) @@ -202393,19 +194673,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+36159, libc.VaList(bp+40, zOrig)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36150, 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 + 1676 + v4 = __ccgo_ts + 1667 } if *(*uintptr)(unsafe.Pointer(bp + 16)) != 0 { v5 = *(*uintptr)(unsafe.Pointer(bp + 16)) } else { - v5 = __ccgo_ts + 1676 + v5 = __ccgo_ts + 1667 } *(*int32)(unsafe.Pointer(bp)) = _fts5ConfigParseSpecial(tls, pRet, v4, v5, pzErr) } else { @@ -202423,7 +194703,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+36179, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36170, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_delete=1 if columnsize=0 is not present. @@ -202431,37 +194711,37 @@ 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+36229, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36220, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* We only allow contentless_unindexed=1 if the table is actually a ** contentless one. */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessUnindexed != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FeContent != int32(FTS5_CONTENT_NONE) { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36284, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+36275, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } /* If no zContent option was specified, fill in the default values. */ 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 + 35642 + zTail = __ccgo_ts + 35633 } else { if *(*int32)(unsafe.Pointer(bp + 4)) != 0 && (*TFts5Config)(unsafe.Pointer(pRet)).FbContentlessUnindexed != 0 { (*TFts5Config)(unsafe.Pointer(pRet)).FeContent = int32(FTS5_CONTENT_UNINDEXED) - zTail = __ccgo_ts + 35642 + zTail = __ccgo_ts + 35633 } else { if (*TFts5Config)(unsafe.Pointer(pRet)).FbColumnsize != 0 { - zTail = __ccgo_ts + 36337 + zTail = __ccgo_ts + 36328 } } } if zTail != 0 { - (*TFts5Config)(unsafe.Pointer(pRet)).FzContent = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36345, 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+36336, 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+16960, -int32(1)) + (*TFts5Config)(unsafe.Pointer(pRet)).FzContentRowid = _sqlite3Fts5Strndup(tls, bp, __ccgo_ts+16951, -int32(1)) } /* Formulate the zContentExprlist text */ if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -202530,25 +194810,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+36356, 0) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36347, 0) i = 0 for { if !(zSql != 0 && i < (*TFts5Config)(unsafe.Pointer(pConfig)).FnCol) { break } if i == 0 { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } else { - v2 = __ccgo_ts + 15212 + v2 = __ccgo_ts + 15203 } zSep = v2 - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36372, libc.VaList(bp+16, zSql, zSep, *(*uintptr)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FazCol + uintptr(i)*8)))) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36363, 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+36379, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+36019)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+36370, libc.VaList(bp+16, zSql, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, __ccgo_ts+36010)) if zSql != 0 { *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_declare_vtab(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, zSql) Xsqlite3_free(tls, zSql) @@ -202581,7 +194861,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202591,9 +194871,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -202706,7 +194986,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV var _ /* zRankArgs at bp+8 */ uintptr _, _, _, _, _, _, _, _, _, _, _, _ = bVal, bVal1, nAutomerge, nCrisisMerge, nHashSize, nUsermerge, nVal, pgsz, rc, zIn, v1, v2 rc = SQLITE_OK - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36405) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36396) { pgsz = 0 if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { pgsz = Xsqlite3_value_int(tls, pVal) @@ -202717,7 +194997,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+36410) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36401) { nHashSize = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nHashSize = Xsqlite3_value_int(tls, pVal) @@ -202728,7 +195008,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+36419) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36410) { nAutomerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nAutomerge = Xsqlite3_value_int(tls, pVal) @@ -202742,7 +195022,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+36429) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36420) { nUsermerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nUsermerge = Xsqlite3_value_int(tls, pVal) @@ -202753,7 +195033,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+36439) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36430) { nCrisisMerge = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nCrisisMerge = Xsqlite3_value_int(tls, pVal) @@ -202770,7 +195050,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+36451) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36442) { nVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { nVal = Xsqlite3_value_int(tls, pVal) @@ -202785,7 +195065,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+36019) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36010) { zIn = Xsqlite3_value_text(tls, pVal) rc = _sqlite3Fts5ConfigParseRank(tls, zIn, bp, bp+8) if rc == SQLITE_OK { @@ -202800,7 +195080,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV } } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36463) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36454) { bVal = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal = Xsqlite3_value_int(tls, pVal) @@ -202816,7 +195096,7 @@ func _sqlite3Fts5ConfigSetValue(tls *libc.TLS, pConfig uintptr, zKey uintptr, pV (*TFts5Config)(unsafe.Pointer(pConfig)).FbSecureDelete = v1 } } else { - if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36477) { + if 0 == Xsqlite3_stricmp(tls, zKey, __ccgo_ts+36468) { bVal1 = -int32(1) if int32(SQLITE_INTEGER) == Xsqlite3_value_numeric_type(tls, pVal) { bVal1 = Xsqlite3_value_int(tls, pVal) @@ -202859,7 +195139,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 + 36487 + zSelect = __ccgo_ts + 36478 *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 8)) = SQLITE_OK iVersion = 0 @@ -202879,7 +195159,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+36519) { + if 0 == Xsqlite3_stricmp(tls, zK, __ccgo_ts+36510) { iVersion = Xsqlite3_value_int(tls, pVal) } else { *(*int32)(unsafe.Pointer(bp + 12)) = 0 @@ -202890,7 +195170,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) - _sqlite3Fts5ConfigErrmsg(tls, pConfig, __ccgo_ts+36527, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) + _sqlite3Fts5ConfigErrmsg(tls, pConfig, __ccgo_ts+36518, libc.VaList(bp+24, iVersion, int32(FTS5_CURRENT_VERSION), int32(FTS5_CURRENT_VERSION_SECUREDELETE))) } else { (*TFts5Config)(unsafe.Pointer(pConfig)).FiVersion = iVersion } @@ -202955,115 +195235,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203139,7 +195310,7 @@ func _fts5ExprGetToken(tls *libc.TLS, pParse uintptr, pz uintptr, pToken uintptr } } if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(z2))) == int32('\000') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36598, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36589, 0) return FTS5_EOF } goto _1 @@ -203150,7 +195321,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+36618, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36609, libc.VaList(bp+8, z)) return FTS5_EOF } tok = int32(FTS5_STRING) @@ -203165,13 +195336,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+36649, uint64(2)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(2) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36640, 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+36652, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+36643, 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+31061, uint64(3)) == 0 { + if (*TFts5Token)(unsafe.Pointer(pToken)).Fn == int32(3) && libc.Xmemcmp(tls, (*TFts5Token)(unsafe.Pointer(pToken)).Fp, __ccgo_ts+31052, uint64(3)) == 0 { tok = int32(FTS5_AND) } break @@ -203748,16 +195919,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -203782,14 +195943,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204910,14 +197063,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205236,8 +197381,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+36656, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35169, 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+36647, (*TFts5Token)(unsafe.Pointer(pTok)).Fp, uint64(4)) != 0 { + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+35160, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(pTok)).Fn, (*TFts5Token)(unsafe.Pointer(pTok)).Fp)) } } @@ -205257,7 +197402,7 @@ func _sqlite3Fts5ParseSetDistance(tls *libc.TLS, pParse uintptr, pNear uintptr, } c = *(*uint8)(unsafe.Pointer((*TFts5Token)(unsafe.Pointer(p)).Fp + uintptr(i))) if libc.Int32FromUint8(c) < int32('0') || libc.Int32FromUint8(c) > int32('9') { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36661, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36652, libc.VaList(bp+8, (*TFts5Token)(unsafe.Pointer(p)).Fn, (*TFts5Token)(unsafe.Pointer(p)).Fp)) return } if nNear < int32(214748363) { @@ -205398,7 +197543,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+21347, libc.VaList(bp+8, z)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+21338, libc.VaList(bp+8, z)) } else { pRet = _fts5ParseColset(tls, pParse, pColset, iCol) } @@ -205522,7 +197667,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+36690, 0) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36681, 0) } else { _fts5ParseSetColset(tls, pParse, pExpr, pColset, bp) } @@ -205720,11 +197865,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 + 36743 + v2 = __ccgo_ts + 36734 } else { - v2 = __ccgo_ts + 36656 + v2 = __ccgo_ts + 36647 } - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36750, libc.VaList(bp+8, v2)) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36741, libc.VaList(bp+8, v2)) _sqlite3Fts5ParseNodeFree(tls, pRet) pRet = uintptr(0) pNear = uintptr(0) @@ -205737,7 +197882,7 @@ func _sqlite3Fts5ParseNode(tls *libc.TLS, pParse uintptr, eType int32, pLeft uin pRight = v3 pLeft = v3 if (*TFts5ExprNode)(unsafe.Pointer(pRet)).FiHeight > int32(SQLITE_FTS5_MAX_EXPR_DEPTH) { - _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36800, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) + _sqlite3Fts5ParseError(tls, pParse, __ccgo_ts+36791, libc.VaList(bp+8, int32(SQLITE_FTS5_MAX_EXPR_DEPTH))) _sqlite3Fts5ParseNodeFree(tls, pRet) pRet = uintptr(0) } @@ -205858,14 +198003,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205905,14 +198042,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206276,66 +198405,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207385,143 +199454,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207529,191 +199461,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -207894,7 +199641,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+36853, 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+36844, 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. @@ -207999,7 +199746,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+36859, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+80, Xsqlite3_mprintf(tls, __ccgo_ts+36850, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return } @@ -208028,7 +199775,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+36910, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+36901, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) if _fts5IndexPrepareStmt(tls, p, p+88, zSql) != 0 { return } @@ -208062,7 +199809,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+36959, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+104, Xsqlite3_mprintf(tls, __ccgo_ts+36950, 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) @@ -208231,7 +199978,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+36999, uint64(4)) { + if 0 == libc.Xmemcmp(tls, pData+uintptr(i), __ccgo_ts+36990, uint64(4)) { i += int32(4) bStructureV2 = int32(1) } @@ -208422,7 +200169,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+37004, 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+36995, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FzDb))) if (*TFts5Index)(unsafe.Pointer(p)).Frc != 0 { return 0 } @@ -208506,7 +200253,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+36999, uint64(4)) + libc.Xmemcpy(tls, (*TFts5Buffer)(unsafe.Pointer(bp)).Fp+uintptr((*TFts5Buffer)(unsafe.Pointer(bp)).Fn), __ccgo_ts+36990, 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), libc.Uint64FromInt32((*TFts5Structure)(unsafe.Pointer(pStruct)).FnLevel)) @@ -209883,7 +201630,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+37027, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+112, Xsqlite3_mprintf(tls, __ccgo_ts+37018, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxSelect } @@ -209972,7 +201719,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+37111, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+120, Xsqlite3_mprintf(tls, __ccgo_ts+37102, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) } return (*TFts5Index)(unsafe.Pointer(p)).FpIdxNextSelect } @@ -210645,14 +202392,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210662,15 +202401,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210784,7 +202514,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210805,7 +202535,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -211588,7 +203318,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 + 1676 + v1 = __ccgo_ts + 1667 } z = v1 /* The following was already done in fts5WriteInit(): */ @@ -211943,7 +203673,7 @@ func _fts5WriteInit(tls *libc.TLS, p uintptr, pWriter uintptr, iSegid int32) { _sqlite3Fts5BufferSize(tls, p+60, pWriter+8+8, libc.Uint32FromInt32(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+37193, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName))) + _fts5IndexPrepareStmt(tls, p, p+96, Xsqlite3_mprintf(tls, __ccgo_ts+37184, 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. */ @@ -212398,13 +204128,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -212449,7 +204172,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+37250, 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+37241, 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) @@ -212936,7 +204659,7 @@ func _fts5FlushSecureDelete(tls *libc.TLS, p uintptr, pStruct uintptr, zTerm uin if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FiVersion != int32(FTS5_CURRENT_VERSION_SECUREDELETE) { pConfig = (*TFts5Index)(unsafe.Pointer(p)).FpConfig *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) - _fts5IndexPrepareStmt(tls, p, bp+8, Xsqlite3_mprintf(tls, __ccgo_ts+37311, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, int32(FTS5_CURRENT_VERSION_SECUREDELETE)))) + _fts5IndexPrepareStmt(tls, p, bp+8, Xsqlite3_mprintf(tls, __ccgo_ts+37302, libc.VaList(bp+24, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, int32(FTS5_CURRENT_VERSION_SECUREDELETE)))) if (*TFts5Index)(unsafe.Pointer(p)).Frc == SQLITE_OK { Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) rc = Xsqlite3_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) @@ -213525,16 +205248,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213752,7 +205465,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213789,7 +205502,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213800,70 +205513,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -214032,14 +205681,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -214086,19 +205727,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -214319,7 +205947,7 @@ func _sqlite3Fts5IndexReinit(tls *libc.TLS, p uintptr) (r int32) { if (*TFts5Config)(unsafe.Pointer((*TFts5Index)(unsafe.Pointer(p)).FpConfig)).FbContentlessDelete != 0 { (*TFts5Structure)(unsafe.Pointer(pTmp)).FnOriginCntr = uint64(1) } - _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1676, 0) + _fts5DataWrite(tls, p, int64(FTS5_AVERAGES_ROWID), __ccgo_ts+1667, 0) _fts5StructureWrite(tls, p, pTmp) return _fts5IndexReturn(tls, p) } @@ -214346,11 +205974,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+37362, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + (*TFts5Index)(unsafe.Pointer(p)).FzDataTbl = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37353, 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+26096, __ccgo_ts+37370, 0, pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+26087, __ccgo_ts+37361, 0, pzErr) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+12047, __ccgo_ts+37405, int32(1), pzErr) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+12038, __ccgo_ts+37396, int32(1), pzErr) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5IndexReinit(tls, p) @@ -214803,7 +206431,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+37449) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(1), __ccgo_ts+37440) } else { _sqlite3Fts5BufferSet(tls, p+60, bp, nToken, pToken) } @@ -215396,7 +207024,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+36853, 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+36844, 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))) @@ -215990,7 +207618,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+37451, 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+37442, 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)) @@ -216221,7 +207849,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+37537) + _sqlite3Fts5BufferAppendBlob(tls, p+60, bp, uint32(4), __ccgo_ts+37528) 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) & libc.Int64FromInt32(0x7FFFFFFF)) iTokOff = int32(*(*Ti64)(unsafe.Pointer(bp + 32)) & libc.Int64FromInt32(0x7FFFFFFF)) @@ -216414,87 +208042,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216502,97 +208049,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -216843,7 +208299,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) nSeenMatch = 0 bSeenRank = 0 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbLock != 0 { - (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37542, 0) + (*TFts5Table)(unsafe.Pointer(pTab)).Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37533, 0) return int32(SQLITE_ERROR) } idxStr = Xsqlite3_malloc(tls, (*Tsqlite3_index_info)(unsafe.Pointer(pInfo)).FnConstraint*int32(8)+int32(1)) @@ -216880,7 +208336,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+5242, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5233, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) } iCons++ @@ -216899,7 +208355,7 @@ func _fts5BestIndexMethod(tls *libc.TLS, pVTab uintptr, pInfo uintptr) (r int32) v6 = int32('G') } *(*uint8)(unsafe.Pointer(idxStr + uintptr(v5))) = libc.Uint8FromInt32(v6) - Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5242, libc.VaList(bp+8, iCol)) + Xsqlite3_snprintf(tls, int32(6), idxStr+uintptr(iIdxStr), __ccgo_ts+5233, libc.VaList(bp+8, iCol)) idxStr += uintptr(libc.Xstrlen(tls, idxStr+uintptr(iIdxStr))) iCons++ v7 = iCons @@ -217349,7 +208805,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+3899, 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+3890, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } } else { rc = SQLITE_OK @@ -217377,7 +208833,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 { - _sqlite3Fts5ConfigErrmsg(tls, pConfig, __ccgo_ts+3899, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) + _sqlite3Fts5ConfigErrmsg(tls, pConfig, __ccgo_ts+3890, libc.VaList(bp+16, Xsqlite3_errmsg(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb))) } Xsqlite3_free(tls, zSql) } @@ -217412,21 +208868,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 + 15212 + v1 = __ccgo_ts + 15203 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } if zRankArgs != 0 { v2 = zRankArgs } else { - v2 = __ccgo_ts + 1676 + v2 = __ccgo_ts + 1667 } if bDesc != 0 { - v3 = __ccgo_ts + 37581 + v3 = __ccgo_ts + 37572 } else { - v3 = __ccgo_ts + 37586 + v3 = __ccgo_ts + 37577 } - rc = _fts5PrepareStatement(tls, pSorter, pConfig, __ccgo_ts+37590, 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+37581, 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 @@ -217484,14 +208940,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+37645, z, n) { + if n == int32(5) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+37636, 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+5601, z, n) { + if n == int32(2) && 0 == Xsqlite3_strnicmp(tls, __ccgo_ts+5592, 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+37651, libc.VaList(bp+8, n, z)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37642, libc.VaList(bp+8, n, z)) rc = int32(SQLITE_ERROR) } } @@ -217541,7 +208997,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+37679, libc.VaList(bp+24, zRankArgs)) + zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37670, 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)) @@ -217574,7 +209030,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+37689, libc.VaList(bp+24, zRank)) + (*TFts5FullTable)(unsafe.Pointer(pTab)).Fp.Fbase.FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37680, libc.VaList(bp+24, zRank)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -217608,7 +209064,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+37710, libc.VaList(bp+24, z)) + (*Tsqlite3_vtab)(unsafe.Pointer((*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab)).FzErrMsg = Xsqlite3_mprintf(tls, __ccgo_ts+37701, libc.VaList(bp+24, z)) } } } else { @@ -217616,7 +209072,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 + 35437 + (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRank = __ccgo_ts + 35428 (*TFts5Cursor)(unsafe.Pointer(pCsr)).FzRankArgs = uintptr(0) } } @@ -217773,7 +209229,7 @@ func _fts5ExtractExprText(tls *libc.TLS, pConfig uintptr, pVal uintptr, pzText u *(*uintptr)(unsafe.Pointer(bp + 24)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 32)) = 0 *(*int32)(unsafe.Pointer(bp)) = _sqlite3Fts5DecodeLocaleValue(tls, pVal, bp+8, bp+16, bp+24, bp+32) - *(*uintptr)(unsafe.Pointer(pzText)) = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37743, libc.VaList(bp+48, *(*int32)(unsafe.Pointer(bp + 16)), *(*uintptr)(unsafe.Pointer(bp + 8)))) + *(*uintptr)(unsafe.Pointer(pzText)) = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+37734, libc.VaList(bp+48, *(*int32)(unsafe.Pointer(bp + 16)), *(*uintptr)(unsafe.Pointer(bp + 8)))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { _sqlite3Fts5SetLocale(tls, pConfig, *(*uintptr)(unsafe.Pointer(bp + 24)), *(*int32)(unsafe.Pointer(bp + 32))) } @@ -217844,7 +209300,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint goto filter_out } if *(*uintptr)(unsafe.Pointer(bp + 8)) == uintptr(0) { - *(*uintptr)(unsafe.Pointer(bp + 8)) = __ccgo_ts + 1676 + *(*uintptr)(unsafe.Pointer(bp + 8)) = __ccgo_ts + 1667 } if Xsqlite3_value_subtype(tls, *(*uintptr)(unsafe.Pointer(apVal + uintptr(i)*8))) == uint32(FTS5_INSTTOKEN_SUBTYPE) { (*TFts5Config)(unsafe.Pointer(pConfig)).FbPrefixInsttoken = int32(1) @@ -217973,7 +209429,7 @@ func _fts5FilterMethod(tls *libc.TLS, pCursor uintptr, idxNum int32, idxStr uint } } else { if (*TFts5Config)(unsafe.Pointer(pConfig)).FzContent == uintptr(0) { - _fts5SetVtabError(tls, pTab, __ccgo_ts+37748, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) + _fts5SetVtabError(tls, pTab, __ccgo_ts+37739, libc.VaList(bp+32, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) rc = int32(SQLITE_ERROR) } else { /* This is either a full-table scan (ePlan==FTS5_PLAN_SCAN) or a lookup @@ -218106,10 +209562,10 @@ func _fts5SeekCursor(tls *libc.TLS, pCsr uintptr, bErrormsg int32) (r int32) { rc = Xsqlite3_reset(tls, (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpStmt) if rc == SQLITE_OK { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< int32(FTS5_STMT_LOOKUP2) && eStmt < int32(FTS5_STMT_SCAN) { /* One of the internal tables - not the %_content table - is missing. @@ -220645,12 +212038,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+39097, 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+39088, 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+39201, 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+39192, 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+39239, 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+39230, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } return rc } @@ -220659,7 +212052,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+39277, 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+39268, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zTail, zName, zTail)) } } @@ -220671,14 +212064,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+26096, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+12047, zName) - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+38431, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+26087, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+12038, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+38422, zName) if (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36337, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+36328, zName) } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL { - _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35642, zName) + _fts5StorageRenameOne(tls, pConfig, bp, __ccgo_ts+35633, zName) } return *(*int32)(unsafe.Pointer(bp)) } @@ -220698,13 +212091,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 + 30736 + v1 = __ccgo_ts + 30727 } else { - v1 = __ccgo_ts + 1676 + v1 = __ccgo_ts + 1667 } - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, bp, __ccgo_ts+39319, 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+39310, 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+39349, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+39340, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zPost, *(*uintptr)(unsafe.Pointer(bp)))) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -220745,7 +212138,7 @@ 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+39393, 0) + Xsqlite3_snprintf(tls, nDefn, zDefn, __ccgo_ts+39384, 0) iOff = libc.Int32FromUint64(libc.Xstrlen(tls, zDefn)) i = 0 for { @@ -220753,7 +212146,7 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr break } if (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == FTS5_CONTENT_NORMAL || *(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FabUnindexed + uintptr(i))) != 0 { - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+39416, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+39407, libc.VaList(bp+8, i)) iOff += libc.Int32FromUint64(libc.Xstrlen(tls, zDefn+uintptr(iOff))) } goto _2 @@ -220768,7 +212161,7 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr break } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).FabUnindexed + uintptr(i)))) == 0 { - Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+39422, libc.VaList(bp+8, i)) + Xsqlite3_snprintf(tls, nDefn-iOff, zDefn+uintptr(iOff), __ccgo_ts+39413, libc.VaList(bp+8, i)) iOff += libc.Int32FromUint64(libc.Xstrlen(tls, zDefn+uintptr(iOff))) } goto _3 @@ -220777,22 +212170,22 @@ func _sqlite3Fts5StorageOpen(tls *libc.TLS, pConfig uintptr, pIndex uintptr, bCr i++ } } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35642, zDefn, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+35633, zDefn, 0, pzErr) } Xsqlite3_free(tls, zDefn) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FbColumnsize != 0 { - zCols = __ccgo_ts + 39428 + zCols = __ccgo_ts + 39419 if (*TFts5Config)(unsafe.Pointer(pConfig)).FbContentlessDelete != 0 { - zCols = __ccgo_ts + 39460 + zCols = __ccgo_ts + 39451 } - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36337, zCols, 0, pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+36328, zCols, 0, pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+38431, __ccgo_ts+39508, int32(1), pzErr) + rc = _sqlite3Fts5CreateTable(tls, pConfig, __ccgo_ts+38422, __ccgo_ts+39499, int32(1), pzErr) } if rc == SQLITE_OK { - rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36519, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36510, uintptr(0), int32(FTS5_CURRENT_VERSION)) } } if rc != 0 { @@ -220837,14 +212230,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221227,12 +212612,12 @@ 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+39525, 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+39516, 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+39575, 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+39566, libc.VaList(bp+8, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName)) } if rc == SQLITE_OK && (*TFts5Config)(unsafe.Pointer(pConfig)).FeContent == int32(FTS5_CONTENT_UNINDEXED) { - rc = _fts5ExecPrintf(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Fdb, uintptr(0), __ccgo_ts+39604, 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+39595, 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. */ @@ -221240,7 +212625,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+36519, uintptr(0), int32(FTS5_CURRENT_VERSION)) + rc = _sqlite3Fts5StorageConfigValue(tls, p, __ccgo_ts+36510, uintptr(0), int32(FTS5_CURRENT_VERSION)) } return rc } @@ -221542,7 +212927,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+39633, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) + zSql = Xsqlite3_mprintf(tls, __ccgo_ts+39624, libc.VaList(bp+16, (*TFts5Config)(unsafe.Pointer(pConfig)).FzDb, (*TFts5Config)(unsafe.Pointer(pConfig)).FzName, zSuffix)) if zSql == uintptr(0) { rc = int32(SQLITE_NOMEM) } else { @@ -221575,17 +212960,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -221774,14 +213148,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 + 80)) = 0 - rc = _fts5StorageCount(tls, p, __ccgo_ts+35642, bp+80) + rc = _fts5StorageCount(tls, p, __ccgo_ts+35633, bp+80) if rc == SQLITE_OK && *(*Ti64)(unsafe.Pointer(bp + 80)) != (*TFts5Storage)(unsafe.Pointer(p)).FnTotalRow { rc = libc.Int32FromInt32(SQLITE_CORRUPT) | libc.Int32FromInt32(1)< 0 { zBase = *(*uintptr)(unsafe.Pointer(azArg)) @@ -222813,14 +214161,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222831,16 +214171,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -type PorterRule1 = TPorterRule1 - func _fts5PorterIsVowel(tls *libc.TLS, c uint8, bYIsVowel int32) (r int32) { return libc.BoolInt32(libc.Int32FromUint8(c) == int32('a') || libc.Int32FromUint8(c) == int32('e') || libc.Int32FromUint8(c) == int32('i') || libc.Int32FromUint8(c) == int32('o') || libc.Int32FromUint8(c) == int32('u') || bYIsVowel != 0 && libc.Int32FromUint8(c) == int32('y')) } @@ -222986,64 +214316,64 @@ func _fts5PorterStep4(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39735, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39726, 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+39738, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39729, 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+39743, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39734, 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+39748, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39739, 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+39751, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39742, 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+39754, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39745, 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+39759, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39750, 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+39764, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39755, 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+39768, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39759, 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+39774, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39765, 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+39779, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39770, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -223052,49 +214382,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+39783, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39774, 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+39787, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39778, 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+39790, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39781, 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+39794, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39785, 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+39798, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39789, 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+39802, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39793, 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+39806, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39797, 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+39810, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39801, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { if _fts5Porter_MGt1(tls, aBuf, nBuf-int32(3)) != 0 { *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) } @@ -223111,20 +214441,20 @@ func _fts5PorterStep1B2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39814, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39794, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39805, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39785, 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+39817, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39820, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39808, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39811, 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+39824, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { - libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39810, uint64(3)) + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39815, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(2)), __ccgo_ts+39801, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(2) + int32(3) ret = int32(1) } @@ -223140,75 +214470,75 @@ func _fts5PorterStep2(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39827, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39818, 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+39794, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39785, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39835, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39826, 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+39842, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39833, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(4) } } } case int32('c'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39847, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39838, 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+39743, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39734, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39852, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39843, 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+39738, uint64(4)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39729, uint64(4)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(4) } } } case int32('e'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39857, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39848, 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+39810, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39801, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('g'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39862, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39853, 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+16162, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+16153, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } case int32('l'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39867, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39858, 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+39820, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39811, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39871, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39862, 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+39735, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39726, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39876, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39867, 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+39779, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39770, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39882, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39873, 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+39886, uint64(1)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39877, uint64(1)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(1) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39888, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39879, 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+39802, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39793, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } @@ -223217,48 +214547,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+39894, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39885, 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+39810, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39801, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39902, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39893, 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+39794, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39785, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39908, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39899, 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+39794, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39785, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(3) } } } } case int32('s'): - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39913, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39904, 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+39735, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39726, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39919, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39910, 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+39806, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39797, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39927, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39918, 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+39935, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39926, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } else { - if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39939, aBuf+uintptr(nBuf-int32(7)), uint64(7)) { + if nBuf > int32(7) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39930, 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+39802, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(7)), __ccgo_ts+39793, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(7) + int32(3) } } @@ -223266,21 +214596,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+39947, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39938, 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+39735, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39726, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39953, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39944, 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+39806, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39797, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(3) } } else { - if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39959, aBuf+uintptr(nBuf-int32(6)), uint64(6)) { + if nBuf > int32(6) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39950, 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+39820, uint64(3)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(6)), __ccgo_ts+39811, uint64(3)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(6) + int32(3) } } @@ -223298,48 +214628,48 @@ func _fts5PorterStep3(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('a'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39966, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39957, 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+39751, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(4)), __ccgo_ts+39742, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(4) + int32(2) } } case int32('s'): - if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39971, aBuf+uintptr(nBuf-int32(4)), uint64(4)) { + if nBuf > int32(4) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39962, 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+39976, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39967, 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+39751, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39742, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } else { - if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39982, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39973, 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+39751, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39742, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } } case int32('u'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39935, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39926, 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+39988, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39979, 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+39994, aBuf+uintptr(nBuf-int32(5)), uint64(5)) { + if nBuf > int32(5) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39985, 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+39735, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(5)), __ccgo_ts+39726, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(5) + int32(2) } } @@ -223355,13 +214685,13 @@ func _fts5PorterStep1B(tls *libc.TLS, aBuf uintptr, pnBuf uintptr) (r int32) { nBuf = *(*int32)(unsafe.Pointer(pnBuf)) switch libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(aBuf + uintptr(nBuf-int32(2))))) { case int32('e'): - if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40000, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39991, 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+40004, uint64(2)) + libc.Xmemcpy(tls, aBuf+uintptr(nBuf-int32(3)), __ccgo_ts+39995, uint64(2)) *(*int32)(unsafe.Pointer(pnBuf)) = nBuf - int32(3) + int32(2) } } else { - if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40007, aBuf+uintptr(nBuf-int32(2)), uint64(2)) { + if nBuf > int32(2) && 0 == libc.Xmemcmp(tls, __ccgo_ts+39998, 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) @@ -223369,7 +214699,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+40010, aBuf+uintptr(nBuf-int32(3)), uint64(3)) { + if nBuf > int32(3) && 0 == libc.Xmemcmp(tls, __ccgo_ts+40001, 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) @@ -223466,14 +214796,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223491,13 +214821,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223534,14 +214857,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+40014) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+40005) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { (*TTrigramTokenizer)(unsafe.Pointer(pNew)).FbFold = libc.BoolInt32(libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) == int32('0')) } } else { - if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39707) { + if 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer(azArg + uintptr(i)*8)), __ccgo_ts+39698) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('0') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('1') && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(zArg))) != int32('2') || *(*uint8)(unsafe.Pointer(zArg + 1)) != 0 { rc = int32(SQLITE_ERROR) } else { @@ -223579,7 +214902,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223707,7 +215030,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223783,11 +215106,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -223809,7 +215132,7 @@ func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) // ** called for the first time in order to correctly handle LIKE/GLOB. // */ func _sqlite3Fts5TokenizerPreload(tls *libc.TLS, p uintptr) (r int32) { - return libc.BoolInt32((*TFts5TokenizerConfig)(unsafe.Pointer(p)).FnArg >= int32(1) && 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer((*TFts5TokenizerConfig)(unsafe.Pointer(p)).FazArg)), __ccgo_ts+40029)) + return libc.BoolInt32((*TFts5TokenizerConfig)(unsafe.Pointer(p)).FnArg >= int32(1) && 0 == Xsqlite3_stricmp(tls, *(*uintptr)(unsafe.Pointer((*TFts5TokenizerConfig)(unsafe.Pointer(p)).FazArg)), __ccgo_ts+40020)) } // C documentation @@ -223835,7 +215158,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { Fx Tfts5_tokenizer }{ 0: { - FzName: __ccgo_ts + 39725, + FzName: __ccgo_ts + 39716, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5UnicodeCreate), FxDelete: __ccgo_fp(_fts5UnicodeDelete), @@ -223843,7 +215166,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 1: { - FzName: __ccgo_ts + 40037, + FzName: __ccgo_ts + 40028, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5AsciiCreate), FxDelete: __ccgo_fp(_fts5AsciiDelete), @@ -223851,7 +215174,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { }, }, 2: { - FzName: __ccgo_ts + 40029, + FzName: __ccgo_ts + 40020, Fx: Tfts5_tokenizer{ FxCreate: __ccgo_fp(_fts5TriCreate), FxDelete: __ccgo_fp(_fts5TriDelete), @@ -223881,7 +215204,7 @@ func _sqlite3Fts5TokenizerInit(tls *libc.TLS, pApi uintptr) (r int32) { FxDelete: __ccgo_fp(_fts5PorterDelete), FxTokenize: __ccgo_fp(_fts5PorterTokenize), } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_api)(unsafe.Pointer(pApi)).FxCreateTokenizer_v2})))(tls, pApi, __ccgo_ts+40043, pApi, bp+96, uintptr(0)) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_api)(unsafe.Pointer(pApi)).FxCreateTokenizer_v2})))(tls, pApi, __ccgo_ts+40034, pApi, bp+96, uintptr(0)) } return rc } @@ -229342,39 +220665,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -229397,16 +220687,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+40050) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40041) == 0 { *(*int32)(unsafe.Pointer(peType)) = FTS5_VOCAB_COL } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40054) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40045) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_ROW) } else { - if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40058) == 0 { + if Xsqlite3_stricmp(tls, zCopy, __ccgo_ts+40049) == 0 { *(*int32)(unsafe.Pointer(peType)) = int32(FTS5_VOCAB_INSTANCE) } else { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+40067, libc.VaList(bp+16, zCopy)) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+40058, libc.VaList(bp+16, zCopy)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } @@ -229476,15 +220766,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 + 40101, - 1: __ccgo_ts + 40141, - 2: __ccgo_ts + 40176, + 0: __ccgo_ts + 40092, + 1: __ccgo_ts + 40132, + 2: __ccgo_ts + 40167, } 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+24089, *(*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+24080, *(*uintptr)(unsafe.Pointer(argv + 1*8)), uint64(4)) == 0) if argc != int32(5) && bDb == 0 { - *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+40219, 0) + *(*uintptr)(unsafe.Pointer(pzErr)) = Xsqlite3_mprintf(tls, __ccgo_ts+40210, 0) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } else { if bDb != 0 { @@ -229654,10 +220944,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+40252, 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+40243, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) return int32(SQLITE_ERROR) } - zSql = _sqlite3Fts5Mprintf(tls, bp, __ccgo_ts+40283, 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+40274, 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)) } @@ -229676,7 +220966,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+40334, 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+40325, libc.VaList(bp+24, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Db, (*TFts5VocabTable)(unsafe.Pointer(pTab)).FzFts5Tbl)) *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_ERROR) } } else { @@ -230002,7 +221292,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 + 1676 + zCopy = __ccgo_ts + 1667 } (*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)) @@ -230126,7 +221416,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+40360, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) + return Xsqlite3_create_module_v2(tls, db, __ccgo_ts+40351, uintptr(unsafe.Pointer(&_fts5Vocab)), p, uintptr(0)) } var _fts5Vocab = Tsqlite3_module{ @@ -230181,7 +221471,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 + 40370 + return __ccgo_ts + 40361 } type TAggInfo_col = struct { @@ -230459,11 +221749,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '4'} 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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-14.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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 f8657b61b..f3a6bcac1 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_riscv64.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_riscv64.go @@ -2186,7 +2186,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2297,8 +2297,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -3923,12 +3923,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4057,30 +4051,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - /* ** CAPI3REF: Standard File Control Opcodes ** KEYWORDS: {file control opcodes} {file control opcode} @@ -4968,33 +4938,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -5073,19 +5016,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -5261,223 +5191,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5559,20 +5272,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5622,13 +5321,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5808,24 +5500,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5849,22 +5523,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -6005,50 +5663,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6445,340 +6059,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6788,15 +6068,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6812,14 +6083,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6845,17 +6108,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7299,52 +6551,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint64 type size_t = Tsize_t @@ -7674,14 +6880,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -7926,6 +7124,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -8413,10 +7612,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8845,9 +8040,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -8974,53 +8169,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -9124,16 +8272,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -9157,38 +8295,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9201,34 +8312,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9242,90 +8329,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9344,187 +8347,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9534,917 +8356,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity uint8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10469,622 +8380,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr uint8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -11094,318 +8389,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]uint8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11491,232 +8474,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign uint8 - FisSpecial uint8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]uint8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -12880,72 +9637,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -12991,152 +9682,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13167,18 +9712,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13195,101 +9728,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]uint8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13311,13 +9749,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13337,14 +9768,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13423,7 +9847,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13653,7 +10077,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13788,24 +10212,6 @@ type TDateTime = struct { 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 - FvalidYMD uint8 - FvalidHMS uint8 - FnFloor uint8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15799,28 +12205,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15828,19 +12234,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15857,12 +12263,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15870,7 +12276,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15883,34 +12289,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16223,14 +12629,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16245,9 +12644,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -16994,27 +13393,6 @@ type t__ptcb = struct { F__next uintptr } -type Tcpu_set_t1 = struct { - F__bits [16]uint64 -} - -type cpu_set_t1 = Tcpu_set_t1 - -/* -** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two conditions: (1) Debug builds and (2) using -** home-grown mutexes. Encapsulate these conditions into a single #define. - */ - -/* -** Each recursive mutex is an instance of the following structure. - */ -type Tsqlite3_mutex1 = struct { - Fmutex Tpthread_mutex_t -} - -type sqlite3_mutex1 = Tsqlite3_mutex1 - /* ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are ** intended for use only inside assert() statements. On some platforms, @@ -17298,6 +13676,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -17305,8 +13685,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20614,56 +16994,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ - -/* #include */ - -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid Tpthread_t - Fdone int32 - FpOut uintptr - FxTask uintptr - FpIn uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -20674,7 +17008,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } libc.Xmemset(tls, p, 0, uint64(40)) - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a ** function that returns SQLITE_ERROR when passed the argument 200, that @@ -20683,11 +17017,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if _sqlite3FaultSim(tls, int32(200)) != 0 { rc = int32(1) } else { - rc = libc.Xpthread_create(tls, p, uintptr(0), xTask, pIn) + rc = libc.Xpthread_create(tls, p, uintptr(0), __ccgo_fp_xTask, pIn) } if rc != 0 { (*TSQLiteThread)(unsafe.Pointer(p)).Fdone = int32(1) - (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24497,22 +20831,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24543,30 +20861,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24793,7 +21087,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24831,10 +21125,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -25209,47 +21503,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25350,7 +21603,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -25980,7 +22233,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26611,7 +22864,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3605, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3605, bp, int32(42579)) } // C documentation @@ -26648,7 +22901,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -27196,7 +23360,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27259,7 +23423,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27492,7 +23656,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 128)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1667, int32(1), bp+128) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28661,7 +24825,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3488, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3488, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28738,7 +24902,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3677, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3677, zIn, int32(45510)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 128)))[got] = uint8(0) @@ -28936,14 +25090,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if libc.Int32FromUint8(*(*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(45566)), __ccgo_ts+3506, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3506, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -31015,66 +27009,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31248,14 +27182,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -32071,123 +28005,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33384,25 +29201,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34364,258 +30162,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]uint8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34714,7 +30260,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37199,7 +32745,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37390,10 +32936,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38294,7 +33840,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38369,7 +33915,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38591,7 +34137,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38847,7 +34393,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -39022,7 +34568,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -39053,7 +34599,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -39125,7 +34671,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -40482,7 +36028,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41331,232 +36877,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41575,29 +36895,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -42026,14 +37323,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42200,7 +37489,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42288,7 +37577,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42868,10 +38157,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -42969,7 +38258,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -43008,7 +38297,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -43021,7 +38310,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -43037,7 +38326,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -43058,7 +38347,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -43124,7 +38413,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43422,7 +38711,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44233,7 +39522,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44379,7 +39668,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44406,7 +39695,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44734,7 +40023,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44915,7 +40204,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -44924,7 +40213,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -44976,14 +40265,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45529,288 +40818,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -45943,27 +40950,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46846,11 +41832,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -47024,7 +42010,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -47037,12 +42023,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47086,7 +42072,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -47094,7 +42080,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47514,7 +42500,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47554,12 +42540,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47567,21 +42553,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47628,12 +42614,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47649,7 +42635,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47709,7 +42695,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47726,14 +42712,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47776,11 +42762,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47794,7 +42780,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47875,12 +42861,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47891,11 +42877,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -47916,7 +42902,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -47933,10 +42919,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -47997,7 +42983,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -48023,7 +43009,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -48062,12 +43048,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48094,7 +43080,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -48125,11 +43111,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2)))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -48158,7 +43144,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48171,7 +43157,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48322,7 +43308,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48384,7 +43370,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49296,7 +44282,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -49737,7 +44723,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49761,7 +44747,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49770,7 +44756,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49784,7 +44770,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49814,7 +44800,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -49910,7 +44896,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49948,7 +44934,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -50015,7 +45001,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50058,7 +45044,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -50088,7 +45074,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50554,7 +45540,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50946,7 +45932,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50956,7 +45942,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -51013,7 +45999,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -51087,7 +46073,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51222,7 +46208,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51234,7 +46220,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -51350,7 +46336,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51364,7 +46350,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51598,7 +46584,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51682,7 +46668,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51694,7 +46680,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -51896,7 +46882,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -51929,7 +46915,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51938,7 +46924,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -52067,7 +47053,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52177,7 +47163,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52265,7 +47251,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52320,7 +47306,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52346,7 +47332,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52373,7 +47359,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -52444,7 +47430,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52582,7 +47568,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52633,7 +47619,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52642,7 +47628,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52732,7 +47718,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52750,7 +47736,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52773,7 +47759,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -52994,7 +47980,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53288,17 +48274,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53388,12 +48363,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53401,7 +48376,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -53496,7 +48471,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz)) @@ -53644,7 +48619,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2))) nCell -= nShift @@ -53715,7 +48690,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53760,7 +48735,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -54124,7 +49099,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -54147,7 +49122,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54278,7 +49253,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -54321,7 +49296,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54380,7 +49355,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54412,7 +49387,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54642,7 +49617,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54888,7 +49863,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -54961,7 +49936,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -55120,7 +50095,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -55151,7 +50126,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55236,7 +50211,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55328,7 +50303,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55364,7 +50339,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55394,10 +50369,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55515,7 +50490,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55537,7 +50512,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55637,21 +50612,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&libc.Int32FromUint16(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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55745,7 +50720,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&libc.Int32FromUint16(libc.X__builtin_bswap16(tls, *(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1)))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } nCell = libc.Int32FromUint16((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55855,7 +50830,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55896,7 +50871,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55977,14 +50952,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -56121,7 +51096,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57173,14 +52148,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57391,45 +52366,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -59031,7 +53967,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -59044,8 +53980,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59204,7 +54140,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59246,11 +54182,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59260,7 +54196,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59282,12 +54218,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59326,7 +54262,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59438,8 +54374,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -60029,7 +54965,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -60045,7 +54981,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -60055,7 +54991,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -60106,9 +55042,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60182,7 +55118,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -62306,7 +57242,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62314,7 +57250,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -63141,7 +58077,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -63989,7 +58925,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -64079,7 +59015,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -64114,7 +59050,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64168,7 +59104,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64300,7 +59236,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64452,7 +59388,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64483,7 +59419,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -64900,7 +59836,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65227,12 +60163,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65249,29 +60185,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65301,13 +60241,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65319,11 +60261,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -65331,23 +60277,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65604,7 +60556,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65734,7 +60686,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65903,6 +60855,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -65916,7 +60870,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -65954,13 +60908,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66460,14 +61414,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5617, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66505,7 +61459,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66515,7 +61469,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66526,24 +61480,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66591,7 +61549,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66599,32 +61559,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16LE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -67041,7 +62007,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -67103,7 +62069,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol)).Faffinity, bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67204,7 +62170,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70565,7 +65531,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72475,7 +67441,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, uint8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72502,7 +67468,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73394,7 +68360,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -73776,7 +68742,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75427,7 +70393,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76829,7 +71516,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77320,8 +72007,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77516,7 +72203,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -79168,57 +73855,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79515,7 +74151,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -83979,12 +78615,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87561,6 +82191,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -88098,6 +82733,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88304,7 +82960,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -88331,8 +82987,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -90747,31 +85403,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90788,16 +85419,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -91100,9 +85721,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91296,7 +85917,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11472, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91315,7 +85936,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92379,7 +87000,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -92933,44 +87554,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94261,13 +88844,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95466,6 +90042,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95538,9 +90116,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95720,47 +90298,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96388,9 +90925,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100636,7 +95173,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14729, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -106075,17 +100612,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106299,12 +100825,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109586,7 +104106,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -111080,33 +105600,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112660,6 +107153,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112693,7 +107188,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112705,7 +107200,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1667 @@ -112729,7 +107224,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -112770,7 +107265,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -112817,330 +107312,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -113745,14 +107916,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113767,7 +107933,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113785,7 +107951,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -113800,7 +107966,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113810,6 +107976,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113821,7 +107989,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113833,7 +108001,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -117560,25 +111728,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -117980,7 +112129,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -117993,7 +112142,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+18990, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118587,7 +112736,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118600,9 +112749,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118789,7 +112938,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -118923,7 +113072,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -119045,15 +113194,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -119089,21 +113229,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119790,13 +113915,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -123771,18 +117889,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127375,6 +121481,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131679,39 +125786,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131722,7 +125796,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131741,7 +125815,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131766,15 +125840,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131789,13 +125863,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132317,7 +126393,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132378,7 +126454,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132662,9 +126738,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133246,7 +127322,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133259,7 +127335,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133519,435 +127595,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff uint8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134292,10 +127939,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -134918,7 +128565,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135268,7 +128915,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136814,7 +130461,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -138953,16 +132600,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -139075,7 +132712,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140593,10 +134230,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -142877,15 +136514,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -142917,7 +136545,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -142936,7 +136564,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -142973,7 +136601,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -143002,19 +136630,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143316,6 +136944,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143858,7 +137494,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144523,17 +138159,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146508,7 +140133,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146521,7 +140146,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146700,7 +140325,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -148035,16 +141660,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -148063,17 +141678,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -148091,7 +141706,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -148115,13 +141730,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -148136,9 +141751,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -148146,13 +141761,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148168,13 +141783,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -148951,87 +142566,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157280,14 +150814,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157298,16 +150824,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164283,7 +157799,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165653,12 +159173,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165676,9 +159196,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165707,7 +159227,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165725,15 +159245,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165748,27 +159268,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165779,30 +159299,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165865,6 +159415,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165875,43 +159427,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -165922,12 +159478,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -165939,6 +159495,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165946,82 +159504,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -166065,18 +159633,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -166102,7 +159672,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -166234,7 +159804,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166366,7 +159936,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166376,7 +159946,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166412,7 +159982,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166425,7 +159995,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166469,9 +160039,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -166973,7 +160543,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4285 @@ -167127,36 +160697,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -167164,7 +160742,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, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167172,31 +160750,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167230,12 +160812,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167270,8 +160854,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167282,7 +160866,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168634,6 +162218,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168657,7 +162243,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168667,7 +162253,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168679,7 +162265,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168695,7 +162281,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -169911,106 +163497,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]uint8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172621,16 +166107,6 @@ type TJsonPretty = struct { 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 */ @@ -175457,16 +168933,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175485,24 +168951,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175510,13 +168958,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176488,223 +169929,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176722,33 +169949,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176759,78 +169980,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -179786,9 +172991,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179803,9 +173008,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -180705,23 +173910,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181306,14 +174494,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181338,16 +174518,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -182130,13 +175300,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182371,36 +175534,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183371,16 +176504,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28672) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28688) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183689,12 +176822,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183702,33 +176837,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184346,248 +177485,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]uint8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187301,7 +180198,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187403,7 +180300,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187476,12 +180373,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187506,18 +180403,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -188035,10 +180932,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188557,7 +181454,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -188678,7 +181575,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -188723,9 +181620,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188797,7 +181696,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -189000,7 +181899,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -189051,14 +181950,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint64FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -190983,315 +183821,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192697,13 +185226,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193195,14 +185717,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193710,15 +186224,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194340,7 +186856,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194354,7 +186870,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194430,8 +186946,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194456,13 +186972,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194491,28 +187007,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194651,7 +187171,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194666,9 +187186,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194697,20 +187217,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194885,7 +187409,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194909,7 +187433,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194924,7 +187448,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -194980,7 +187504,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195085,7 +187609,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195191,7 +187715,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195201,7 +187725,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195280,7 +187804,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195541,7 +188065,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195690,11 +188214,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195706,8 +188230,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -195735,12 +188259,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -195748,9 +188276,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195763,14 +188291,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195794,29 +188314,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196220,7 +188717,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196238,11 +188735,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196419,7 +188916,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -196443,7 +188940,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196458,7 +188955,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196509,7 +189006,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -196549,10 +189046,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196590,11 +189087,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196617,7 +189114,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196636,7 +189133,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196645,7 +189142,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196655,7 +189152,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34779, uintptr(0), uintptr(0), uintptr(0)) @@ -196668,7 +189165,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34800, uintptr(0), uintptr(0), uintptr(0)) @@ -196684,7 +189181,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196711,7 +189208,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196739,7 +189236,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196779,7 +189276,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196803,7 +189300,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -196879,7 +189376,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196888,7 +189385,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -196896,7 +189393,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -196935,13 +189432,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -196950,11 +189451,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196962,10 +189467,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196973,37 +189484,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197579,7 +190082,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -197614,8 +190117,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -197634,9 +190137,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -197747,18 +190250,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197766,13 +190271,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197814,12 +190321,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197827,27 +190340,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -198002,7 +190506,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -198110,8 +190614,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -198123,9 +190627,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -198199,21 +190703,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198370,18 +190878,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198441,99 +190937,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198555,14 +190958,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198574,29 +190969,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198652,15 +191030,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198682,14 +191051,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198799,13 +191160,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199372,14 +191726,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199390,16 +191736,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199451,10 +191787,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199560,12 +191896,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -200152,18 +192488,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200246,22 +192570,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200439,16 +192747,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200816,15 +193114,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201555,21 +193844,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201878,13 +194152,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202540,7 +194807,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202550,9 +194817,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -202914,115 +195181,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203707,16 +195865,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -203741,14 +195889,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204869,14 +197009,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205817,14 +197949,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205864,14 +197988,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206235,66 +198351,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207344,143 +199400,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207488,191 +199407,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -210604,14 +202338,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210621,15 +202347,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210743,7 +202460,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210764,7 +202481,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212357,13 +204074,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213484,16 +205194,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213711,7 +205411,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213748,7 +205448,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213759,70 +205459,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -213991,14 +205627,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -214045,19 +205673,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216373,87 +207988,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216461,97 +207995,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -218519,7 +209962,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -218527,7 +209970,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -218538,8 +209981,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -218947,7 +210390,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -218977,8 +210420,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -218986,7 +210429,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219278,7 +210721,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219302,7 +210745,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -219589,14 +211032,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -219691,7 +211134,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -219708,8 +211151,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -219736,7 +211179,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -219753,7 +211196,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -219780,15 +211223,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -219848,11 +211282,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -219861,13 +211295,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -219876,7 +211310,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -219889,7 +211323,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -219906,7 +211340,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -219914,7 +211348,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220386,60 +211820,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -220796,14 +212176,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221534,17 +212906,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -222049,12 +213410,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222159,7 +213514,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222201,7 +213556,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222235,18 +213590,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222472,7 +213815,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -222659,7 +214002,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -222687,14 +214030,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]uint8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -222772,14 +214107,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222790,16 +214117,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -type PorterRule1 = TPorterRule1 - func _fts5PorterIsVowel(tls *libc.TLS, c uint8, bYIsVowel int32) (r int32) { return libc.BoolInt32(libc.Int32FromUint8(c) == int32('a') || libc.Int32FromUint8(c) == int32('e') || libc.Int32FromUint8(c) == int32('i') || libc.Int32FromUint8(c) == int32('o') || libc.Int32FromUint8(c) == int32('u') || bYIsVowel != 0 && libc.Int32FromUint8(c) == int32('y')) } @@ -223425,14 +214742,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223450,13 +214767,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223538,7 +214848,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223666,7 +214976,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223742,11 +215052,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229301,39 +220611,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230418,11 +221695,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '4'} var __ccgo_ts = (*reflect.StringHeader)(unsafe.Pointer(&__ccgo_ts1)).Data -var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-14.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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\x00" +var __ccgo_ts1 = "ATOMIC_INTRINSICS=1\x00COMPILER=gcc-14.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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 1220f3e80..9b766c852 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_linux_s390x.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_linux_s390x.go @@ -2186,7 +2186,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -2297,8 +2297,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 3 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -3881,12 +3881,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -4015,30 +4009,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - /* ** CAPI3REF: Standard File Control Opcodes ** KEYWORDS: {file control opcodes} {file control opcode} @@ -4926,33 +4896,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -5031,19 +4974,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -5219,223 +5149,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -5517,20 +5230,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -5580,13 +5279,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -5766,24 +5458,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -5807,22 +5481,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -5963,50 +5621,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -6403,340 +6017,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -6746,15 +6026,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -6770,14 +6041,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -6803,17 +6066,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -7257,52 +6509,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint64 type size_t = Tsize_t @@ -7632,14 +6838,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -7884,6 +7082,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -8371,10 +7570,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -8803,9 +7998,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -8932,53 +8127,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -9082,16 +8230,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -9115,38 +8253,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -9159,34 +8270,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -9200,90 +8287,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -9302,187 +8305,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -9492,917 +8314,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity uint8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -10427,622 +8338,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr uint8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -11052,318 +8347,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]uint8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -11449,232 +8432,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign uint8 - FisSpecial uint8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]uint8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -12838,72 +9595,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -12949,152 +9640,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -13125,18 +9670,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -13153,101 +9686,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]uint8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -13269,13 +9707,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -13295,14 +9726,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -13381,7 +9805,7 @@ func Xsqlite3_status64(tls *libc.TLS, op int32, pCurrent uintptr, pHighwater uin var pMutex, v1 uintptr _, _ = pMutex, v1 if op < 0 || op >= libc.Int32FromUint64(libc.Uint64FromInt64(80)/libc.Uint64FromInt64(8)) { - return _sqlite3MisuseError(tls, int32(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -13611,7 +10035,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -13746,24 +10170,6 @@ type TDateTime = struct { 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 - FvalidYMD uint8 - FvalidHMS uint8 - FnFloor uint8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -15757,28 +12163,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -15786,19 +12192,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -15815,12 +12221,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -15828,7 +12234,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -15841,34 +12247,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -16181,14 +12587,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -16203,9 +12602,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -16952,27 +13351,6 @@ type t__ptcb = struct { F__next uintptr } -type Tcpu_set_t1 = struct { - F__bits [16]uint64 -} - -type cpu_set_t1 = Tcpu_set_t1 - -/* -** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two conditions: (1) Debug builds and (2) using -** home-grown mutexes. Encapsulate these conditions into a single #define. - */ - -/* -** Each recursive mutex is an instance of the following structure. - */ -type Tsqlite3_mutex1 = struct { - Fmutex Tpthread_mutex_t -} - -type sqlite3_mutex1 = Tsqlite3_mutex1 - /* ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routine are ** intended for use only inside assert() statements. On some platforms, @@ -17256,6 +13634,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -17263,8 +13643,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -20572,56 +16952,10 @@ func _sqlite3PrngRestoreState(tls *libc.TLS) { libc.Xmemcpy(tls, uintptr(unsafe.Pointer(&_sqlite3Prng)), uintptr(unsafe.Pointer(&_sqlite3SavedPrng)), uint64(132)) } -/************** End of random.c **********************************************/ -/************** Begin file threads.c *****************************************/ -/* -** 2012 July 21 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file presents a simple cross-platform threading interface for -** use internally by SQLite. -** -** A "thread" can be created using sqlite3ThreadCreate(). This thread -** runs independently of its creator until it is joined using -** sqlite3ThreadJoin(), at which point it terminates. -** -** Threads do not have to be real. It could be that the work of the -** "thread" is done by the main thread at either the sqlite3ThreadCreate() -** or sqlite3ThreadJoin() call. This is, in fact, what happens in -** single threaded systems. Nothing in SQLite requires multiple threads. -** This interface exists so that applications that want to take advantage -** of multiple cores can do so, while also allowing applications to stay -** single-threaded if desired. - */ -/* #include "sqliteInt.h" */ - -/********************************* Unix Pthreads ****************************/ - -/* #include */ - -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid Tpthread_t - Fdone int32 - FpOut uintptr - FxTask uintptr - FpIn uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -20632,7 +16966,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui return int32(SQLITE_NOMEM) } libc.Xmemset(tls, p, 0, uint64(40)) - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn /* If the SQLITE_TESTCTRL_FAULT_INSTALL callback is registered to a ** function that returns SQLITE_ERROR when passed the argument 200, that @@ -20641,11 +16975,11 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if _sqlite3FaultSim(tls, int32(200)) != 0 { rc = int32(1) } else { - rc = libc.Xpthread_create(tls, p, uintptr(0), xTask, pIn) + rc = libc.Xpthread_create(tls, p, uintptr(0), __ccgo_fp_xTask, pIn) } if rc != 0 { (*TSQLiteThread)(unsafe.Pointer(p)).Fdone = int32(1) - (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpOut = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -24452,22 +20786,6 @@ type TUnixUnusedFd = struct { type UnixUnusedFd = TUnixUnusedFd -/* An unused file descriptor */ - -/* -** Sometimes, after a file handle is closed by SQLite, the file descriptor -** cannot be closed immediately. In these cases, instances of the following -** structure are used to store the file descriptor while waiting for an -** opportunity to either close or reuse it. - */ -type TUnixUnusedFd1 = struct { - Ffd int32 - Fflags int32 - FpNext uintptr -} - -type UnixUnusedFd1 = TUnixUnusedFd1 - // C documentation // // /* @@ -24498,30 +20816,6 @@ type TunixFile = struct { type unixFile = TunixFile -type TunixFile1 = struct { - FpMethod uintptr - FpVfs uintptr - FpInode uintptr - Fh int32 - FeFileLock uint8 - FctrlFlags uint16 - FlastErrno int32 - FlockingContext uintptr - FpPreallocatedUnused uintptr - FzPath uintptr - FpShm uintptr - FszChunk int32 - FnFetchOut int32 - FmmapSize Tsqlite3_int64 - FmmapSizeActual Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 - FpMapRegion uintptr - FsectorSize int32 - FdeviceCharacteristics int32 -} - -type unixFile1 = TunixFile1 - // C documentation // // /* This variable holds the process id (pid) from when the xRandomness() @@ -24748,7 +21042,7 @@ func _robustFchown(tls *libc.TLS, fd int32, uid Tuid_t, gid Tgid_t) (r int32) { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -24786,10 +21080,10 @@ func _unixSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -25164,47 +21458,6 @@ type TunixFileId = struct { type unixFileId = TunixFileId -/* -** An instance of the following structure is allocated for each open -** inode. -** -** A single inode can have multiple file descriptors, so each unixFile -** structure contains a pointer to an instance of this object and this -** object keeps a count of the number of unixFile pointing to it. -** -** Mutex rules: -** -** (1) Only the pLockMutex mutex must be held in order to read or write -** any of the locking fields: -** nShared, nLock, eFileLock, bProcessLock, pUnused -** -** (2) When nRef>0, then the following fields are unchanging and can -** be read (but not written) without holding any mutex: -** fileId, pLockMutex -** -** (3) With the exceptions above, all the fields may only be read -** or written while holding the global unixBigLock mutex. -** -** Deadlock prevention: The global unixBigLock mutex may not -** be acquired while holding the pLockMutex mutex. If both unixBigLock -** and pLockMutex are needed, then unixBigLock must be acquired first. - */ -type TunixInodeInfo1 = struct { - FfileId TunixFileId - FpLockMutex uintptr - FnShared int32 - FnLock int32 - FeFileLock uint8 - FbProcessLock uint8 - FpUnused uintptr - FnRef int32 - FpShmNode uintptr - FpNext uintptr - FpPrev uintptr -} - -type unixInodeInfo1 = TunixInodeInfo1 - // C documentation // // /* @@ -25305,7 +21558,7 @@ func _closePendingFds(tls *libc.TLS, pFile uintptr) { break } pNext = (*TUnixUnusedFd)(unsafe.Pointer(p)).FpNext - _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40205)) + _robust_close(tls, pFile, (*TUnixUnusedFd)(unsafe.Pointer(p)).Ffd, int32(40207)) Xsqlite3_free(tls, p) goto _1 _1: @@ -25935,7 +22188,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(40996)) + _robust_close(tls, pFile, (*TunixFile)(unsafe.Pointer(pFile)).Fh, int32(40998)) (*TunixFile)(unsafe.Pointer(pFile)).Fh = -int32(1) } Xsqlite3_free(tls, (*TunixFile)(unsafe.Pointer(pFile)).FpPreallocatedUnused) @@ -26566,7 +22819,7 @@ func _openDirectory(tls *libc.TLS, zFilename uintptr, pFd uintptr) (r int32) { if fd >= 0 { return SQLITE_OK } - return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42577)), __ccgo_ts+3605, bp, int32(42577)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(42579)), __ccgo_ts+3605, bp, int32(42579)) } // C documentation @@ -26603,7 +22856,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)<pShmMutex must -** be held while accessing any read/write fields. - */ -type TunixShm1 = struct { - FpShmNode uintptr - FpNext uintptr - FhasMutex Tu8 - Fid Tu8 - FsharedMask Tu16 - FexclMask Tu16 -} - -type unixShm1 = TunixShm1 - /* ** Constants used for locking */ @@ -27151,7 +23315,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(43394)) + _robust_close(tls, pFd, (*TunixShmNode)(unsafe.Pointer(p)).FhShm, int32(43396)) (*TunixShmNode)(unsafe.Pointer(p)).FhShm = -int32(1) } (*TunixInodeInfo)(unsafe.Pointer((*TunixShmNode)(unsafe.Pointer(p)).FpInode)).FpShmNode = uintptr(0) @@ -27214,7 +23378,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)<pFirst. This must be done while holding the ** pShmNode->pShmMutex. */ - Xsqlite3_mutex_enter(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) - (*TunixShm1)(unsafe.Pointer(p)).FpNext = (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst - (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpFirst = p - Xsqlite3_mutex_leave(tls, (*TunixShmNode1)(unsafe.Pointer(pShmNode)).FpShmMutex) + Xsqlite3_mutex_enter(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) + (*TunixShm)(unsafe.Pointer(p)).FpNext = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst + (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpFirst = p + Xsqlite3_mutex_leave(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FpShmMutex) return rc /* Jump here on any error */ goto shm_open_err @@ -27447,7 +23611,7 @@ func _unixShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, bExte *(*int32)(unsafe.Pointer(bp + 144)) = 0 if _seekAndWriteFd(tls, (*TunixShmNode)(unsafe.Pointer(pShmNode)).FhShm, int64(iPg*_pgsz+_pgsz-int32(1)), __ccgo_ts+1667, int32(1), bp+144) != int32(1) { zFile = (*TunixShmNode)(unsafe.Pointer(pShmNode)).FzFilename - rc = _unixLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(19)<= 0 { - _robust_close(tls, pNew, h, int32(44804)) + _robust_close(tls, pNew, h, int32(44806)) } } else { (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = pLockingStyle @@ -28616,7 +24780,7 @@ func _unixOpen(tls *libc.TLS, pVfs uintptr, zPath uintptr, pFile uintptr, flags } } if fd < 0 { - rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45252)), __ccgo_ts+3488, zName, int32(45252)) + rc2 = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45254)), __ccgo_ts+3488, zName, int32(45254)) if rc == SQLITE_OK { rc = rc2 } @@ -28693,7 +24857,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(45503)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _sqlite3CantopenError(tls, int32(45505)) 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(45508)), __ccgo_ts+3677, zIn, int32(45508)) + (*TDbPath)(unsafe.Pointer(pPath)).Frc = _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45510)), __ccgo_ts+3677, zIn, int32(45510)) return } (*(*[4098]uint8)(unsafe.Pointer(bp + 144)))[got] = uint8(0) @@ -28891,14 +25045,14 @@ func _unixFullPathname(tls *libc.TLS, pVfs uintptr, zPath uintptr, nOut int32, z (*(*TDbPath)(unsafe.Pointer(bp))).FzOut = zOut if libc.Int32FromUint8(*(*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(45566)), __ccgo_ts+3506, zPath, int32(45566)) + return _unixLogErrorAtLine(tls, _sqlite3CantopenError(tls, int32(45568)), __ccgo_ts+3506, zPath, int32(45568)) } _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(45572)) + return _sqlite3CantopenError(tls, int32(45574)) } if (*(*TDbPath)(unsafe.Pointer(bp))).FnSymlink != 0 { return libc.Int32FromInt32(SQLITE_OK) | libc.Int32FromInt32(2)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -30970,66 +26964,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -31203,14 +27137,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*TPCache)(unsafe.Pointer(p)).FszPage = int32(1) (*TPCache)(unsafe.Pointer(p)).FszExtra = szExtra /* First 8 bytes will be zeroed */ (*TPCache)(unsafe.Pointer(p)).FbPurgeable = libc.Uint8FromInt32(bPurgeable) (*TPCache)(unsafe.Pointer(p)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -32026,123 +27960,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -33339,25 +29156,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -34319,258 +30117,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]uint8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -34669,7 +30215,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -37154,7 +32700,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -37345,10 +32891,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -38249,7 +33795,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -38324,7 +33870,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -38546,7 +34092,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -38802,7 +34348,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -38977,7 +34523,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -39008,7 +34554,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -39080,7 +34626,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -40437,7 +35983,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | libc.Int32FromUint16((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -41286,232 +36832,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -41530,29 +36850,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -41981,14 +37278,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -42155,7 +37444,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -42243,7 +37532,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -42823,10 +38112,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -42924,7 +38213,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -42963,7 +38252,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -42976,7 +38265,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -42992,7 +38281,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -43013,7 +38302,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -43079,7 +38368,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -43377,7 +38666,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -44188,7 +39477,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -44334,7 +39623,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -44361,7 +39650,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -44689,7 +39978,7 @@ func _walFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, nTrunc } } if libc.Int32FromUint32((*TWal)(unsafe.Pointer(pWal)).FszPage) != szPage { - return _sqlite3CorruptError(tls, int32(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -44870,7 +40159,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -44879,7 +40168,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -44931,14 +40220,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -45484,288 +40773,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -45898,27 +40905,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -46801,11 +41787,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, int32(nKey), pKey, pIdxKey) if libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) == 0 || libc.Int32FromUint16((*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FnField) > libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(pKeyInfo)).FnAllField) { - rc = _sqlite3CorruptError(tls, int32(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -46979,7 +41965,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -46992,12 +41978,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -47041,7 +42027,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin offset = libc.Int32FromUint32(libc.Uint32FromInt32(5) * (key - libc.Uint32FromInt32(iPtrmap) - libc.Uint32FromInt32(1))) if offset < 0 { _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) - return _sqlite3CorruptError(tls, int32(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -47049,7 +42035,7 @@ func _ptrmapGet(tls *libc.TLS, pBt uintptr, key TPgno, pEType uintptr, pPgno uin } _sqlite3PagerUnref(tls, *(*uintptr)(unsafe.Pointer(bp))) if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) < int32(1) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pEType))) > int32(5) { - return _sqlite3CorruptError(tls, int32(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -47469,7 +42455,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(libc.Int32FromUint16((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -47509,12 +42495,12 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7))))) <= nMaxFrag { iFree = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(1)))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } if 0 == iFree2 || libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2)))) == 0 && libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(1))))) == 0 { pEnd = data + uintptr(cellOffset+nCell*int32(2)) @@ -47522,21 +42508,21 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { sz = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree+int32(2)))))<= iFree { - return _sqlite3CorruptError(tls, int32(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } libc.Xmemmove(tls, data+uintptr(iFree+sz+sz2), data+uintptr(iFree+sz), libc.Uint64FromInt32(iFree2-(iFree+sz))) sz += sz2 } else { if iFree+sz > usableSize { - return _sqlite3CorruptError(tls, int32(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -47583,12 +42569,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } size = libc.Int32FromUint16((*(*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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = libc.Uint8FromInt32(cbrk) @@ -47604,7 +42590,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = libc.Uint8FromInt32(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = libc.Uint8FromInt32(cbrk) @@ -47664,7 +42650,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -47681,14 +42667,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -47731,11 +42717,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -47749,7 +42735,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -47830,12 +42816,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -47846,11 +42832,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< libc.Int32FromUint32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -47871,7 +42857,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(libc.Int32FromUint8(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - libc.Int32FromUint8(libc.Uint8FromInt32(nFrag))) @@ -47888,10 +42874,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != libc.Int32FromUint8(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)))) = libc.Uint8FromInt32(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(libc.Int32FromUint8(hdr)+int32(1)) + 1)) = libc.Uint8FromInt32(iFreeBlk) @@ -47952,7 +42938,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -47978,7 +42964,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -48017,12 +43003,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if libc.Uint32FromInt32(pc)+size > libc.Uint32FromInt32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -48049,7 +43035,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = libc.Int32FromUint16(libc.Uint16FromInt32(nFree - iCellFirst)) return SQLITE_OK @@ -48080,11 +43066,11 @@ func _btreeCellSizeCheck(tls *libc.TLS, pPage uintptr) (r int32) { } pc = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(data + uintptr(cellOffset+i*int32(2))))) if pc < iCellFirst || pc > iCellLast { - return _sqlite3CorruptError(tls, int32(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } sz = libc.Int32FromUint16((*(*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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -48113,7 +43099,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, libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(data)))) != 0 { - return _sqlite3CorruptError(tls, int32(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -48126,7 +43112,7 @@ func _btreeInitPage(tls *libc.TLS, pPage uintptr) (r int32) { (*TMemPage)(unsafe.Pointer(pPage)).FnCell = libc.Uint16FromInt32(libc.Int32FromUint8(*(*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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -48277,7 +43263,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -48339,7 +43325,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -49251,7 +44237,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -49692,7 +44678,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT if libc.Int32FromUint8(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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -49716,7 +44702,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -49725,7 +44711,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -49739,7 +44725,7 @@ func _modifyPagePointer(tls *libc.TLS, pPage uintptr, iFrom TPgno, iTo TPgno, eT } if i == nCell { if libc.Int32FromUint8(eType) != int32(PTRMAP_BTREE) || _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8))) != iFrom { - return _sqlite3CorruptError(tls, int32(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -49769,7 +44755,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -49865,7 +44851,7 @@ func _incrVacuumStep(tls *libc.TLS, pBt uintptr, nFin TPgno, iLastPg TPgno, bCom return rc } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_ROOTPAGE) { - return _sqlite3CorruptError(tls, int32(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -49903,7 +44889,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -49970,7 +44956,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50013,7 +44999,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -50043,7 +45029,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -50509,7 +45495,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -50901,7 +45887,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 libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -50911,7 +45897,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -50968,7 +45954,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -51042,7 +46028,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -51177,7 +46163,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -51189,7 +46175,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -51305,7 +46291,7 @@ 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 libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FisInit) == 0 || libc.BoolInt32((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo == uintptr(0)) != libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FintKey) { - return _sqlite3CorruptError(tls, int32(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -51319,7 +46305,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } subpage = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(pRoot)).FaData+uintptr(libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pRoot)).FhdrOffset)+int32(8))) (*TBtCursor)(unsafe.Pointer(pCur)).FeState = uint8(CURSOR_VALID) @@ -51553,7 +46539,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -51637,7 +46623,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -51649,7 +46635,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, libc.Uint64FromInt32(nCell)+libc.Uint64FromInt32(nOverrun)) @@ -51851,7 +46837,7 @@ bypass_moveto_root: rc = SQLITE_OK (*TBtCursor)(unsafe.Pointer(pCur)).Fix = libc.Uint16FromInt32(idx) if (*TUnpackedRecord)(unsafe.Pointer(pIdxKey)).FerrCode != 0 { - rc = _sqlite3CorruptError(tls, int32(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -51884,7 +46870,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*2)) = libc.Uint16FromInt32(lwr) *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr((*TBtCursor)(unsafe.Pointer(pCur)).FiPage)*8)) = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage @@ -51893,7 +46879,7 @@ bypass_moveto_root: rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, chldPg, pCur+136, libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurPagerFlags)) if rc == SQLITE_OK && (libc.Int32FromUint16((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FnCell) < int32(1) || libc.Int32FromUint8((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpPage)).FintKey) != libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FcurIntKey)) { _releasePage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpPage) - rc = _sqlite3CorruptError(tls, int32(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -52022,7 +47008,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -52132,7 +47118,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -52220,7 +47206,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -52275,7 +47261,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -52301,7 +47287,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52328,7 +47314,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -52399,7 +47385,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && libc.Int32FromUint8(eMode) == int32(BTALLOC_LE)) { @@ -52537,7 +47523,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -52588,7 +47574,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -52597,7 +47583,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -52687,7 +47673,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -52705,7 +47691,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -52728,7 +47714,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -52949,7 +47935,7 @@ func _dropCell(tls *libc.TLS, pPage uintptr, idx int32, sz int32, pRC uintptr) { pc = libc.Uint32FromInt32(libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(ptr)))< (*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, libc.Int32FromUint32(pc), sz) @@ -53243,17 +48229,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -53343,12 +48318,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -53356,7 +48331,7 @@ func _rebuildPage(tls *libc.TLS, pCArray uintptr, iFirst int32, nCell int32, pPg *(*Tu8)(unsafe.Pointer(pCellptr + 1)) = libc.Uint8FromInt64(int64(pData) - int64(aData)) pCellptr += uintptr(2) if pData < pCellptr { - return _sqlite3CorruptError(tls, int32(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -53451,7 +48426,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), libc.Uint64FromInt32(sz)) @@ -53599,7 +48574,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), libc.Uint64FromInt32(nCell*int32(2))) nCell -= nShift @@ -53670,7 +48645,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -53715,7 +48690,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 libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) == 0 { - return _sqlite3CorruptError(tls, int32(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -54079,7 +49054,7 @@ func _balance_nonroot(tls *libc.TLS, pParent uintptr, iParentIdx int32, aOvflSpa ** table-interior, index-leaf, or index-interior). */ if libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pOld)).FaData))) != libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer((*TMemPage)(unsafe.Pointer((*(*[3]uintptr)(unsafe.Pointer(bp + 8)))[0])).FaData))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -54102,7 +49077,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)*libc.Uint64FromInt32(limit+libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow))) if libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(pOld)).FnOverflow) > 0 { if limit < libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) { - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -54233,7 +49208,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -54276,7 +49251,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -54335,7 +49310,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -54367,7 +49342,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -54597,7 +49572,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -54843,7 +49818,7 @@ func _anotherValidCursor(tls *libc.TLS, pCur uintptr) (r int32) { break } if pOther != pCur && libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pOther)).FeState) == CURSOR_VALID && (*TBtCursor)(unsafe.Pointer(pOther)).FpPage == (*TBtCursor)(unsafe.Pointer(pCur)).FpPage { - return _sqlite3CorruptError(tls, int32(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -54916,7 +49891,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -55075,7 +50050,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if libc.Uint32FromInt32(iOffset)+ovflPageSize < libc.Uint32FromInt32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -55106,7 +50081,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -55191,7 +50166,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -55283,7 +50258,7 @@ func _sqlite3BtreeInsert(tls *libc.TLS, pCur uintptr, pX uintptr, flags int32, s if (*TMemPage)(unsafe.Pointer(pPage)).FnFree < 0 { if libc.Int32FromUint8((*TBtCursor)(unsafe.Pointer(pCur)).FeState) > int32(CURSOR_INVALID) { /* ^^^^^--- due to the moveToRoot() call above */ - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -55319,7 +50294,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 >= libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -55349,10 +50324,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, libc.Uint64FromInt32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -55470,7 +50445,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -55492,7 +50467,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -55592,21 +50567,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } iCellDepth = int32((*TBtCursor)(unsafe.Pointer(pCur)).FiPage) iCellIdx = libc.Int32FromUint16((*TBtCursor)(unsafe.Pointer(pCur)).Fix) pPage = (*TBtCursor)(unsafe.Pointer(pCur)).FpPage if libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FnCell) <= iCellIdx { - return _sqlite3CorruptError(tls, int32(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } pCell = (*TMemPage)(unsafe.Pointer(pPage)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pPage)).FmaskPage)&libc.Int32FromUint16(*(*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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -55700,7 +50675,7 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { } pCell = (*TMemPage)(unsafe.Pointer(pLeaf)).FaData + uintptr(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FmaskPage)&libc.Int32FromUint16(*(*Tu16)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pLeaf)).FaCellIdx + uintptr(int32(2)*(libc.Int32FromUint16((*TMemPage)(unsafe.Pointer(pLeaf)).FnCell)-int32(1))))))) if pCell < (*TMemPage)(unsafe.Pointer(pLeaf)).FaData+4 { - return _sqlite3CorruptError(tls, int32(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } nCell = libc.Int32FromUint16((*(*func(*libc.TLS, uintptr, uintptr) Tu16)(unsafe.Pointer(&struct{ uintptr }{(*TMemPage)(unsafe.Pointer(pLeaf)).FxCellSize})))(tls, pLeaf, pCell)) pTmp = (*TBtShared)(unsafe.Pointer(pBt)).FpTmpSpace @@ -55810,7 +50785,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -55851,7 +50826,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 libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_ROOTPAGE) || libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(bp + 32))) == int32(PTRMAP_FREEPAGE) { - *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -55932,14 +50907,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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 libc.Int32FromUint8((*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = libc.Int32FromUint8((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -56076,7 +51051,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, libc.Int32FromUint32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -57128,14 +52103,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), libc.Uint64FromInt32(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -57346,45 +52321,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -58986,7 +53922,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -58999,8 +53935,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = libc.Uint16FromInt32(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -59159,7 +54095,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -59201,11 +54137,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -59215,7 +54151,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if libc.Int32FromUint16(flags)&int32(MEM_Term) != 0 { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF8) { @@ -59237,12 +54173,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -59281,7 +54217,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) < libc.Int64FromUint32(offset+amt) { - return _sqlite3CorruptError(tls, int32(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, libc.Int32FromUint32(amt+uint32(1))) rc = v1 @@ -59393,8 +54329,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -59984,7 +54920,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(libc.Uint8FromInt32(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > libc.Uint32FromInt32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = libc.Int64FromUint32(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -60000,7 +54936,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(libc.Uint8FromInt32(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += libc.Int64FromUint32(szField) @@ -60010,7 +54946,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -60061,9 +54997,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -60137,7 +55073,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -62261,7 +57197,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -62269,7 +57205,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*libc.Int32FromUint16((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -63096,7 +58032,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -63944,7 +58880,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr i = 0 } if d1 > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -64034,7 +58970,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr pKeyInfo = v4 } if v5 || libc.Int32FromUint16((*TKeyInfo)(unsafe.Pointer(v4)).FnAllField) <= i { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -64069,7 +59005,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } else { nStr = libc.Int32FromUint32((*(*Tu32)(unsafe.Pointer(bp + 68)) - uint32(12)) / uint32(2)) if d1+libc.Uint32FromInt32(nStr) > libc.Uint32FromInt32(nKey1) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if libc.Int32FromUint16((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -64123,7 +59059,7 @@ func _sqlite3VdbeRecordCompareWithSkip(tls *libc.TLS, nKey1 int32, pKey1 uintptr } idx1 += libc.Uint32FromInt32(_sqlite3VarintLen(tls, uint64(*(*Tu32)(unsafe.Pointer(bp + 68))))) if idx1 >= *(*Tu32)(unsafe.Pointer(bp)) { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -64255,7 +59191,7 @@ vrcs_restart: szHdr = libc.Int32FromUint8(*(*Tu8)(unsafe.Pointer(aKey1))) nStr = (*(*int32)(unsafe.Pointer(bp)) - int32(12)) / int32(2) if szHdr+nStr > nKey1 { - (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = libc.Uint8FromInt32(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -64407,7 +59343,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -64438,7 +59374,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, libc.Uint32FromInt64(nCellKey), bp) @@ -64855,7 +59791,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -65182,12 +60118,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -65204,29 +60140,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), uint8(0), __ccgo_fp_xDel) } } @@ -65256,13 +60196,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -65274,11 +60216,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16BE) @@ -65286,23 +60232,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(n), enc, __ccgo_fp_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, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_xDel) } -func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), xDel) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, libc.Int32FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -65559,7 +60511,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -65689,7 +60641,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } if libc.Int32FromUint16((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) == 0 || (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel != __ccgo_fp(_sqlite3VdbeValueListFree) { return int32(SQLITE_ERROR) @@ -65858,6 +60810,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -65871,7 +60825,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -65909,13 +60863,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -66415,14 +61369,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) if libc.Int32FromUint8((*TVdbe)(unsafe.Pointer(p)).FeVdbeState) != int32(VDBE_READY_STATE) { - _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+5617, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= libc.Uint32FromInt16((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -66460,7 +61414,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -66470,7 +61424,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && libc.Int32FromUint8(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, libc.Int32FromUint8((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -66481,24 +61435,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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, libc.Int64FromUint64(nData), xDel, uint8(0)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -66546,7 +61504,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -66554,32 +61514,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, libc.Uint32FromInt32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if libc.Int32FromUint8(enc) != int32(SQLITE_UTF8) { if libc.Int32FromUint8(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16BE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(nData), __ccgo_fp_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, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), xDel, uint8(SQLITE_UTF16BE)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, libc.Int64FromUint64(libc.Uint64FromInt32(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16BE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -66996,7 +61962,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -67058,7 +62024,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(libc.Int32FromUint16((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, (*TColumn)(unsafe.Pointer(pCol)).Faffinity, bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -67159,7 +62125,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -70520,7 +65486,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -72430,7 +67396,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, uint8(SQLITE_AFF_NUMERIC), encoding) if libc.Int32FromUint16((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -72457,7 +67423,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -73349,7 +68315,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -73731,7 +68697,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -75382,7 +70348,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -76784,7 +71471,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -77275,8 +71962,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -77471,7 +72158,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -79123,57 +73810,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -79470,7 +74106,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -83934,12 +78570,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -87516,6 +82146,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -88053,6 +82688,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = libc.Uint8FromInt32(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -88259,7 +82915,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -88286,8 +82942,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -90702,31 +85358,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -90743,16 +85374,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -91055,9 +85676,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -91251,7 +85872,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+11472, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -91270,7 +85891,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -92334,7 +86955,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -92888,44 +87509,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -94216,13 +88799,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -95421,6 +89997,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -95493,9 +90071,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -95675,47 +90253,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -96343,9 +90880,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -100591,7 +95128,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+14729, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -106030,17 +100567,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -106254,12 +100780,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -109541,7 +104061,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromUint16((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -111035,33 +105555,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -112615,6 +107108,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -112648,7 +107143,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -112660,7 +107155,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1667 @@ -112684,7 +107179,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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.Uint64FromInt32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint64(8))) @@ -112725,7 +107220,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -112772,330 +107267,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -113700,14 +107871,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -113722,7 +107888,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -113740,7 +107906,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -113755,7 +107921,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -113765,6 +107931,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -113776,7 +107944,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -113788,7 +107956,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -117515,25 +111683,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -117935,7 +112084,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -117948,7 +112097,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+18990, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -118542,7 +112691,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -118555,9 +112704,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -118744,7 +112893,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -118878,7 +113027,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -119000,15 +113149,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -119044,21 +113184,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -119745,13 +113870,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -123726,18 +117844,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -127330,6 +121436,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -131634,39 +125741,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -131677,7 +125751,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -131696,7 +125770,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -131721,15 +125795,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -131744,13 +125818,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -132272,7 +126348,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -132333,7 +126409,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -132617,9 +126693,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -133201,7 +127277,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -133214,7 +127290,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -133474,435 +127550,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff uint8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -134247,10 +127894,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if libc.Int32FromUint8((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && libc.Int32FromUint16(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -134873,7 +128520,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || libc.Int32FromUint16((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -135223,7 +128870,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -136769,7 +130416,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -138908,16 +132555,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -139030,7 +132667,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -140548,10 +134185,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -142832,15 +136469,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -142872,7 +136500,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -142891,7 +136519,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -142928,7 +136556,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -142957,19 +136585,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -143271,6 +136899,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -143813,7 +137449,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -144478,17 +138114,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -146463,7 +140088,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) bOnerow = libc.BoolInt32(wsFlags&int32(WHERE_ONEROW) != 0) if bOnerow != 0 || 0 != libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) && !(libc.Int32FromUint8((*TTable)(unsafe.Pointer((*(*TSrcItem)(unsafe.Pointer(pTabList + 8))).FpSTab)).FeTabType) == libc.Int32FromInt32(TABTYP_VTAB)) && (0 == wsFlags&int32(WHERE_MULTI_OR) || libc.Int32FromUint16(wctrlFlags)&int32(WHERE_DUPLICATES_OK) != 0) && (*Tsqlite3)(unsafe.Pointer(db)).FdbOptFlags&libc.Uint32FromInt32(libc.Int32FromInt32(SQLITE_OnePass)) == uint32(0) { if bOnerow != 0 { @@ -146476,7 +140101,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if libc.Int32FromUint16(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = libc.Uint32FromInt32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -146655,7 +140280,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = libc.Int32FromUint32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = libc.Int32FromUint32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -147990,16 +141615,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -148018,17 +141633,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -148046,7 +141661,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&libc.Uint32FromInt32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -148070,13 +141685,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -148091,9 +141706,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && libc.Int32FromUint8((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = libc.Int32FromUint32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= libc.Uint32FromInt32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -148101,13 +141716,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = libc.Uint32FromInt32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -148123,13 +141738,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -148906,87 +142521,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -157235,14 +150769,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -157253,16 +150779,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -164238,7 +157754,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = libc.Uint32FromInt32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -165608,12 +159128,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -165631,9 +159151,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16BE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -165662,7 +159182,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -165680,15 +159200,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | libc.Uint32FromInt32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = libc.Int16FromUint16(libc.Uint16FromInt32(nArg)) return SQLITE_OK @@ -165703,27 +159223,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -165734,30 +159254,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16BE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -165820,6 +159370,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -165830,43 +159382,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = libc.Uint8FromInt32(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -165877,12 +159433,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -165894,6 +159450,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -165901,82 +159459,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -166020,18 +159588,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -166057,7 +159627,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*uint8)(unsafe.Pointer(zDb)) != 0 { @@ -166189,7 +159759,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -166321,7 +159891,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166331,7 +159901,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -166367,7 +159937,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -166380,7 +159950,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -166424,9 +159994,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = libc.Uint8FromInt32(enc2 | libc.Int32FromUint8(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -166928,7 +160498,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 4285 @@ -167082,36 +160652,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var rc int32 _ = rc Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, xCompare, xDel) + rc = _createCollation(tls, db, zName, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -167119,7 +160697,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_UTF16BE)) if zName8 != 0 { - rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, xCompare, uintptr(0)) + rc = _createCollation(tls, db, zName8, libc.Uint8FromInt32(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -167127,31 +160705,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -167185,12 +160767,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -167225,8 +160809,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -167237,7 +160821,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -168589,6 +162173,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -168612,7 +162198,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -168622,7 +162208,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -168634,7 +162220,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -168650,7 +162236,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -169866,106 +163452,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]uint8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -172576,16 +166062,6 @@ type TJsonPretty = struct { 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 */ @@ -175412,16 +168888,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -175440,24 +168906,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -175465,13 +168913,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -176443,223 +169884,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -176677,33 +169904,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -176714,78 +169935,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue +} + +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -179740,9 +172945,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -179757,9 +172962,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -180659,23 +173864,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -181260,14 +174448,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -181292,16 +174472,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -182084,13 +175254,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -182325,36 +175488,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -183325,16 +176458,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28672) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+28688) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -183643,12 +176776,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -183656,33 +176791,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -184300,248 +177439,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]uint8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -187255,7 +180152,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 = libc.Int64FromUint64(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -187357,7 +180254,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -187430,12 +180327,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = libc.Int64FromUint32((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -187460,18 +180357,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+6740, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -187989,10 +180886,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -188511,7 +181408,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -188632,7 +181529,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -188677,9 +181574,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -188751,7 +181650,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -188954,7 +181853,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -189005,14 +181904,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, libc.Uint64FromInt32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= libc.Int32FromUint64(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -190937,315 +183775,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -192651,13 +185180,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -193149,14 +185671,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -193664,15 +186178,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -194294,7 +186810,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -194308,7 +186824,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -194384,8 +186900,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -194410,13 +186926,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -194445,28 +186961,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -194605,7 +187125,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -194620,9 +187140,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -194651,20 +187171,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -194839,7 +187363,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -194863,7 +187387,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -194878,7 +187402,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -194934,7 +187458,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -195039,7 +187563,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -195145,7 +187669,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -195155,7 +187679,7 @@ func _sessionChangesetNextOne(tls *libc.TLS, p uintptr, paRec uintptr, pnRec uin *(*int32)(unsafe.Pointer(v9))++ (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).FbIndirect = libc.Int32FromUint8(*(*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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -195234,7 +187758,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -195495,7 +188019,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -195644,11 +188168,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -195660,8 +188184,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -195689,12 +188213,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -195702,9 +188230,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -195717,14 +188245,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -195748,29 +188268,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -196174,7 +188671,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -196192,11 +188689,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -196373,7 +188870,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -196397,7 +188894,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -196412,7 +188909,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -196463,7 +188960,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -196503,10 +189000,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && libc.Int32FromUint8((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196544,11 +189041,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -196571,7 +189068,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -196590,7 +189087,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -196599,7 +189096,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -196609,7 +189106,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34779, uintptr(0), uintptr(0), uintptr(0)) @@ -196622,7 +189119,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+34800, uintptr(0), uintptr(0), uintptr(0)) @@ -196638,7 +189135,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -196665,7 +189162,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -196693,7 +189190,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -196733,7 +189230,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -196757,7 +189254,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+3890, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -196833,7 +189330,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -196842,7 +189339,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -196850,7 +189347,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -196889,13 +189386,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -196904,11 +189405,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196916,10 +189421,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -196927,37 +189438,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -197533,7 +190036,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -197568,8 +190071,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -197588,9 +190091,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -197701,18 +190204,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -197720,13 +190225,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -197768,12 +190275,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -197781,27 +190294,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -197956,7 +190460,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -198064,8 +190568,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, libc.Uint8FromInt32((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -198077,9 +190581,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -198153,21 +190657,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -198324,18 +190832,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -198395,99 +190891,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -198509,14 +190912,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -198528,29 +190923,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -198606,15 +190984,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -198636,14 +191005,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -198753,13 +191114,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -199326,14 +191680,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -199344,16 +191690,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -199405,10 +191741,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -199514,12 +191850,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -200106,18 +192442,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -200200,22 +192524,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -200393,16 +192701,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -200770,15 +193068,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -201509,21 +193798,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -201832,13 +194106,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -202494,7 +194761,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -202504,9 +194771,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -202868,115 +195135,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -203661,16 +195819,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -203695,14 +195843,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -204823,14 +196963,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -205771,14 +197903,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -205818,14 +197942,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -206189,66 +198305,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -207298,143 +199354,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -207442,191 +199361,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -210558,14 +202292,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -210575,15 +202301,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -210697,7 +202414,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -210718,7 +202435,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -212311,13 +204028,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -213438,16 +205148,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -213665,7 +205365,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -213702,7 +205402,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -213713,70 +205413,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -213945,14 +205581,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -213999,19 +205627,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -216327,87 +207942,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -216415,97 +207949,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -218473,7 +209916,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -218481,7 +209924,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -218492,8 +209935,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -218901,7 +210344,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -218931,8 +210374,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -218940,7 +210383,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -219232,7 +210675,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -219256,7 +210699,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -219543,14 +210986,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -219645,7 +211088,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -219662,8 +211105,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, libc.Uint64FromInt64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -219690,7 +211133,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -219707,7 +211150,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, libc.Uint64FromInt64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -219734,15 +211177,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -219802,11 +211236,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -219815,13 +211249,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -219830,7 +211264,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -219843,7 +211277,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -219860,7 +211294,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -219868,7 +211302,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -220340,60 +211774,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -220750,14 +212130,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -221488,17 +212860,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -222003,12 +213364,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -222113,7 +213468,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -222155,7 +213510,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -222189,18 +213544,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -222426,7 +213769,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return libc.Int32FromUint8(*(*uint8)(unsafe.Pointer(p + 160 + uintptr(_sqlite3Fts5UnicodeCategory(tls, libc.Uint32FromInt32(iCode)))))) ^ _fts5UnicodeIsException(tls, p, iCode) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -222613,7 +213956,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -222641,14 +213984,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]uint8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -222726,14 +214061,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -222744,16 +214071,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -type PorterRule1 = TPorterRule1 - func _fts5PorterIsVowel(tls *libc.TLS, c uint8, bYIsVowel int32) (r int32) { return libc.BoolInt32(libc.Int32FromUint8(c) == int32('a') || libc.Int32FromUint8(c) == int32('e') || libc.Int32FromUint8(c) == int32('i') || libc.Int32FromUint8(c) == int32('o') || libc.Int32FromUint8(c) == int32('u') || bYIsVowel != 0 && libc.Int32FromUint8(c) == int32('y')) } @@ -223379,14 +214696,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -223404,13 +214721,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -223492,7 +214802,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -223620,7 +214930,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -223696,11 +215006,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -229255,39 +220565,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -230372,11 +221649,11 @@ var Xsqlite3_temp_directory uintptr // ** // ** See also: [sqlite_version()] and [sqlite_source_id()]. // */ -var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]uint8{'3', '.', '5', '0', '.', '4'} 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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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=1000\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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 3e7cb1c8d..5b3a68f1c 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_windows.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_windows.go @@ -17501,7 +17501,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -17612,8 +17612,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -22848,12 +22848,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -22982,30 +22976,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - // C documentation // // /* @@ -23518,33 +23488,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -23623,19 +23566,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -23811,223 +23741,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -24109,20 +23822,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -24172,13 +23871,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -24358,24 +24050,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -24399,22 +24073,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -24555,50 +24213,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -24995,340 +24609,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -25338,15 +24618,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -25362,14 +24633,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -25395,17 +24658,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -25849,52 +25101,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint64 type size_t = Tsize_t @@ -26428,14 +25634,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -26680,6 +25878,7 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 @@ -27167,10 +26366,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -27599,9 +26794,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -27728,53 +26923,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - FpKey uintptr - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -27878,16 +27026,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -27911,38 +27049,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -27955,34 +27066,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -27996,90 +27083,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { FpDirty uintptr FpDirtyTail uintptr @@ -28098,187 +27101,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -28288,917 +27110,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - Fu1 struct { - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - FzName uintptr - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo8 uint8 - Faffinity int8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - Fi [0]Ti64 - Fz uintptr - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo100 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -29223,622 +27134,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr int8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - F__ccgo_align [0]uint64 - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - F__ccgo_align [0]uint64 - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint64 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -29848,318 +27143,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo44 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]int8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -30245,232 +27228,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign int8 - FisSpecial int8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]int8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -31635,72 +28392,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - FpCValue uintptr - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -31746,152 +28437,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -31922,18 +28467,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -31950,101 +28483,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]int8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo200 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [32]Tu8 -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -32066,13 +28504,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -32092,14 +28523,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -32178,7 +28602,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(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -32408,7 +28832,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -32580,24 +29004,6 @@ type TDateTime = struct { 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 - FvalidYMD int8 - FvalidHMS int8 - FnFloor int8 - F__ccgo44 uint8 -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -34594,28 +31000,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -34623,19 +31029,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -34652,12 +31058,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -34665,7 +31071,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -34678,34 +31084,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -35018,14 +31424,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -35040,9 +31439,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -40310,21 +36709,6 @@ type TPMEM_EXTENDED_PARAMETER = uintptr type PMEM_EXTENDED_PARAMETER = TPMEM_EXTENDED_PARAMETER -type TMEM_EXTENDED_PARAMETER1 = struct { - F__ccgo0_0 struct { - F__ccgo0 uint64 - } - F__ccgo1_8 struct { - FPointer [0]TPVOID - FSize [0]TSIZE_T - FHandle [0]THANDLE - FULong [0]TDWORD - FULong64 TDWORD64 - } -} - -type MEM_EXTENDED_PARAMETER1 = TMEM_EXTENDED_PARAMETER1 - type TMEM_SECTION_EXTENDED_PARAMETER_TYPE = int32 type MEM_SECTION_EXTENDED_PARAMETER_TYPE = TMEM_SECTION_EXTENDED_PARAMETER_TYPE @@ -40350,12 +36734,6 @@ type TPFILE_ID_128 = uintptr type PFILE_ID_128 = TPFILE_ID_128 -type TFILE_ID_1281 = struct { - FIdentifier [16]TBYTE -} - -type FILE_ID_1281 = TFILE_ID_1281 - type TFILE_NOTIFY_INFORMATION = struct { FNextEntryOffset TDWORD FAction TDWORD @@ -41959,15 +38337,6 @@ type TPIMAGE_AUX_SYMBOL_TOKEN_DEF = uintptr type PIMAGE_AUX_SYMBOL_TOKEN_DEF = TPIMAGE_AUX_SYMBOL_TOKEN_DEF -type TIMAGE_AUX_SYMBOL_TOKEN_DEF1 = struct { - FbAuxType TBYTE - FbReserved TBYTE - FSymbolTableIndex TDWORD - FrgbReserved [12]TBYTE -} - -type IMAGE_AUX_SYMBOL_TOKEN_DEF1 = TIMAGE_AUX_SYMBOL_TOKEN_DEF1 - type TIMAGE_AUX_SYMBOL = struct { FFile [0]struct { FName [18]TBYTE @@ -42655,17 +39024,6 @@ type T_PIMAGE_RUNTIME_FUNCTION_ENTRY = uintptr type _PIMAGE_RUNTIME_FUNCTION_ENTRY = T_PIMAGE_RUNTIME_FUNCTION_ENTRY -type T_IMAGE_RUNTIME_FUNCTION_ENTRY1 = struct { - FBeginAddress TDWORD - FEndAddress TDWORD - F__ccgo2_8 struct { - FUnwindData [0]TDWORD - FUnwindInfoAddress TDWORD - } -} - -type _IMAGE_RUNTIME_FUNCTION_ENTRY1 = T_IMAGE_RUNTIME_FUNCTION_ENTRY1 - type TIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = struct { FBeginAddress TDWORD FEndAddress TDWORD @@ -42977,26 +39335,6 @@ type TPIMAGE_COR20_HEADER = uintptr type PIMAGE_COR20_HEADER = TPIMAGE_COR20_HEADER -type TIMAGE_COR20_HEADER1 = struct { - Fcb TDWORD - FMajorRuntimeVersion TWORD - FMinorRuntimeVersion TWORD - FMetaData TIMAGE_DATA_DIRECTORY - FFlags TDWORD - F__ccgo5_20 struct { - FEntryPointRVA [0]TDWORD - FEntryPointToken TDWORD - } - FResources TIMAGE_DATA_DIRECTORY - FStrongNameSignature TIMAGE_DATA_DIRECTORY - FCodeManagerTable TIMAGE_DATA_DIRECTORY - FVTableFixups TIMAGE_DATA_DIRECTORY - FExportAddressTableJumps TIMAGE_DATA_DIRECTORY - FManagedNativeHeader TIMAGE_DATA_DIRECTORY -} - -type IMAGE_COR20_HEADER1 = TIMAGE_COR20_HEADER1 - type TSLIST_ENTRY = struct { FNext uintptr } @@ -47889,19 +44227,6 @@ type TLPFILE_ID_DESCRIPTOR = uintptr type LPFILE_ID_DESCRIPTOR = TLPFILE_ID_DESCRIPTOR -type TFILE_ID_DESCRIPTOR1 = struct { - FdwSize TDWORD - FType TFILE_ID_TYPE - F__ccgo2_8 struct { - FObjectId [0]TGUID - FExtendedFileId [0]TFILE_ID_128 - FFileId TLARGE_INTEGER - F__ccgo_pad3 [8]byte - } -} - -type FILE_ID_DESCRIPTOR1 = TFILE_ID_DESCRIPTOR1 - type TDRAWPATRECT = struct { FptPosition TPOINT FptSize TPOINT @@ -58967,15 +55292,6 @@ type TPDRVCONFIGINFOEX = uintptr type PDRVCONFIGINFOEX = TPDRVCONFIGINFOEX -type TDRVCONFIGINFOEX1 = struct { - FdwDCISize TDWORD - FlpszDCISectionName TLPCWSTR - FlpszDCIAliasName TLPCWSTR - FdnDevNode TDWORD -} - -type DRVCONFIGINFOEX1 = TDRVCONFIGINFOEX1 - type TNPDRVCONFIGINFOEX = uintptr type NPDRVCONFIGINFOEX = TNPDRVCONFIGINFOEX @@ -64548,10 +60864,6 @@ type TFD_SET = struct { type FD_SET = TFD_SET -type Tfd_set1 = TFD_SET - -type fd_set1 = Tfd_set1 - type TPFD_SET = uintptr type PFD_SET = TPFD_SET @@ -71807,11 +68119,11 @@ const _PROXY_MARSHAL = 2 const _PROXY_SENDRECEIVE = 3 const _PROXY_UNMARSHAL = 4 -type TIRpcStubBuffer1 = struct { +type TIRpcStubBuffer = struct { FlpVtbl uintptr } -type IRpcStubBuffer1 = TIRpcStubBuffer1 +type IRpcStubBuffer = TIRpcStubBuffer type TRPC_SS_THREAD_HANDLE = uintptr @@ -71857,12 +68169,6 @@ const _REGCLS_MULTI_SEPARATE = 2 const _REGCLS_SUSPENDED = 4 const _REGCLS_SURROGATE = 8 -type TIRpcStubBuffer = struct { - FlpVtbl uintptr -} - -type IRpcStubBuffer = TIRpcStubBuffer - type TIRpcChannelBuffer = struct { FlpVtbl uintptr } @@ -72169,12 +68475,6 @@ type TIUnknownVtbl = struct { type IUnknownVtbl = TIUnknownVtbl -type TIUnknown1 = struct { - FlpVtbl uintptr -} - -type IUnknown1 = TIUnknown1 - type TAsyncIUnknownVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72189,12 +68489,6 @@ type TAsyncIUnknownVtbl = struct { type AsyncIUnknownVtbl = TAsyncIUnknownVtbl -type TAsyncIUnknown1 = struct { - FlpVtbl uintptr -} - -type AsyncIUnknown1 = TAsyncIUnknown1 - type TLPCLASSFACTORY = uintptr type LPCLASSFACTORY = TLPCLASSFACTORY @@ -72209,12 +68503,6 @@ type TIClassFactoryVtbl = struct { type IClassFactoryVtbl = TIClassFactoryVtbl -type TIClassFactory1 = struct { - FlpVtbl uintptr -} - -type IClassFactory1 = TIClassFactory1 - type TIMarshal = struct { FlpVtbl uintptr } @@ -72534,12 +68822,6 @@ type TIMarshalVtbl = struct { type IMarshalVtbl = TIMarshalVtbl -type TIMarshal1 = struct { - FlpVtbl uintptr -} - -type IMarshal1 = TIMarshal1 - type TINoMarshalVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72548,12 +68830,6 @@ type TINoMarshalVtbl = struct { type INoMarshalVtbl = TINoMarshalVtbl -type TINoMarshal1 = struct { - FlpVtbl uintptr -} - -type INoMarshal1 = TINoMarshal1 - type TIAgileObjectVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72562,12 +68838,6 @@ type TIAgileObjectVtbl = struct { type IAgileObjectVtbl = TIAgileObjectVtbl -type TIAgileObject1 = struct { - FlpVtbl uintptr -} - -type IAgileObject1 = TIAgileObject1 - type TIAgileReferenceVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72577,12 +68847,6 @@ type TIAgileReferenceVtbl = struct { type IAgileReferenceVtbl = TIAgileReferenceVtbl -type TIAgileReference1 = struct { - FlpVtbl uintptr -} - -type IAgileReference1 = TIAgileReference1 - type TLPMARSHAL2 = uintptr type LPMARSHAL2 = TLPMARSHAL2 @@ -72601,12 +68865,6 @@ type TIMarshal2Vtbl = struct { type IMarshal2Vtbl = TIMarshal2Vtbl -type TIMarshal21 = struct { - FlpVtbl uintptr -} - -type IMarshal21 = TIMarshal21 - type TLPMALLOC = uintptr type LPMALLOC = TLPMALLOC @@ -72625,12 +68883,6 @@ type TIMallocVtbl = struct { type IMallocVtbl = TIMallocVtbl -type TIMalloc1 = struct { - FlpVtbl uintptr -} - -type IMalloc1 = TIMalloc1 - type TLPSTDMARSHALINFO = uintptr type LPSTDMARSHALINFO = TLPSTDMARSHALINFO @@ -72644,12 +68896,6 @@ type TIStdMarshalInfoVtbl = struct { type IStdMarshalInfoVtbl = TIStdMarshalInfoVtbl -type TIStdMarshalInfo1 = struct { - FlpVtbl uintptr -} - -type IStdMarshalInfo1 = TIStdMarshalInfo1 - type TLPEXTERNALCONNECTION = uintptr type LPEXTERNALCONNECTION = TLPEXTERNALCONNECTION @@ -72674,12 +68920,6 @@ type TIExternalConnectionVtbl = struct { type IExternalConnectionVtbl = TIExternalConnectionVtbl -type TIExternalConnection1 = struct { - FlpVtbl uintptr -} - -type IExternalConnection1 = TIExternalConnection1 - type TLPMULTIQI = uintptr type LPMULTIQI = TLPMULTIQI @@ -72705,12 +68945,6 @@ type TIMultiQIVtbl = struct { type IMultiQIVtbl = TIMultiQIVtbl -type TIMultiQI1 = struct { - FlpVtbl uintptr -} - -type IMultiQI1 = TIMultiQI1 - type TAsyncIMultiQIVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72721,12 +68955,6 @@ type TAsyncIMultiQIVtbl = struct { type AsyncIMultiQIVtbl = TAsyncIMultiQIVtbl -type TAsyncIMultiQI1 = struct { - FlpVtbl uintptr -} - -type AsyncIMultiQI1 = TAsyncIMultiQI1 - type TIInternalUnknownVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72736,12 +68964,6 @@ type TIInternalUnknownVtbl = struct { type IInternalUnknownVtbl = TIInternalUnknownVtbl -type TIInternalUnknown1 = struct { - FlpVtbl uintptr -} - -type IInternalUnknown1 = TIInternalUnknown1 - type TLPENUMUNKNOWN = uintptr type LPENUMUNKNOWN = TLPENUMUNKNOWN @@ -72758,12 +68980,6 @@ type TIEnumUnknownVtbl = struct { type IEnumUnknownVtbl = TIEnumUnknownVtbl -type TIEnumUnknown1 = struct { - FlpVtbl uintptr -} - -type IEnumUnknown1 = TIEnumUnknown1 - type TLPENUMSTRING = uintptr type LPENUMSTRING = TLPENUMSTRING @@ -72780,12 +68996,6 @@ type TIEnumStringVtbl = struct { type IEnumStringVtbl = TIEnumStringVtbl -type TIEnumString1 = struct { - FlpVtbl uintptr -} - -type IEnumString1 = TIEnumString1 - type TISequentialStreamVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72796,12 +69006,6 @@ type TISequentialStreamVtbl = struct { type ISequentialStreamVtbl = TISequentialStreamVtbl -type TISequentialStream1 = struct { - FlpVtbl uintptr -} - -type ISequentialStream1 = TISequentialStream1 - type TLPSTREAM = uintptr type LPSTREAM = TLPSTREAM @@ -72876,12 +69080,6 @@ type TIStreamVtbl = struct { type IStreamVtbl = TIStreamVtbl -type TIStream1 = struct { - FlpVtbl uintptr -} - -type IStream1 = TIStream1 - type TRPCOLEDATAREP = uint32 type RPCOLEDATAREP = TRPCOLEDATAREP @@ -72919,12 +69117,6 @@ type TIRpcChannelBufferVtbl = struct { type IRpcChannelBufferVtbl = TIRpcChannelBufferVtbl -type TIRpcChannelBuffer1 = struct { - FlpVtbl uintptr -} - -type IRpcChannelBuffer1 = TIRpcChannelBuffer1 - type TIRpcChannelBuffer2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72939,12 +69131,6 @@ type TIRpcChannelBuffer2Vtbl = struct { type IRpcChannelBuffer2Vtbl = TIRpcChannelBuffer2Vtbl -type TIRpcChannelBuffer21 = struct { - FlpVtbl uintptr -} - -type IRpcChannelBuffer21 = TIRpcChannelBuffer21 - type TIAsyncRpcChannelBufferVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72962,12 +69148,6 @@ type TIAsyncRpcChannelBufferVtbl = struct { type IAsyncRpcChannelBufferVtbl = TIAsyncRpcChannelBufferVtbl -type TIAsyncRpcChannelBuffer1 = struct { - FlpVtbl uintptr -} - -type IAsyncRpcChannelBuffer1 = TIAsyncRpcChannelBuffer1 - type TIRpcChannelBuffer3Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72989,12 +69169,6 @@ type TIRpcChannelBuffer3Vtbl = struct { type IRpcChannelBuffer3Vtbl = TIRpcChannelBuffer3Vtbl -type TIRpcChannelBuffer31 = struct { - FlpVtbl uintptr -} - -type IRpcChannelBuffer31 = TIRpcChannelBuffer31 - type TIRpcSyntaxNegotiateVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73004,12 +69178,6 @@ type TIRpcSyntaxNegotiateVtbl = struct { type IRpcSyntaxNegotiateVtbl = TIRpcSyntaxNegotiateVtbl -type TIRpcSyntaxNegotiate1 = struct { - FlpVtbl uintptr -} - -type IRpcSyntaxNegotiate1 = TIRpcSyntaxNegotiate1 - type TIRpcProxyBufferVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73020,12 +69188,6 @@ type TIRpcProxyBufferVtbl = struct { type IRpcProxyBufferVtbl = TIRpcProxyBufferVtbl -type TIRpcProxyBuffer1 = struct { - FlpVtbl uintptr -} - -type IRpcProxyBuffer1 = TIRpcProxyBuffer1 - type TIRpcStubBufferVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73051,12 +69213,6 @@ type TIPSFactoryBufferVtbl = struct { type IPSFactoryBufferVtbl = TIPSFactoryBufferVtbl -type TIPSFactoryBuffer1 = struct { - FlpVtbl uintptr -} - -type IPSFactoryBuffer1 = TIPSFactoryBuffer1 - type TSChannelHookCallInfo = struct { Fiid TIID FcbSize TDWORD @@ -73082,12 +69238,6 @@ type TIChannelHookVtbl = struct { type IChannelHookVtbl = TIChannelHookVtbl -type TIChannelHook1 = struct { - FlpVtbl uintptr -} - -type IChannelHook1 = TIChannelHook1 - type TSOLE_AUTHENTICATION_SERVICE = struct { FdwAuthnSvc TDWORD FdwAuthzSvc TDWORD @@ -73169,12 +69319,6 @@ type TIClientSecurityVtbl = struct { type IClientSecurityVtbl = TIClientSecurityVtbl -type TIClientSecurity1 = struct { - FlpVtbl uintptr -} - -type IClientSecurity1 = TIClientSecurity1 - type TIServerSecurityVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73187,12 +69331,6 @@ type TIServerSecurityVtbl = struct { type IServerSecurityVtbl = TIServerSecurityVtbl -type TIServerSecurity1 = struct { - FlpVtbl uintptr -} - -type IServerSecurity1 = TIServerSecurity1 - type TRPCOPT_PROPERTIES = int32 type RPCOPT_PROPERTIES = TRPCOPT_PROPERTIES @@ -73223,12 +69361,6 @@ type TIRpcOptionsVtbl = struct { type IRpcOptionsVtbl = TIRpcOptionsVtbl -type TIRpcOptions1 = struct { - FlpVtbl uintptr -} - -type IRpcOptions1 = TIRpcOptions1 - type TGLOBALOPT_PROPERTIES = int32 type GLOBALOPT_PROPERTIES = TGLOBALOPT_PROPERTIES @@ -73296,12 +69428,6 @@ type TIGlobalOptionsVtbl = struct { type IGlobalOptionsVtbl = TIGlobalOptionsVtbl -type TIGlobalOptions1 = struct { - FlpVtbl uintptr -} - -type IGlobalOptions1 = TIGlobalOptions1 - type TLPSURROGATE = uintptr type LPSURROGATE = TLPSURROGATE @@ -73316,12 +69442,6 @@ type TISurrogateVtbl = struct { type ISurrogateVtbl = TISurrogateVtbl -type TISurrogate1 = struct { - FlpVtbl uintptr -} - -type ISurrogate1 = TISurrogate1 - type TLPGLOBALINTERFACETABLE = uintptr type LPGLOBALINTERFACETABLE = TLPGLOBALINTERFACETABLE @@ -73337,12 +69457,6 @@ type TIGlobalInterfaceTableVtbl = struct { type IGlobalInterfaceTableVtbl = TIGlobalInterfaceTableVtbl -type TIGlobalInterfaceTable1 = struct { - FlpVtbl uintptr -} - -type IGlobalInterfaceTable1 = TIGlobalInterfaceTable1 - type TISynchronizeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73354,12 +69468,6 @@ type TISynchronizeVtbl = struct { type ISynchronizeVtbl = TISynchronizeVtbl -type TISynchronize1 = struct { - FlpVtbl uintptr -} - -type ISynchronize1 = TISynchronize1 - type TISynchronizeHandleVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73369,12 +69477,6 @@ type TISynchronizeHandleVtbl = struct { type ISynchronizeHandleVtbl = TISynchronizeHandleVtbl -type TISynchronizeHandle1 = struct { - FlpVtbl uintptr -} - -type ISynchronizeHandle1 = TISynchronizeHandle1 - type TISynchronizeEventVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73385,12 +69487,6 @@ type TISynchronizeEventVtbl = struct { type ISynchronizeEventVtbl = TISynchronizeEventVtbl -type TISynchronizeEvent1 = struct { - FlpVtbl uintptr -} - -type ISynchronizeEvent1 = TISynchronizeEvent1 - type TISynchronizeContainerVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73401,12 +69497,6 @@ type TISynchronizeContainerVtbl = struct { type ISynchronizeContainerVtbl = TISynchronizeContainerVtbl -type TISynchronizeContainer1 = struct { - FlpVtbl uintptr -} - -type ISynchronizeContainer1 = TISynchronizeContainer1 - type TISynchronizeMutexVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73419,12 +69509,6 @@ type TISynchronizeMutexVtbl = struct { type ISynchronizeMutexVtbl = TISynchronizeMutexVtbl -type TISynchronizeMutex1 = struct { - FlpVtbl uintptr -} - -type ISynchronizeMutex1 = TISynchronizeMutex1 - type TLPCANCELMETHODCALLS = uintptr type LPCANCELMETHODCALLS = TLPCANCELMETHODCALLS @@ -73439,12 +69523,6 @@ type TICancelMethodCallsVtbl = struct { type ICancelMethodCallsVtbl = TICancelMethodCallsVtbl -type TICancelMethodCalls1 = struct { - FlpVtbl uintptr -} - -type ICancelMethodCalls1 = TICancelMethodCalls1 - type TDCOM_CALL_STATE = int32 type DCOM_CALL_STATE = TDCOM_CALL_STATE @@ -73466,12 +69544,6 @@ type TIAsyncManagerVtbl = struct { type IAsyncManagerVtbl = TIAsyncManagerVtbl -type TIAsyncManager1 = struct { - FlpVtbl uintptr -} - -type IAsyncManager1 = TIAsyncManager1 - type TICallFactoryVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73481,12 +69553,6 @@ type TICallFactoryVtbl = struct { type ICallFactoryVtbl = TICallFactoryVtbl -type TICallFactory1 = struct { - FlpVtbl uintptr -} - -type ICallFactory1 = TICallFactory1 - type TIRpcHelperVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73497,12 +69563,6 @@ type TIRpcHelperVtbl = struct { type IRpcHelperVtbl = TIRpcHelperVtbl -type TIRpcHelper1 = struct { - FlpVtbl uintptr -} - -type IRpcHelper1 = TIRpcHelper1 - type TIReleaseMarshalBuffersVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73512,12 +69572,6 @@ type TIReleaseMarshalBuffersVtbl = struct { type IReleaseMarshalBuffersVtbl = TIReleaseMarshalBuffersVtbl -type TIReleaseMarshalBuffers1 = struct { - FlpVtbl uintptr -} - -type IReleaseMarshalBuffers1 = TIReleaseMarshalBuffers1 - type TIWaitMultipleVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73528,12 +69582,6 @@ type TIWaitMultipleVtbl = struct { type IWaitMultipleVtbl = TIWaitMultipleVtbl -type TIWaitMultiple1 = struct { - FlpVtbl uintptr -} - -type IWaitMultiple1 = TIWaitMultiple1 - type TLPADDRTRACKINGCONTROL = uintptr type LPADDRTRACKINGCONTROL = TLPADDRTRACKINGCONTROL @@ -73548,12 +69596,6 @@ type TIAddrTrackingControlVtbl = struct { type IAddrTrackingControlVtbl = TIAddrTrackingControlVtbl -type TIAddrTrackingControl1 = struct { - FlpVtbl uintptr -} - -type IAddrTrackingControl1 = TIAddrTrackingControl1 - type TLPADDREXCLUSIONCONTROL = uintptr type LPADDREXCLUSIONCONTROL = TLPADDREXCLUSIONCONTROL @@ -73568,12 +69610,6 @@ type TIAddrExclusionControlVtbl = struct { type IAddrExclusionControlVtbl = TIAddrExclusionControlVtbl -type TIAddrExclusionControl1 = struct { - FlpVtbl uintptr -} - -type IAddrExclusionControl1 = TIAddrExclusionControl1 - type TIPipeByteVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73584,12 +69620,6 @@ type TIPipeByteVtbl = struct { type IPipeByteVtbl = TIPipeByteVtbl -type TIPipeByte1 = struct { - FlpVtbl uintptr -} - -type IPipeByte1 = TIPipeByte1 - type TIPipeLongVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73600,12 +69630,6 @@ type TIPipeLongVtbl = struct { type IPipeLongVtbl = TIPipeLongVtbl -type TIPipeLong1 = struct { - FlpVtbl uintptr -} - -type IPipeLong1 = TIPipeLong1 - type TIPipeDoubleVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73616,12 +69640,6 @@ type TIPipeDoubleVtbl = struct { type IPipeDoubleVtbl = TIPipeDoubleVtbl -type TIPipeDouble1 = struct { - FlpVtbl uintptr -} - -type IPipeDouble1 = TIPipeDouble1 - type TAPTTYPEQUALIFIER = int32 type APTTYPEQUALIFIER = TAPTTYPEQUALIFIER @@ -73673,12 +69691,6 @@ type TIComThreadingInfoVtbl = struct { type IComThreadingInfoVtbl = TIComThreadingInfoVtbl -type TIComThreadingInfo1 = struct { - FlpVtbl uintptr -} - -type IComThreadingInfo1 = TIComThreadingInfo1 - type TIProcessInitControlVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73688,12 +69700,6 @@ type TIProcessInitControlVtbl = struct { type IProcessInitControlVtbl = TIProcessInitControlVtbl -type TIProcessInitControl1 = struct { - FlpVtbl uintptr -} - -type IProcessInitControl1 = TIProcessInitControl1 - type TIFastRundownVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73702,12 +69708,6 @@ type TIFastRundownVtbl = struct { type IFastRundownVtbl = TIFastRundownVtbl -type TIFastRundown1 = struct { - FlpVtbl uintptr -} - -type IFastRundown1 = TIFastRundown1 - type TCO_MARSHALING_CONTEXT_ATTRIBUTES = int32 type CO_MARSHALING_CONTEXT_ATTRIBUTES = TCO_MARSHALING_CONTEXT_ATTRIBUTES @@ -73736,12 +69736,6 @@ type TIMarshalingStreamVtbl = struct { type IMarshalingStreamVtbl = TIMarshalingStreamVtbl -type TIMarshalingStream1 = struct { - FlpVtbl uintptr -} - -type IMarshalingStream1 = TIMarshalingStream1 - type TServerInformation = struct { FdwServerPid TDWORD FdwServerTid TDWORD @@ -74716,12 +70710,6 @@ type TIMallocSpyVtbl = struct { type IMallocSpyVtbl = TIMallocSpyVtbl -type TIMallocSpy1 = struct { - FlpVtbl uintptr -} - -type IMallocSpy1 = TIMallocSpy1 - type TLPBC = uintptr type LPBC = TLPBC @@ -74817,12 +70805,6 @@ type TIBindCtxVtbl = struct { type IBindCtxVtbl = TIBindCtxVtbl -type TIBindCtx1 = struct { - FlpVtbl uintptr -} - -type IBindCtx1 = TIBindCtx1 - type TLPENUMMONIKER = uintptr type LPENUMMONIKER = TLPENUMMONIKER @@ -74839,12 +70821,6 @@ type TIEnumMonikerVtbl = struct { type IEnumMonikerVtbl = TIEnumMonikerVtbl -type TIEnumMoniker1 = struct { - FlpVtbl uintptr -} - -type IEnumMoniker1 = TIEnumMoniker1 - type TLPRUNNABLEOBJECT = uintptr type LPRUNNABLEOBJECT = TLPRUNNABLEOBJECT @@ -74862,12 +70838,6 @@ type TIRunnableObjectVtbl = struct { type IRunnableObjectVtbl = TIRunnableObjectVtbl -type TIRunnableObject1 = struct { - FlpVtbl uintptr -} - -type IRunnableObject1 = TIRunnableObject1 - type TLPRUNNINGOBJECTTABLE = uintptr type LPRUNNINGOBJECTTABLE = TLPRUNNINGOBJECTTABLE @@ -74887,12 +70857,6 @@ type TIRunningObjectTableVtbl = struct { type IRunningObjectTableVtbl = TIRunningObjectTableVtbl -type TIRunningObjectTable1 = struct { - FlpVtbl uintptr -} - -type IRunningObjectTable1 = TIRunningObjectTable1 - type TLPPERSIST = uintptr type LPPERSIST = TLPPERSIST @@ -74906,12 +70870,6 @@ type TIPersistVtbl = struct { type IPersistVtbl = TIPersistVtbl -type TIPersist1 = struct { - FlpVtbl uintptr -} - -type IPersist1 = TIPersist1 - type TLPPERSISTSTREAM = uintptr type LPPERSISTSTREAM = TLPPERSISTSTREAM @@ -74929,12 +70887,6 @@ type TIPersistStreamVtbl = struct { type IPersistStreamVtbl = TIPersistStreamVtbl -type TIPersistStream1 = struct { - FlpVtbl uintptr -} - -type IPersistStream1 = TIPersistStream1 - type TLPMONIKER = uintptr type LPMONIKER = TLPMONIKER @@ -74995,12 +70947,6 @@ type TIMonikerVtbl = struct { type IMonikerVtbl = TIMonikerVtbl -type TIMoniker1 = struct { - FlpVtbl uintptr -} - -type IMoniker1 = TIMoniker1 - type TIROTDataVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75010,12 +70956,6 @@ type TIROTDataVtbl = struct { type IROTDataVtbl = TIROTDataVtbl -type TIROTData1 = struct { - FlpVtbl uintptr -} - -type IROTData1 = TIROTData1 - type TLPENUMSTATSTG = uintptr type LPENUMSTATSTG = TLPENUMSTATSTG @@ -75032,12 +70972,6 @@ type TIEnumSTATSTGVtbl = struct { type IEnumSTATSTGVtbl = TIEnumSTATSTGVtbl -type TIEnumSTATSTG1 = struct { - FlpVtbl uintptr -} - -type IEnumSTATSTG1 = TIEnumSTATSTG1 - type TLPSTORAGE = uintptr type LPSTORAGE = TLPSTORAGE @@ -75085,12 +71019,6 @@ type TIStorageVtbl = struct { type IStorageVtbl = TIStorageVtbl -type TIStorage1 = struct { - FlpVtbl uintptr -} - -type IStorage1 = TIStorage1 - type TLPPERSISTFILE = uintptr type LPPERSISTFILE = TLPPERSISTFILE @@ -75109,12 +71037,6 @@ type TIPersistFileVtbl = struct { type IPersistFileVtbl = TIPersistFileVtbl -type TIPersistFile1 = struct { - FlpVtbl uintptr -} - -type IPersistFile1 = TIPersistFile1 - type TLPPERSISTSTORAGE = uintptr type LPPERSISTSTORAGE = TLPPERSISTSTORAGE @@ -75134,12 +71056,6 @@ type TIPersistStorageVtbl = struct { type IPersistStorageVtbl = TIPersistStorageVtbl -type TIPersistStorage1 = struct { - FlpVtbl uintptr -} - -type IPersistStorage1 = TIPersistStorage1 - type TLPLOCKBYTES = uintptr type LPLOCKBYTES = TLPLOCKBYTES @@ -75159,12 +71075,6 @@ type TILockBytesVtbl = struct { type ILockBytesVtbl = TILockBytesVtbl -type TILockBytes1 = struct { - FlpVtbl uintptr -} - -type ILockBytes1 = TILockBytes1 - type TLPENUMFORMATETC = uintptr type LPENUMFORMATETC = TLPENUMFORMATETC @@ -75218,12 +71128,6 @@ type TIEnumFORMATETCVtbl = struct { type IEnumFORMATETCVtbl = TIEnumFORMATETCVtbl -type TIEnumFORMATETC1 = struct { - FlpVtbl uintptr -} - -type IEnumFORMATETC1 = TIEnumFORMATETC1 - type TLPENUMSTATDATA = uintptr type LPENUMSTATDATA = TLPENUMSTATDATA @@ -75271,12 +71175,6 @@ type TIEnumSTATDATAVtbl = struct { type IEnumSTATDATAVtbl = TIEnumSTATDATAVtbl -type TIEnumSTATDATA1 = struct { - FlpVtbl uintptr -} - -type IEnumSTATDATA1 = TIEnumSTATDATA1 - type TLPROOTSTORAGE = uintptr type LPROOTSTORAGE = TLPROOTSTORAGE @@ -75290,12 +71188,6 @@ type TIRootStorageVtbl = struct { type IRootStorageVtbl = TIRootStorageVtbl -type TIRootStorage1 = struct { - FlpVtbl uintptr -} - -type IRootStorage1 = TIRootStorage1 - type TLPADVISESINK = uintptr type LPADVISESINK = TLPADVISESINK @@ -75457,12 +71349,6 @@ type TIAdviseSinkVtbl = struct { type IAdviseSinkVtbl = TIAdviseSinkVtbl -type TIAdviseSink1 = struct { - FlpVtbl uintptr -} - -type IAdviseSink1 = TIAdviseSink1 - type TAsyncIAdviseSinkVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75481,12 +71367,6 @@ type TAsyncIAdviseSinkVtbl = struct { type AsyncIAdviseSinkVtbl = TAsyncIAdviseSinkVtbl -type TAsyncIAdviseSink1 = struct { - FlpVtbl uintptr -} - -type AsyncIAdviseSink1 = TAsyncIAdviseSink1 - type TLPADVISESINK2 = uintptr type LPADVISESINK2 = TLPADVISESINK2 @@ -75505,12 +71385,6 @@ type TIAdviseSink2Vtbl = struct { type IAdviseSink2Vtbl = TIAdviseSink2Vtbl -type TIAdviseSink21 = struct { - FlpVtbl uintptr -} - -type IAdviseSink21 = TIAdviseSink21 - type TAsyncIAdviseSink2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75531,12 +71405,6 @@ type TAsyncIAdviseSink2Vtbl = struct { type AsyncIAdviseSink2Vtbl = TAsyncIAdviseSink2Vtbl -type TAsyncIAdviseSink21 = struct { - FlpVtbl uintptr -} - -type AsyncIAdviseSink21 = TAsyncIAdviseSink21 - type TLPDATAOBJECT = uintptr type LPDATAOBJECT = TLPDATAOBJECT @@ -75567,12 +71435,6 @@ type TIDataObjectVtbl = struct { type IDataObjectVtbl = TIDataObjectVtbl -type TIDataObject1 = struct { - FlpVtbl uintptr -} - -type IDataObject1 = TIDataObject1 - type TLPDATAADVISEHOLDER = uintptr type LPDATAADVISEHOLDER = TLPDATAADVISEHOLDER @@ -75589,12 +71451,6 @@ type TIDataAdviseHolderVtbl = struct { type IDataAdviseHolderVtbl = TIDataAdviseHolderVtbl -type TIDataAdviseHolder1 = struct { - FlpVtbl uintptr -} - -type IDataAdviseHolder1 = TIDataAdviseHolder1 - type TLPMESSAGEFILTER = uintptr type LPMESSAGEFILTER = TLPMESSAGEFILTER @@ -75667,12 +71523,6 @@ type TIMessageFilterVtbl = struct { type IMessageFilterVtbl = TIMessageFilterVtbl -type TIMessageFilter1 = struct { - FlpVtbl uintptr -} - -type IMessageFilter1 = TIMessageFilter1 - type TIClassActivatorVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75682,12 +71532,6 @@ type TIClassActivatorVtbl = struct { type IClassActivatorVtbl = TIClassActivatorVtbl -type TIClassActivator1 = struct { - FlpVtbl uintptr -} - -type IClassActivator1 = TIClassActivator1 - type TIFillLockBytesVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75700,12 +71544,6 @@ type TIFillLockBytesVtbl = struct { type IFillLockBytesVtbl = TIFillLockBytesVtbl -type TIFillLockBytes1 = struct { - FlpVtbl uintptr -} - -type IFillLockBytes1 = TIFillLockBytes1 - type TIProgressNotifyVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75715,12 +71553,6 @@ type TIProgressNotifyVtbl = struct { type IProgressNotifyVtbl = TIProgressNotifyVtbl -type TIProgressNotify1 = struct { - FlpVtbl uintptr -} - -type IProgressNotify1 = TIProgressNotify1 - type TStorageLayout = struct { FLayoutType TDWORD FpwcsElementName uintptr @@ -75747,12 +71579,6 @@ type TILayoutStorageVtbl = struct { type ILayoutStorageVtbl = TILayoutStorageVtbl -type TILayoutStorage1 = struct { - FlpVtbl uintptr -} - -type ILayoutStorage1 = TILayoutStorage1 - type TIBlockingLockVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75763,12 +71589,6 @@ type TIBlockingLockVtbl = struct { type IBlockingLockVtbl = TIBlockingLockVtbl -type TIBlockingLock1 = struct { - FlpVtbl uintptr -} - -type IBlockingLock1 = TIBlockingLock1 - type TITimeAndNoticeControlVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75778,12 +71598,6 @@ type TITimeAndNoticeControlVtbl = struct { type ITimeAndNoticeControlVtbl = TITimeAndNoticeControlVtbl -type TITimeAndNoticeControl1 = struct { - FlpVtbl uintptr -} - -type ITimeAndNoticeControl1 = TITimeAndNoticeControl1 - type TIOplockStorageVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75794,12 +71608,6 @@ type TIOplockStorageVtbl = struct { type IOplockStorageVtbl = TIOplockStorageVtbl -type TIOplockStorage1 = struct { - FlpVtbl uintptr -} - -type IOplockStorage1 = TIOplockStorage1 - type TIDirectWriterLockVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75811,12 +71619,6 @@ type TIDirectWriterLockVtbl = struct { type IDirectWriterLockVtbl = TIDirectWriterLockVtbl -type TIDirectWriterLock1 = struct { - FlpVtbl uintptr -} - -type IDirectWriterLock1 = TIDirectWriterLock1 - type TIUrlMonVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75826,12 +71628,6 @@ type TIUrlMonVtbl = struct { type IUrlMonVtbl = TIUrlMonVtbl -type TIUrlMon1 = struct { - FlpVtbl uintptr -} - -type IUrlMon1 = TIUrlMon1 - type TIForegroundTransferVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75841,12 +71637,6 @@ type TIForegroundTransferVtbl = struct { type IForegroundTransferVtbl = TIForegroundTransferVtbl -type TIForegroundTransfer1 = struct { - FlpVtbl uintptr -} - -type IForegroundTransfer1 = TIForegroundTransfer1 - type TIThumbnailExtractorVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75857,12 +71647,6 @@ type TIThumbnailExtractorVtbl = struct { type IThumbnailExtractorVtbl = TIThumbnailExtractorVtbl -type TIThumbnailExtractor1 = struct { - FlpVtbl uintptr -} - -type IThumbnailExtractor1 = TIThumbnailExtractor1 - type TIDummyHICONIncluderVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75872,12 +71656,6 @@ type TIDummyHICONIncluderVtbl = struct { type IDummyHICONIncluderVtbl = TIDummyHICONIncluderVtbl -type TIDummyHICONIncluder1 = struct { - FlpVtbl uintptr -} - -type IDummyHICONIncluder1 = TIDummyHICONIncluder1 - type TApplicationType = int32 type ApplicationType = TApplicationType @@ -75906,12 +71684,6 @@ type TIProcessLockVtbl = struct { type IProcessLockVtbl = TIProcessLockVtbl -type TIProcessLock1 = struct { - FlpVtbl uintptr -} - -type IProcessLock1 = TIProcessLock1 - type TISurrogateServiceVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75925,12 +71697,6 @@ type TISurrogateServiceVtbl = struct { type ISurrogateServiceVtbl = TISurrogateServiceVtbl -type TISurrogateService1 = struct { - FlpVtbl uintptr -} - -type ISurrogateService1 = TISurrogateService1 - type TLPINITIALIZESPY = uintptr type LPINITIALIZESPY = TLPINITIALIZESPY @@ -75947,12 +71713,6 @@ type TIInitializeSpyVtbl = struct { type IInitializeSpyVtbl = TIInitializeSpyVtbl -type TIInitializeSpy1 = struct { - FlpVtbl uintptr -} - -type IInitializeSpy1 = TIInitializeSpy1 - type TIApartmentShutdownVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75962,12 +71722,6 @@ type TIApartmentShutdownVtbl = struct { type IApartmentShutdownVtbl = TIApartmentShutdownVtbl -type TIApartmentShutdown1 = struct { - FlpVtbl uintptr -} - -type IApartmentShutdown1 = TIApartmentShutdown1 - type TCOMSD = int32 type COMSD = TCOMSD @@ -76466,12 +72220,6 @@ type TIOleAdviseHolderVtbl = struct { type IOleAdviseHolderVtbl = TIOleAdviseHolderVtbl -type TIOleAdviseHolder1 = struct { - FlpVtbl uintptr -} - -type IOleAdviseHolder1 = TIOleAdviseHolder1 - type TLPOLECACHE = uintptr type LPOLECACHE = TLPOLECACHE @@ -76489,12 +72237,6 @@ type TIOleCacheVtbl = struct { type IOleCacheVtbl = TIOleCacheVtbl -type TIOleCache1 = struct { - FlpVtbl uintptr -} - -type IOleCache1 = TIOleCache1 - type TLPOLECACHE2 = uintptr type LPOLECACHE2 = TLPOLECACHE2 @@ -76523,12 +72265,6 @@ type TIOleCache2Vtbl = struct { type IOleCache2Vtbl = TIOleCache2Vtbl -type TIOleCache21 = struct { - FlpVtbl uintptr -} - -type IOleCache21 = TIOleCache21 - type TLPOLECACHECONTROL = uintptr type LPOLECACHECONTROL = TLPOLECACHECONTROL @@ -76543,12 +72279,6 @@ type TIOleCacheControlVtbl = struct { type IOleCacheControlVtbl = TIOleCacheControlVtbl -type TIOleCacheControl1 = struct { - FlpVtbl uintptr -} - -type IOleCacheControl1 = TIOleCacheControl1 - type TLPPARSEDISPLAYNAME = uintptr type LPPARSEDISPLAYNAME = TLPPARSEDISPLAYNAME @@ -76562,12 +72292,6 @@ type TIParseDisplayNameVtbl = struct { type IParseDisplayNameVtbl = TIParseDisplayNameVtbl -type TIParseDisplayName1 = struct { - FlpVtbl uintptr -} - -type IParseDisplayName1 = TIParseDisplayName1 - type TLPOLECONTAINER = uintptr type LPOLECONTAINER = TLPOLECONTAINER @@ -76583,12 +72307,6 @@ type TIOleContainerVtbl = struct { type IOleContainerVtbl = TIOleContainerVtbl -type TIOleContainer1 = struct { - FlpVtbl uintptr -} - -type IOleContainer1 = TIOleContainer1 - type TLPOLECLIENTSITE = uintptr type LPOLECLIENTSITE = TLPOLECLIENTSITE @@ -76607,12 +72325,6 @@ type TIOleClientSiteVtbl = struct { type IOleClientSiteVtbl = TIOleClientSiteVtbl -type TIOleClientSite1 = struct { - FlpVtbl uintptr -} - -type IOleClientSite1 = TIOleClientSite1 - type TLPOLEOBJECT = uintptr type LPOLEOBJECT = TLPOLEOBJECT @@ -76716,12 +72428,6 @@ type TIOleObjectVtbl = struct { type IOleObjectVtbl = TIOleObjectVtbl -type TIOleObject1 = struct { - FlpVtbl uintptr -} - -type IOleObject1 = TIOleObject1 - type TOLERENDER = int32 type OLERENDER = TOLERENDER @@ -76797,12 +72503,6 @@ type TIOleWindowVtbl = struct { type IOleWindowVtbl = TIOleWindowVtbl -type TIOleWindow1 = struct { - FlpVtbl uintptr -} - -type IOleWindow1 = TIOleWindow1 - type TLPOLELINK = uintptr type LPOLELINK = TLPOLELINK @@ -76851,12 +72551,6 @@ type TIOleLinkVtbl = struct { type IOleLinkVtbl = TIOleLinkVtbl -type TIOleLink1 = struct { - FlpVtbl uintptr -} - -type IOleLink1 = TIOleLink1 - type TLPOLEITEMCONTAINER = uintptr type LPOLEITEMCONTAINER = TLPOLEITEMCONTAINER @@ -76897,12 +72591,6 @@ type TIOleItemContainerVtbl = struct { type IOleItemContainerVtbl = TIOleItemContainerVtbl -type TIOleItemContainer1 = struct { - FlpVtbl uintptr -} - -type IOleItemContainer1 = TIOleItemContainer1 - type TLPOLEINPLACEUIWINDOW = uintptr type LPOLEINPLACEUIWINDOW = TLPOLEINPLACEUIWINDOW @@ -76938,12 +72626,6 @@ type TIOleInPlaceUIWindowVtbl = struct { type IOleInPlaceUIWindowVtbl = TIOleInPlaceUIWindowVtbl -type TIOleInPlaceUIWindow1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceUIWindow1 = TIOleInPlaceUIWindow1 - type TLPOLEINPLACEACTIVEOBJECT = uintptr type LPOLEINPLACEACTIVEOBJECT = TLPOLEINPLACEACTIVEOBJECT @@ -76963,12 +72645,6 @@ type TIOleInPlaceActiveObjectVtbl = struct { type IOleInPlaceActiveObjectVtbl = TIOleInPlaceActiveObjectVtbl -type TIOleInPlaceActiveObject1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceActiveObject1 = TIOleInPlaceActiveObject1 - type TLPOLEINPLACEFRAME = uintptr type LPOLEINPLACEFRAME = TLPOLEINPLACEFRAME @@ -77029,12 +72705,6 @@ type TIOleInPlaceFrameVtbl = struct { type IOleInPlaceFrameVtbl = TIOleInPlaceFrameVtbl -type TIOleInPlaceFrame1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceFrame1 = TIOleInPlaceFrame1 - type TLPOLEINPLACEOBJECT = uintptr type LPOLEINPLACEOBJECT = TLPOLEINPLACEOBJECT @@ -77053,12 +72723,6 @@ type TIOleInPlaceObjectVtbl = struct { type IOleInPlaceObjectVtbl = TIOleInPlaceObjectVtbl -type TIOleInPlaceObject1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceObject1 = TIOleInPlaceObject1 - type TLPOLEINPLACESITE = uintptr type LPOLEINPLACESITE = TLPOLEINPLACESITE @@ -77083,12 +72747,6 @@ type TIOleInPlaceSiteVtbl = struct { type IOleInPlaceSiteVtbl = TIOleInPlaceSiteVtbl -type TIOleInPlaceSite1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceSite1 = TIOleInPlaceSite1 - type TIContinueVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -77098,12 +72756,6 @@ type TIContinueVtbl = struct { type IContinueVtbl = TIContinueVtbl -type TIContinue1 = struct { - FlpVtbl uintptr -} - -type IContinue1 = TIContinue1 - type TLPVIEWOBJECT = uintptr type LPVIEWOBJECT = TLPVIEWOBJECT @@ -77122,12 +72774,6 @@ type TIViewObjectVtbl = struct { type IViewObjectVtbl = TIViewObjectVtbl -type TIViewObject1 = struct { - FlpVtbl uintptr -} - -type IViewObject1 = TIViewObject1 - type TLPVIEWOBJECT2 = uintptr type LPVIEWOBJECT2 = TLPVIEWOBJECT2 @@ -77147,12 +72793,6 @@ type TIViewObject2Vtbl = struct { type IViewObject2Vtbl = TIViewObject2Vtbl -type TIViewObject21 = struct { - FlpVtbl uintptr -} - -type IViewObject21 = TIViewObject21 - type TLPDROPSOURCE = uintptr type LPDROPSOURCE = TLPDROPSOURCE @@ -77167,12 +72807,6 @@ type TIDropSourceVtbl = struct { type IDropSourceVtbl = TIDropSourceVtbl -type TIDropSource1 = struct { - FlpVtbl uintptr -} - -type IDropSource1 = TIDropSource1 - type TLPDROPTARGET = uintptr type LPDROPTARGET = TLPDROPTARGET @@ -77189,12 +72823,6 @@ type TIDropTargetVtbl = struct { type IDropTargetVtbl = TIDropTargetVtbl -type TIDropTarget1 = struct { - FlpVtbl uintptr -} - -type IDropTarget1 = TIDropTarget1 - type TIDropSourceNotifyVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -77205,12 +72833,6 @@ type TIDropSourceNotifyVtbl = struct { type IDropSourceNotifyVtbl = TIDropSourceNotifyVtbl -type TIDropSourceNotify1 = struct { - FlpVtbl uintptr -} - -type IDropSourceNotify1 = TIDropSourceNotify1 - type TLPENUMOLEVERB = uintptr type LPENUMOLEVERB = TLPENUMOLEVERB @@ -77253,12 +72875,6 @@ type TIEnumOLEVERBVtbl = struct { type IEnumOLEVERBVtbl = TIEnumOLEVERBVtbl -type TIEnumOLEVERB1 = struct { - FlpVtbl uintptr -} - -type IEnumOLEVERB1 = TIEnumOLEVERB1 - type TIServiceProvider = struct { FlpVtbl uintptr } @@ -77278,12 +72894,6 @@ type TIServiceProviderVtbl = struct { type IServiceProviderVtbl = TIServiceProviderVtbl -type TIServiceProvider1 = struct { - FlpVtbl uintptr -} - -type IServiceProvider1 = TIServiceProvider1 - type TICreateTypeInfo = struct { FlpVtbl uintptr } @@ -78201,12 +73811,6 @@ type TICreateTypeInfoVtbl = struct { type ICreateTypeInfoVtbl = TICreateTypeInfoVtbl -type TICreateTypeInfo1 = struct { - FlpVtbl uintptr -} - -type ICreateTypeInfo1 = TICreateTypeInfo1 - type TLPCREATETYPEINFO2 = uintptr type LPCREATETYPEINFO2 = TLPCREATETYPEINFO2 @@ -78257,12 +73861,6 @@ type TICreateTypeInfo2Vtbl = struct { type ICreateTypeInfo2Vtbl = TICreateTypeInfo2Vtbl -type TICreateTypeInfo21 = struct { - FlpVtbl uintptr -} - -type ICreateTypeInfo21 = TICreateTypeInfo21 - type TLPCREATETYPELIB = uintptr type LPCREATETYPELIB = TLPCREATETYPELIB @@ -78285,12 +73883,6 @@ type TICreateTypeLibVtbl = struct { type ICreateTypeLibVtbl = TICreateTypeLibVtbl -type TICreateTypeLib1 = struct { - FlpVtbl uintptr -} - -type ICreateTypeLib1 = TICreateTypeLib1 - type TLPCREATETYPELIB2 = uintptr type LPCREATETYPELIB2 = TLPCREATETYPELIB2 @@ -78317,12 +73909,6 @@ type TICreateTypeLib2Vtbl = struct { type ICreateTypeLib2Vtbl = TICreateTypeLib2Vtbl -type TICreateTypeLib21 = struct { - FlpVtbl uintptr -} - -type ICreateTypeLib21 = TICreateTypeLib21 - type TLPDISPATCH = uintptr type LPDISPATCH = TLPDISPATCH @@ -78339,12 +73925,6 @@ type TIDispatchVtbl = struct { type IDispatchVtbl = TIDispatchVtbl -type TIDispatch1 = struct { - FlpVtbl uintptr -} - -type IDispatch1 = TIDispatch1 - type TLPENUMVARIANT = uintptr type LPENUMVARIANT = TLPENUMVARIANT @@ -78361,12 +73941,6 @@ type TIEnumVARIANTVtbl = struct { type IEnumVARIANTVtbl = TIEnumVARIANTVtbl -type TIEnumVARIANT1 = struct { - FlpVtbl uintptr -} - -type IEnumVARIANT1 = TIEnumVARIANT1 - type TLPTYPECOMP = uintptr type LPTYPECOMP = TLPTYPECOMP @@ -78410,12 +73984,6 @@ type TITypeCompVtbl = struct { type ITypeCompVtbl = TITypeCompVtbl -type TITypeComp1 = struct { - FlpVtbl uintptr -} - -type ITypeComp1 = TITypeComp1 - type TLPTYPEINFO = uintptr type LPTYPEINFO = TLPTYPEINFO @@ -78447,12 +74015,6 @@ type TITypeInfoVtbl = struct { type ITypeInfoVtbl = TITypeInfoVtbl -type TITypeInfo1 = struct { - FlpVtbl uintptr -} - -type ITypeInfo1 = TITypeInfo1 - type TLPTYPEINFO2 = uintptr type LPTYPEINFO2 = TLPTYPEINFO2 @@ -78499,12 +74061,6 @@ type TITypeInfo2Vtbl = struct { type ITypeInfo2Vtbl = TITypeInfo2Vtbl -type TITypeInfo21 = struct { - FlpVtbl uintptr -} - -type ITypeInfo21 = TITypeInfo21 - type TSYSKIND = int32 type SYSKIND = TSYSKIND @@ -78568,12 +74124,6 @@ type TITypeLibVtbl = struct { type ITypeLibVtbl = TITypeLibVtbl -type TITypeLib1 = struct { - FlpVtbl uintptr -} - -type ITypeLib1 = TITypeLib1 - type TLPTYPELIB2 = uintptr type LPTYPELIB2 = TLPTYPELIB2 @@ -78600,12 +74150,6 @@ type TITypeLib2Vtbl = struct { type ITypeLib2Vtbl = TITypeLib2Vtbl -type TITypeLib21 = struct { - FlpVtbl uintptr -} - -type ITypeLib21 = TITypeLib21 - type TLPTYPECHANGEEVENTS = uintptr type LPTYPECHANGEEVENTS = TLPTYPECHANGEEVENTS @@ -78635,12 +74179,6 @@ type TITypeChangeEventsVtbl = struct { type ITypeChangeEventsVtbl = TITypeChangeEventsVtbl -type TITypeChangeEvents1 = struct { - FlpVtbl uintptr -} - -type ITypeChangeEvents1 = TITypeChangeEvents1 - type TLPERRORINFO = uintptr type LPERRORINFO = TLPERRORINFO @@ -78658,12 +74196,6 @@ type TIErrorInfoVtbl = struct { type IErrorInfoVtbl = TIErrorInfoVtbl -type TIErrorInfo1 = struct { - FlpVtbl uintptr -} - -type IErrorInfo1 = TIErrorInfo1 - type TLPCREATEERRORINFO = uintptr type LPCREATEERRORINFO = TLPCREATEERRORINFO @@ -78681,12 +74213,6 @@ type TICreateErrorInfoVtbl = struct { type ICreateErrorInfoVtbl = TICreateErrorInfoVtbl -type TICreateErrorInfo1 = struct { - FlpVtbl uintptr -} - -type ICreateErrorInfo1 = TICreateErrorInfo1 - type TLPSUPPORTERRORINFO = uintptr type LPSUPPORTERRORINFO = TLPSUPPORTERRORINFO @@ -78700,12 +74226,6 @@ type TISupportErrorInfoVtbl = struct { type ISupportErrorInfoVtbl = TISupportErrorInfoVtbl -type TISupportErrorInfo1 = struct { - FlpVtbl uintptr -} - -type ISupportErrorInfo1 = TISupportErrorInfo1 - type TITypeFactoryVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78715,12 +74235,6 @@ type TITypeFactoryVtbl = struct { type ITypeFactoryVtbl = TITypeFactoryVtbl -type TITypeFactory1 = struct { - FlpVtbl uintptr -} - -type ITypeFactory1 = TITypeFactory1 - type TITypeMarshalVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78733,12 +74247,6 @@ type TITypeMarshalVtbl = struct { type ITypeMarshalVtbl = TITypeMarshalVtbl -type TITypeMarshal1 = struct { - FlpVtbl uintptr -} - -type ITypeMarshal1 = TITypeMarshal1 - type TLPRECORDINFO = uintptr type LPRECORDINFO = TLPRECORDINFO @@ -78767,12 +74275,6 @@ type TIRecordInfoVtbl = struct { type IRecordInfoVtbl = TIRecordInfoVtbl -type TIRecordInfo1 = struct { - FlpVtbl uintptr -} - -type IRecordInfo1 = TIRecordInfo1 - type TLPERRORLOG = uintptr type LPERRORLOG = TLPERRORLOG @@ -78786,12 +74288,6 @@ type TIErrorLogVtbl = struct { type IErrorLogVtbl = TIErrorLogVtbl -type TIErrorLog1 = struct { - FlpVtbl uintptr -} - -type IErrorLog1 = TIErrorLog1 - type TLPPROPERTYBAG = uintptr type LPPROPERTYBAG = TLPPROPERTYBAG @@ -78806,12 +74302,6 @@ type TIPropertyBagVtbl = struct { type IPropertyBagVtbl = TIPropertyBagVtbl -type TIPropertyBag1 = struct { - FlpVtbl uintptr -} - -type IPropertyBag1 = TIPropertyBag1 - type TIXMLDOMImplementation = struct { FlpVtbl uintptr } @@ -79050,12 +74540,6 @@ type TIXMLDOMImplementationVtbl = struct { type IXMLDOMImplementationVtbl = TIXMLDOMImplementationVtbl -type TIXMLDOMImplementation1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMImplementation1 = TIXMLDOMImplementation1 - type TIXMLDOMNodeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79104,12 +74588,6 @@ type TIXMLDOMNodeVtbl = struct { type IXMLDOMNodeVtbl = TIXMLDOMNodeVtbl -type TIXMLDOMNode1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMNode1 = TIXMLDOMNode1 - type TIXMLDOMDocumentFragmentVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79158,12 +74636,6 @@ type TIXMLDOMDocumentFragmentVtbl = struct { type IXMLDOMDocumentFragmentVtbl = TIXMLDOMDocumentFragmentVtbl -type TIXMLDOMDocumentFragment1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMDocumentFragment1 = TIXMLDOMDocumentFragment1 - type TIXMLDOMDocumentVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79245,12 +74717,6 @@ type TIXMLDOMDocumentVtbl = struct { type IXMLDOMDocumentVtbl = TIXMLDOMDocumentVtbl -type TIXMLDOMDocument1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMDocument1 = TIXMLDOMDocument1 - type TIXMLDOMNodeListVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79268,12 +74734,6 @@ type TIXMLDOMNodeListVtbl = struct { type IXMLDOMNodeListVtbl = TIXMLDOMNodeListVtbl -type TIXMLDOMNodeList1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMNodeList1 = TIXMLDOMNodeList1 - type TIXMLDOMNamedNodeMapVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79296,12 +74756,6 @@ type TIXMLDOMNamedNodeMapVtbl = struct { type IXMLDOMNamedNodeMapVtbl = TIXMLDOMNamedNodeMapVtbl -type TIXMLDOMNamedNodeMap1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMNamedNodeMap1 = TIXMLDOMNamedNodeMap1 - type TIXMLDOMCharacterDataVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79358,12 +74812,6 @@ type TIXMLDOMCharacterDataVtbl = struct { type IXMLDOMCharacterDataVtbl = TIXMLDOMCharacterDataVtbl -type TIXMLDOMCharacterData1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMCharacterData1 = TIXMLDOMCharacterData1 - type TIXMLDOMAttributeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79415,12 +74863,6 @@ type TIXMLDOMAttributeVtbl = struct { type IXMLDOMAttributeVtbl = TIXMLDOMAttributeVtbl -type TIXMLDOMAttribute1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMAttribute1 = TIXMLDOMAttribute1 - type TIXMLDOMElementVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79478,12 +74920,6 @@ type TIXMLDOMElementVtbl = struct { type IXMLDOMElementVtbl = TIXMLDOMElementVtbl -type TIXMLDOMElement1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMElement1 = TIXMLDOMElement1 - type TIXMLDOMTextVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79541,12 +74977,6 @@ type TIXMLDOMTextVtbl = struct { type IXMLDOMTextVtbl = TIXMLDOMTextVtbl -type TIXMLDOMText1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMText1 = TIXMLDOMText1 - type TIXMLDOMCommentVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79603,12 +75033,6 @@ type TIXMLDOMCommentVtbl = struct { type IXMLDOMCommentVtbl = TIXMLDOMCommentVtbl -type TIXMLDOMComment1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMComment1 = TIXMLDOMComment1 - type TIXMLDOMProcessingInstructionVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79660,12 +75084,6 @@ type TIXMLDOMProcessingInstructionVtbl = struct { type IXMLDOMProcessingInstructionVtbl = TIXMLDOMProcessingInstructionVtbl -type TIXMLDOMProcessingInstruction1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMProcessingInstruction1 = TIXMLDOMProcessingInstruction1 - type TIXMLDOMCDATASectionVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79723,12 +75141,6 @@ type TIXMLDOMCDATASectionVtbl = struct { type IXMLDOMCDATASectionVtbl = TIXMLDOMCDATASectionVtbl -type TIXMLDOMCDATASection1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMCDATASection1 = TIXMLDOMCDATASection1 - type TIXMLDOMDocumentTypeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79780,12 +75192,6 @@ type TIXMLDOMDocumentTypeVtbl = struct { type IXMLDOMDocumentTypeVtbl = TIXMLDOMDocumentTypeVtbl -type TIXMLDOMDocumentType1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMDocumentType1 = TIXMLDOMDocumentType1 - type TIXMLDOMNotationVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79836,12 +75242,6 @@ type TIXMLDOMNotationVtbl = struct { type IXMLDOMNotationVtbl = TIXMLDOMNotationVtbl -type TIXMLDOMNotation1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMNotation1 = TIXMLDOMNotation1 - type TIXMLDOMEntityVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79893,12 +75293,6 @@ type TIXMLDOMEntityVtbl = struct { type IXMLDOMEntityVtbl = TIXMLDOMEntityVtbl -type TIXMLDOMEntity1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMEntity1 = TIXMLDOMEntity1 - type TIXMLDOMEntityReferenceVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79947,12 +75341,6 @@ type TIXMLDOMEntityReferenceVtbl = struct { type IXMLDOMEntityReferenceVtbl = TIXMLDOMEntityReferenceVtbl -type TIXMLDOMEntityReference1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMEntityReference1 = TIXMLDOMEntityReference1 - type TIXMLDOMParseErrorVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79972,12 +75360,6 @@ type TIXMLDOMParseErrorVtbl = struct { type IXMLDOMParseErrorVtbl = TIXMLDOMParseErrorVtbl -type TIXMLDOMParseError1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMParseError1 = TIXMLDOMParseError1 - type TIXTLRuntimeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80035,12 +75417,6 @@ type TIXTLRuntimeVtbl = struct { type IXTLRuntimeVtbl = TIXTLRuntimeVtbl -type TIXTLRuntime1 = struct { - FlpVtbl uintptr -} - -type IXTLRuntime1 = TIXTLRuntime1 - type TXMLDOMDocumentEventsVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80053,12 +75429,6 @@ type TXMLDOMDocumentEventsVtbl = struct { type XMLDOMDocumentEventsVtbl = TXMLDOMDocumentEventsVtbl -type TXMLDOMDocumentEvents1 = struct { - FlpVtbl uintptr -} - -type XMLDOMDocumentEvents1 = TXMLDOMDocumentEvents1 - type TIXMLHttpRequestVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80085,12 +75455,6 @@ type TIXMLHttpRequestVtbl = struct { type IXMLHttpRequestVtbl = TIXMLHttpRequestVtbl -type TIXMLHttpRequest1 = struct { - FlpVtbl uintptr -} - -type IXMLHttpRequest1 = TIXMLHttpRequest1 - type TIXMLDSOControlVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80108,12 +75472,6 @@ type TIXMLDSOControlVtbl = struct { type IXMLDSOControlVtbl = TIXMLDSOControlVtbl -type TIXMLDSOControl1 = struct { - FlpVtbl uintptr -} - -type IXMLDSOControl1 = TIXMLDSOControl1 - type TIXMLElementCollectionVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80130,12 +75488,6 @@ type TIXMLElementCollectionVtbl = struct { type IXMLElementCollectionVtbl = TIXMLElementCollectionVtbl -type TIXMLElementCollection1 = struct { - FlpVtbl uintptr -} - -type IXMLElementCollection1 = TIXMLElementCollection1 - type TIXMLDocumentVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80162,12 +75514,6 @@ type TIXMLDocumentVtbl = struct { type IXMLDocumentVtbl = TIXMLDocumentVtbl -type TIXMLDocument1 = struct { - FlpVtbl uintptr -} - -type IXMLDocument1 = TIXMLDocument1 - type TIXMLDocument2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80196,12 +75542,6 @@ type TIXMLDocument2Vtbl = struct { type IXMLDocument2Vtbl = TIXMLDocument2Vtbl -type TIXMLDocument21 = struct { - FlpVtbl uintptr -} - -type IXMLDocument21 = TIXMLDocument21 - type TIXMLElementVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80226,12 +75566,6 @@ type TIXMLElementVtbl = struct { type IXMLElementVtbl = TIXMLElementVtbl -type TIXMLElement1 = struct { - FlpVtbl uintptr -} - -type IXMLElement1 = TIXMLElement1 - type TIXMLElement2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80257,12 +75591,6 @@ type TIXMLElement2Vtbl = struct { type IXMLElement2Vtbl = TIXMLElement2Vtbl -type TIXMLElement21 = struct { - FlpVtbl uintptr -} - -type IXMLElement21 = TIXMLElement21 - type TIXMLAttributeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80277,12 +75605,6 @@ type TIXMLAttributeVtbl = struct { type IXMLAttributeVtbl = TIXMLAttributeVtbl -type TIXMLAttribute1 = struct { - FlpVtbl uintptr -} - -type IXMLAttribute1 = TIXMLAttribute1 - type TIXMLErrorVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80292,12 +75614,6 @@ type TIXMLErrorVtbl = struct { type IXMLErrorVtbl = TIXMLErrorVtbl -type TIXMLError1 = struct { - FlpVtbl uintptr -} - -type IXMLError1 = TIXMLError1 - type TLPPERSISTMONIKER = uintptr type LPPERSISTMONIKER = TLPPERSISTMONIKER @@ -80316,12 +75632,6 @@ type TIPersistMonikerVtbl = struct { type IPersistMonikerVtbl = TIPersistMonikerVtbl -type TIPersistMoniker1 = struct { - FlpVtbl uintptr -} - -type IPersistMoniker1 = TIPersistMoniker1 - type TLPMONIKERPROP = uintptr type LPMONIKERPROP = TLPMONIKERPROP @@ -80347,12 +75657,6 @@ type TIMonikerPropVtbl = struct { type IMonikerPropVtbl = TIMonikerPropVtbl -type TIMonikerProp1 = struct { - FlpVtbl uintptr -} - -type IMonikerProp1 = TIMonikerProp1 - type TLPBINDPROTOCOL = uintptr type LPBINDPROTOCOL = TLPBINDPROTOCOL @@ -80366,12 +75670,6 @@ type TIBindProtocolVtbl = struct { type IBindProtocolVtbl = TIBindProtocolVtbl -type TIBindProtocol1 = struct { - FlpVtbl uintptr -} - -type IBindProtocol1 = TIBindProtocol1 - type TLPBINDING = uintptr type LPBINDING = TLPBINDING @@ -80390,12 +75688,6 @@ type TIBindingVtbl = struct { type IBindingVtbl = TIBindingVtbl -type TIBinding1 = struct { - FlpVtbl uintptr -} - -type IBinding1 = TIBinding1 - type TLPBINDSTATUSCALLBACK = uintptr type LPBINDSTATUSCALLBACK = TLPBINDSTATUSCALLBACK @@ -80679,12 +75971,6 @@ type TIBindStatusCallbackVtbl = struct { type IBindStatusCallbackVtbl = TIBindStatusCallbackVtbl -type TIBindStatusCallback1 = struct { - FlpVtbl uintptr -} - -type IBindStatusCallback1 = TIBindStatusCallback1 - type TLPBINDSTATUSCALLBACKEX = uintptr type LPBINDSTATUSCALLBACKEX = TLPBINDSTATUSCALLBACKEX @@ -80736,12 +76022,6 @@ type TIBindStatusCallbackExVtbl = struct { type IBindStatusCallbackExVtbl = TIBindStatusCallbackExVtbl -type TIBindStatusCallbackEx1 = struct { - FlpVtbl uintptr -} - -type IBindStatusCallbackEx1 = TIBindStatusCallbackEx1 - type TLPAUTHENTICATION = uintptr type LPAUTHENTICATION = TLPAUTHENTICATION @@ -80755,12 +76035,6 @@ type TIAuthenticateVtbl = struct { type IAuthenticateVtbl = TIAuthenticateVtbl -type TIAuthenticate1 = struct { - FlpVtbl uintptr -} - -type IAuthenticate1 = TIAuthenticate1 - type TLPAUTHENTICATIONEX = uintptr type LPAUTHENTICATIONEX = TLPAUTHENTICATIONEX @@ -80796,12 +76070,6 @@ type TIAuthenticateExVtbl = struct { type IAuthenticateExVtbl = TIAuthenticateExVtbl -type TIAuthenticateEx1 = struct { - FlpVtbl uintptr -} - -type IAuthenticateEx1 = TIAuthenticateEx1 - type TLPHTTPNEGOTIATE = uintptr type LPHTTPNEGOTIATE = TLPHTTPNEGOTIATE @@ -80816,12 +76084,6 @@ type TIHttpNegotiateVtbl = struct { type IHttpNegotiateVtbl = TIHttpNegotiateVtbl -type TIHttpNegotiate1 = struct { - FlpVtbl uintptr -} - -type IHttpNegotiate1 = TIHttpNegotiate1 - type TLPHTTPNEGOTIATE2 = uintptr type LPHTTPNEGOTIATE2 = TLPHTTPNEGOTIATE2 @@ -80837,12 +76099,6 @@ type TIHttpNegotiate2Vtbl = struct { type IHttpNegotiate2Vtbl = TIHttpNegotiate2Vtbl -type TIHttpNegotiate21 = struct { - FlpVtbl uintptr -} - -type IHttpNegotiate21 = TIHttpNegotiate21 - type TLPHTTPNEGOTIATE3 = uintptr type LPHTTPNEGOTIATE3 = TLPHTTPNEGOTIATE3 @@ -80859,12 +76115,6 @@ type TIHttpNegotiate3Vtbl = struct { type IHttpNegotiate3Vtbl = TIHttpNegotiate3Vtbl -type TIHttpNegotiate31 = struct { - FlpVtbl uintptr -} - -type IHttpNegotiate31 = TIHttpNegotiate31 - type TLPWININETFILESTREAM = uintptr type LPWININETFILESTREAM = TLPWININETFILESTREAM @@ -80879,12 +76129,6 @@ type TIWinInetFileStreamVtbl = struct { type IWinInetFileStreamVtbl = TIWinInetFileStreamVtbl -type TIWinInetFileStream1 = struct { - FlpVtbl uintptr -} - -type IWinInetFileStream1 = TIWinInetFileStream1 - type TLPWINDOWFORBINDINGUI = uintptr type LPWINDOWFORBINDINGUI = TLPWINDOWFORBINDINGUI @@ -80898,12 +76142,6 @@ type TIWindowForBindingUIVtbl = struct { type IWindowForBindingUIVtbl = TIWindowForBindingUIVtbl -type TIWindowForBindingUI1 = struct { - FlpVtbl uintptr -} - -type IWindowForBindingUI1 = TIWindowForBindingUI1 - type TLPCODEINSTALL = uintptr type LPCODEINSTALL = TLPCODEINSTALL @@ -80935,12 +76173,6 @@ type TICodeInstallVtbl = struct { type ICodeInstallVtbl = TICodeInstallVtbl -type TICodeInstall1 = struct { - FlpVtbl uintptr -} - -type ICodeInstall1 = TICodeInstall1 - type TUri_PROPERTY = int32 type Uri_PROPERTY = TUri_PROPERTY @@ -81016,12 +76248,6 @@ type TIUriVtbl = struct { type IUriVtbl = TIUriVtbl -type TIUri1 = struct { - FlpVtbl uintptr -} - -type IUri1 = TIUri1 - type TIUriContainerVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81031,12 +76257,6 @@ type TIUriContainerVtbl = struct { type IUriContainerVtbl = TIUriContainerVtbl -type TIUriContainer1 = struct { - FlpVtbl uintptr -} - -type IUriContainer1 = TIUriContainer1 - type TIUriBuilderVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81068,12 +76288,6 @@ type TIUriBuilderVtbl = struct { type IUriBuilderVtbl = TIUriBuilderVtbl -type TIUriBuilder1 = struct { - FlpVtbl uintptr -} - -type IUriBuilder1 = TIUriBuilder1 - type TIUriBuilderFactoryVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81084,12 +76298,6 @@ type TIUriBuilderFactoryVtbl = struct { type IUriBuilderFactoryVtbl = TIUriBuilderFactoryVtbl -type TIUriBuilderFactory1 = struct { - FlpVtbl uintptr -} - -type IUriBuilderFactory1 = TIUriBuilderFactory1 - type TLPWININETINFO = uintptr type LPWININETINFO = TLPWININETINFO @@ -81103,12 +76311,6 @@ type TIWinInetInfoVtbl = struct { type IWinInetInfoVtbl = TIWinInetInfoVtbl -type TIWinInetInfo1 = struct { - FlpVtbl uintptr -} - -type IWinInetInfo1 = TIWinInetInfo1 - type TLPHTTPSECURITY = uintptr type LPHTTPSECURITY = TLPHTTPSECURITY @@ -81123,12 +76325,6 @@ type TIHttpSecurityVtbl = struct { type IHttpSecurityVtbl = TIHttpSecurityVtbl -type TIHttpSecurity1 = struct { - FlpVtbl uintptr -} - -type IHttpSecurity1 = TIHttpSecurity1 - type TLPWININETHTTPINFO = uintptr type LPWININETHTTPINFO = TLPWININETHTTPINFO @@ -81143,12 +76339,6 @@ type TIWinInetHttpInfoVtbl = struct { type IWinInetHttpInfoVtbl = TIWinInetHttpInfoVtbl -type TIWinInetHttpInfo1 = struct { - FlpVtbl uintptr -} - -type IWinInetHttpInfo1 = TIWinInetHttpInfo1 - type TIWinInetHttpTimeoutsVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81158,12 +76348,6 @@ type TIWinInetHttpTimeoutsVtbl = struct { type IWinInetHttpTimeoutsVtbl = TIWinInetHttpTimeoutsVtbl -type TIWinInetHttpTimeouts1 = struct { - FlpVtbl uintptr -} - -type IWinInetHttpTimeouts1 = TIWinInetHttpTimeouts1 - type TLPWININETCACHEHINTS = uintptr type LPWININETCACHEHINTS = TLPWININETCACHEHINTS @@ -81177,12 +76361,6 @@ type TIWinInetCacheHintsVtbl = struct { type IWinInetCacheHintsVtbl = TIWinInetCacheHintsVtbl -type TIWinInetCacheHints1 = struct { - FlpVtbl uintptr -} - -type IWinInetCacheHints1 = TIWinInetCacheHints1 - type TLPWININETCACHEHINTS2 = uintptr type LPWININETCACHEHINTS2 = TLPWININETCACHEHINTS2 @@ -81197,12 +76375,6 @@ type TIWinInetCacheHints2Vtbl = struct { type IWinInetCacheHints2Vtbl = TIWinInetCacheHints2Vtbl -type TIWinInetCacheHints21 = struct { - FlpVtbl uintptr -} - -type IWinInetCacheHints21 = TIWinInetCacheHints21 - type TLPBINDHOST = uintptr type LPBINDHOST = TLPBINDHOST @@ -81218,12 +76390,6 @@ type TIBindHostVtbl = struct { type IBindHostVtbl = TIBindHostVtbl -type TIBindHost1 = struct { - FlpVtbl uintptr -} - -type IBindHost1 = TIBindHost1 - type TLPIINTERNET = uintptr type LPIINTERNET = TLPIINTERNET @@ -81236,12 +76402,6 @@ type TIInternetVtbl = struct { type IInternetVtbl = TIInternetVtbl -type TIInternet1 = struct { - FlpVtbl uintptr -} - -type IInternet1 = TIInternet1 - type TLPIINTERNETBINDINFO = uintptr type LPIINTERNETBINDINFO = TLPIINTERNETBINDINFO @@ -81286,12 +76446,6 @@ type TIInternetBindInfoVtbl = struct { type IInternetBindInfoVtbl = TIInternetBindInfoVtbl -type TIInternetBindInfo1 = struct { - FlpVtbl uintptr -} - -type IInternetBindInfo1 = TIInternetBindInfo1 - type TLPIINTERNETBINDINFOEX = uintptr type LPIINTERNETBINDINFOEX = TLPIINTERNETBINDINFOEX @@ -81307,12 +76461,6 @@ type TIInternetBindInfoExVtbl = struct { type IInternetBindInfoExVtbl = TIInternetBindInfoExVtbl -type TIInternetBindInfoEx1 = struct { - FlpVtbl uintptr -} - -type IInternetBindInfoEx1 = TIInternetBindInfoEx1 - type TLPIINTERNETPROTOCOLROOT = uintptr type LPIINTERNETPROTOCOLROOT = TLPIINTERNETPROTOCOLROOT @@ -81378,12 +76526,6 @@ type TIInternetProtocolRootVtbl = struct { type IInternetProtocolRootVtbl = TIInternetProtocolRootVtbl -type TIInternetProtocolRoot1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolRoot1 = TIInternetProtocolRoot1 - type TLPIINTERNETPROTOCOL = uintptr type LPIINTERNETPROTOCOL = TLPIINTERNETPROTOCOL @@ -81406,12 +76548,6 @@ type TIInternetProtocolVtbl = struct { type IInternetProtocolVtbl = TIInternetProtocolVtbl -type TIInternetProtocol1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocol1 = TIInternetProtocol1 - type TIInternetProtocolExVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81431,12 +76567,6 @@ type TIInternetProtocolExVtbl = struct { type IInternetProtocolExVtbl = TIInternetProtocolExVtbl -type TIInternetProtocolEx1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolEx1 = TIInternetProtocolEx1 - type TLPIINTERNETPROTOCOLSINK = uintptr type LPIINTERNETPROTOCOLSINK = TLPIINTERNETPROTOCOLSINK @@ -81453,12 +76583,6 @@ type TIInternetProtocolSinkVtbl = struct { type IInternetProtocolSinkVtbl = TIInternetProtocolSinkVtbl -type TIInternetProtocolSink1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolSink1 = TIInternetProtocolSink1 - type TLPIINTERNETPROTOCOLSINKStackable = uintptr type LPIINTERNETPROTOCOLSINKStackable = TLPIINTERNETPROTOCOLSINKStackable @@ -81474,12 +76598,6 @@ type TIInternetProtocolSinkStackableVtbl = struct { type IInternetProtocolSinkStackableVtbl = TIInternetProtocolSinkStackableVtbl -type TIInternetProtocolSinkStackable1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolSinkStackable1 = TIInternetProtocolSinkStackable1 - type TLPIINTERNETSESSION = uintptr type LPIINTERNETSESSION = TLPIINTERNETSESSION @@ -81508,12 +76626,6 @@ type TIInternetSessionVtbl = struct { type IInternetSessionVtbl = TIInternetSessionVtbl -type TIInternetSession1 = struct { - FlpVtbl uintptr -} - -type IInternetSession1 = TIInternetSession1 - type TLPIINTERNETTHREADSWITCH = uintptr type LPIINTERNETTHREADSWITCH = TLPIINTERNETTHREADSWITCH @@ -81528,12 +76640,6 @@ type TIInternetThreadSwitchVtbl = struct { type IInternetThreadSwitchVtbl = TIInternetThreadSwitchVtbl -type TIInternetThreadSwitch1 = struct { - FlpVtbl uintptr -} - -type IInternetThreadSwitch1 = TIInternetThreadSwitch1 - type TLPIINTERNETPRIORITY = uintptr type LPIINTERNETPRIORITY = TLPIINTERNETPRIORITY @@ -81548,12 +76654,6 @@ type TIInternetPriorityVtbl = struct { type IInternetPriorityVtbl = TIInternetPriorityVtbl -type TIInternetPriority1 = struct { - FlpVtbl uintptr -} - -type IInternetPriority1 = TIInternetPriority1 - type TLPIINTERNETPROTOCOLINFO = uintptr type LPIINTERNETPROTOCOLINFO = TLPIINTERNETPROTOCOLINFO @@ -81628,12 +76728,6 @@ type TIInternetProtocolInfoVtbl = struct { type IInternetProtocolInfoVtbl = TIInternetProtocolInfoVtbl -type TIInternetProtocolInfo1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolInfo1 = TIInternetProtocolInfo1 - type TINTERNETFEATURELIST = int32 type INTERNETFEATURELIST = TINTERNETFEATURELIST @@ -81680,12 +76774,6 @@ type TIInternetSecurityMgrSiteVtbl = struct { type IInternetSecurityMgrSiteVtbl = TIInternetSecurityMgrSiteVtbl -type TIInternetSecurityMgrSite1 = struct { - FlpVtbl uintptr -} - -type IInternetSecurityMgrSite1 = TIInternetSecurityMgrSite1 - type TPUAF = int32 type PUAF = TPUAF @@ -81748,12 +76836,6 @@ type TIInternetSecurityManagerVtbl = struct { type IInternetSecurityManagerVtbl = TIInternetSecurityManagerVtbl -type TIInternetSecurityManager1 = struct { - FlpVtbl uintptr -} - -type IInternetSecurityManager1 = TIInternetSecurityManager1 - type TIInternetSecurityManagerExVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81771,12 +76853,6 @@ type TIInternetSecurityManagerExVtbl = struct { type IInternetSecurityManagerExVtbl = TIInternetSecurityManagerExVtbl -type TIInternetSecurityManagerEx1 = struct { - FlpVtbl uintptr -} - -type IInternetSecurityManagerEx1 = TIInternetSecurityManagerEx1 - type TIInternetSecurityManagerEx2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81798,12 +76874,6 @@ type TIInternetSecurityManagerEx2Vtbl = struct { type IInternetSecurityManagerEx2Vtbl = TIInternetSecurityManagerEx2Vtbl -type TIInternetSecurityManagerEx21 = struct { - FlpVtbl uintptr -} - -type IInternetSecurityManagerEx21 = TIInternetSecurityManagerEx21 - type TIZoneIdentifierVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81815,12 +76885,6 @@ type TIZoneIdentifierVtbl = struct { type IZoneIdentifierVtbl = TIZoneIdentifierVtbl -type TIZoneIdentifier1 = struct { - FlpVtbl uintptr -} - -type IZoneIdentifier1 = TIZoneIdentifier1 - type TIInternetHostSecurityManagerVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81832,12 +76896,6 @@ type TIInternetHostSecurityManagerVtbl = struct { type IInternetHostSecurityManagerVtbl = TIInternetHostSecurityManagerVtbl -type TIInternetHostSecurityManager1 = struct { - FlpVtbl uintptr -} - -type IInternetHostSecurityManager1 = TIInternetHostSecurityManager1 - type TLPURLZONEMANAGER = uintptr type LPURLZONEMANAGER = TLPURLZONEMANAGER @@ -81946,12 +77004,6 @@ type TIInternetZoneManagerVtbl = struct { type IInternetZoneManagerVtbl = TIInternetZoneManagerVtbl -type TIInternetZoneManager1 = struct { - FlpVtbl uintptr -} - -type IInternetZoneManager1 = TIInternetZoneManager1 - type TIInternetZoneManagerExVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81974,12 +77026,6 @@ type TIInternetZoneManagerExVtbl = struct { type IInternetZoneManagerExVtbl = TIInternetZoneManagerExVtbl -type TIInternetZoneManagerEx1 = struct { - FlpVtbl uintptr -} - -type IInternetZoneManagerEx1 = TIInternetZoneManagerEx1 - type TIInternetZoneManagerEx2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -82006,12 +77052,6 @@ type TIInternetZoneManagerEx2Vtbl = struct { type IInternetZoneManagerEx2Vtbl = TIInternetZoneManagerEx2Vtbl -type TIInternetZoneManagerEx21 = struct { - FlpVtbl uintptr -} - -type IInternetZoneManagerEx21 = TIInternetZoneManagerEx21 - type TCODEBASEHOLD = struct { FcbSize TULONG FszDistUnit TLPWSTR @@ -82069,12 +77109,6 @@ type TISoftDistExtVtbl = struct { type ISoftDistExtVtbl = TISoftDistExtVtbl -type TISoftDistExt1 = struct { - FlpVtbl uintptr -} - -type ISoftDistExt1 = TISoftDistExt1 - type TLPCATALOGFILEINFO = uintptr type LPCATALOGFILEINFO = TLPCATALOGFILEINFO @@ -82089,12 +77123,6 @@ type TICatalogFileInfoVtbl = struct { type ICatalogFileInfoVtbl = TICatalogFileInfoVtbl -type TICatalogFileInfo1 = struct { - FlpVtbl uintptr -} - -type ICatalogFileInfo1 = TICatalogFileInfo1 - type TLPDATAFILTER = uintptr type LPDATAFILTER = TLPDATAFILTER @@ -82110,12 +77138,6 @@ type TIDataFilterVtbl = struct { type IDataFilterVtbl = TIDataFilterVtbl -type TIDataFilter1 = struct { - FlpVtbl uintptr -} - -type IDataFilter1 = TIDataFilter1 - type TPROTOCOLFILTERDATA = struct { FcbSize TDWORD FpProtocolSink uintptr @@ -82157,12 +77179,6 @@ type TIEncodingFilterFactoryVtbl = struct { type IEncodingFilterFactoryVtbl = TIEncodingFilterFactoryVtbl -type TIEncodingFilterFactory1 = struct { - FlpVtbl uintptr -} - -type IEncodingFilterFactory1 = TIEncodingFilterFactory1 - type THIT_LOGGING_INFO = struct { FdwStructSize TDWORD FlpszLoggedUrlName TLPSTR @@ -82202,12 +77218,6 @@ type TIWrappedProtocolVtbl = struct { type IWrappedProtocolVtbl = TIWrappedProtocolVtbl -type TIWrappedProtocol1 = struct { - FlpVtbl uintptr -} - -type IWrappedProtocol1 = TIWrappedProtocol1 - type TLPGETBINDHANDLE = uintptr type LPGETBINDHANDLE = TLPGETBINDHANDLE @@ -82231,12 +77241,6 @@ type TIGetBindHandleVtbl = struct { type IGetBindHandleVtbl = TIGetBindHandleVtbl -type TIGetBindHandle1 = struct { - FlpVtbl uintptr -} - -type IGetBindHandle1 = TIGetBindHandle1 - type TPROTOCOL_ARGUMENT = struct { FszMethod TLPCWSTR FszTargetUrl TLPCWSTR @@ -82265,12 +77269,6 @@ type TIBindCallbackRedirectVtbl = struct { type IBindCallbackRedirectVtbl = TIBindCallbackRedirectVtbl -type TIBindCallbackRedirect1 = struct { - FlpVtbl uintptr -} - -type IBindCallbackRedirect1 = TIBindCallbackRedirect1 - type TIPropertyStorage = struct { FlpVtbl uintptr } @@ -82644,12 +77642,6 @@ type TIPropertyStorageVtbl = struct { type IPropertyStorageVtbl = TIPropertyStorageVtbl -type TIPropertyStorage1 = struct { - FlpVtbl uintptr -} - -type IPropertyStorage1 = TIPropertyStorage1 - type TLPPROPERTYSETSTORAGE = uintptr type LPPROPERTYSETSTORAGE = TLPPROPERTYSETSTORAGE @@ -82666,12 +77658,6 @@ type TIPropertySetStorageVtbl = struct { type IPropertySetStorageVtbl = TIPropertySetStorageVtbl -type TIPropertySetStorage1 = struct { - FlpVtbl uintptr -} - -type IPropertySetStorage1 = TIPropertySetStorage1 - type TLPENUMSTATPROPSTG = uintptr type LPENUMSTATPROPSTG = TLPENUMSTATPROPSTG @@ -82688,12 +77674,6 @@ type TIEnumSTATPROPSTGVtbl = struct { type IEnumSTATPROPSTGVtbl = TIEnumSTATPROPSTGVtbl -type TIEnumSTATPROPSTG1 = struct { - FlpVtbl uintptr -} - -type IEnumSTATPROPSTG1 = TIEnumSTATPROPSTG1 - type TLPENUMSTATPROPSETSTG = uintptr type LPENUMSTATPROPSETSTG = TLPENUMSTATPROPSETSTG @@ -82710,12 +77690,6 @@ type TIEnumSTATPROPSETSTGVtbl = struct { type IEnumSTATPROPSETSTGVtbl = TIEnumSTATPROPSETSTGVtbl -type TIEnumSTATPROPSETSTG1 = struct { - FlpVtbl uintptr -} - -type IEnumSTATPROPSETSTG1 = TIEnumSTATPROPSETSTG1 - type TLPPROPERTYSTORAGE = uintptr type LPPROPERTYSTORAGE = TLPPROPERTYSTORAGE @@ -83123,16 +78097,6 @@ type TPSTORAGE_BREAK_RESERVATION_REQUEST = uintptr type PSTORAGE_BREAK_RESERVATION_REQUEST = TPSTORAGE_BREAK_RESERVATION_REQUEST -type TSTORAGE_BREAK_RESERVATION_REQUEST1 = struct { - FLength TDWORD - F_unused TBYTE - FPathId TBYTE - FTargetId TBYTE - FLun TBYTE -} - -type STORAGE_BREAK_RESERVATION_REQUEST1 = TSTORAGE_BREAK_RESERVATION_REQUEST1 - type TPREVENT_MEDIA_REMOVAL = struct { FPreventMediaRemoval TBOOLEAN } @@ -84695,17 +79659,6 @@ type TPRETRIEVAL_POINTERS_BUFFER = uintptr type PRETRIEVAL_POINTERS_BUFFER = TPRETRIEVAL_POINTERS_BUFFER -type TRETRIEVAL_POINTERS_BUFFER1 = struct { - FExtentCount TDWORD - FStartingVcn TLARGE_INTEGER - FExtents [1]struct { - FNextVcn TLARGE_INTEGER - FLcn TLARGE_INTEGER - } -} - -type RETRIEVAL_POINTERS_BUFFER1 = TRETRIEVAL_POINTERS_BUFFER1 - type TNTFS_FILE_RECORD_INPUT_BUFFER = struct { FFileReferenceNumber TLARGE_INTEGER } @@ -91148,17 +86101,6 @@ type TIPrintDialogCallbackVtbl = struct { type IPrintDialogCallbackVtbl = TIPrintDialogCallbackVtbl -type TIPrintDialogCallbackVtbl1 = struct { - FQueryInterface uintptr - FAddRef uintptr - FRelease uintptr - FInitDone uintptr - FSelectionChange uintptr - FHandleMessage uintptr -} - -type IPrintDialogCallbackVtbl1 = TIPrintDialogCallbackVtbl1 - type TIPrintDialogServices = struct { FlpVtbl uintptr } @@ -91176,17 +86118,6 @@ type TIPrintDialogServicesVtbl = struct { type IPrintDialogServicesVtbl = TIPrintDialogServicesVtbl -type TIPrintDialogServicesVtbl1 = struct { - FQueryInterface uintptr - FAddRef uintptr - FRelease uintptr - FGetCurrentDevMode uintptr - FGetCurrentPrinterName uintptr - FGetCurrentPortName uintptr -} - -type IPrintDialogServicesVtbl1 = TIPrintDialogServicesVtbl1 - type TPRINTPAGERANGE = struct { FnFromPage TDWORD FnToPage TDWORD @@ -92617,6 +87548,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -92624,8 +87557,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -96005,17 +90938,6 @@ type T_tls_callback_type = uintptr type _tls_callback_type = T_tls_callback_type -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid uintptr - Fid uint32 - FxTask uintptr - FpIn uintptr - FpResult uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Thread procedure Win32 compatibility shim */ @@ -96031,7 +90953,7 @@ func _sqlite3ThreadProc(tls *libc.TLS, pArg uintptr) (r uint32) { // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr _ = p *(*uintptr)(unsafe.Pointer(ppThread)) = uintptr(0) @@ -96047,7 +90969,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if int32(_sqlite3Config.FbCoreMutex) == 0 || _sqlite3FaultSim(tls, int32(200)) != 0 { libc.Xmemset(tls, p, 0, uint64(40)) } else { - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn (*TSQLiteThread)(unsafe.Pointer(p)).Ftid = uintptr(libc.X_beginthreadex(tls, uintptr(0), uint32(0), __ccgo_fp(_sqlite3ThreadProc), p, uint32(0), p+8)) if (*TSQLiteThread)(unsafe.Pointer(p)).Ftid == uintptr(0) { @@ -96056,7 +90978,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui } if (*TSQLiteThread)(unsafe.Pointer(p)).FxTask == uintptr(0) { (*TSQLiteThread)(unsafe.Pointer(p)).Fid = uint32(libc.XGetCurrentThreadId(tls)) - (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -99786,26 +94708,6 @@ type TwinFile = struct { type winFile = TwinFile -type TwinFile1 = struct { - FpMethod uintptr - FpVfs uintptr - Fh THANDLE - Flocktype Tu8 - FsharedLockByte int16 - FctrlFlags Tu8 - FlastErrno TDWORD - FpShm uintptr - FzPath uintptr - FszChunk int32 - FnFetchOut int32 - FhMap THANDLE - FpMapRegion uintptr - FmmapSize Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 -} - -type winFile1 = TwinFile1 - // C documentation // // /* @@ -99820,14 +94722,6 @@ type TwinVfsAppData = struct { type winVfsAppData = TwinVfsAppData -type TwinVfsAppData1 = struct { - FpMethod uintptr - FpAppData uintptr - FbNoLock TBOOL -} - -type winVfsAppData1 = TwinVfsAppData1 - /* ** Allowed values for winFile.ctrlFlags */ @@ -100235,7 +95129,7 @@ func init() { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _winSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _winSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -100273,10 +95167,10 @@ func _winSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -101083,7 +95977,7 @@ func _winSeekFile(tls *libc.TLS, pFile uintptr, iOffset Tsqlite3_int64) (r int32 rc = _winHandleSeek(tls, (*TwinFile)(unsafe.Pointer(pFile)).Fh, iOffset) if rc != SQLITE_OK { (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls) - _winLogErrorAtLine(tls, rc, (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+4933, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(49990)) + _winLogErrorAtLine(tls, rc, (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+4933, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(49992)) } return rc } @@ -101131,7 +96025,7 @@ func _winClose(tls *libc.TLS, id uintptr) (r int32) { if rc != 0 { v5 = SQLITE_OK } else { - v5 = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< 0 { @@ -101396,7 +96290,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) { @@ -101961,49 +96855,6 @@ func _winShmLeaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _winBigLock) } -/* -** Object used to represent a single file opened and mmapped to provide -** shared memory. When multiple threads all reference the same -** log-summary, each thread has its own winFile object, but they all -** point to a single instance of this object. In other words, each -** log-summary is opened only once per process. -** -** winShmMutexHeld() must be true when creating or destroying -** this object or while reading or writing the following fields: -** -** nRef -** pNext -** -** The following fields are read-only after the object is created: -** -** zFilename -** -** Either winShmNode.mutex must be held or winShmNode.nRef==0 and -** winShmMutexHeld() is true when reading or writing any other field -** in this structure. -** -** File-handle hSharedShm is used to (a) take the DMS lock, (b) truncate -** the *-shm file if the DMS-locking protocol demands it, and (c) map -** regions of the *-shm file into memory using MapViewOfFile() or -** similar. Other locks are taken by individual clients using the -** winShm.hShm handles. - */ -type TwinShmNode1 = struct { - Fmutex uintptr - FzFilename uintptr - FhSharedShm THANDLE - FisUnlocked int32 - FisReadonly int32 - FszRegion int32 - FnRegion int32 - FaRegion uintptr - FlastErrno TDWORD - FnRef int32 - FpNext uintptr -} - -type winShmNode1 = TwinShmNode1 - // C documentation // // /* @@ -102013,21 +96864,6 @@ type winShmNode1 = TwinShmNode1 // */ var _winShmNodeList = uintptr(0) -/* -** Structure used internally by this VFS to record the state of an -** open shared memory connection. There is one such structure for each -** winFile open on a wal mode database. - */ -type TwinShm1 = struct { - FpShmNode uintptr - FsharedMask Tu16 - FexclMask Tu16 - FhShm THANDLE - FbReadonly int32 -} - -type winShm1 = TwinShm1 - // C documentation // // /* @@ -102215,7 +97051,7 @@ func _winHandleOpen(tls *libc.TLS, zUtf8 uintptr, pbReadonly uintptr, ph uintptr *(*int32)(unsafe.Pointer(bp)) = int32(1) rc = _winHandleOpen(tls, zUtf8, bp, bp+8) } else { - rc = _sqlite3CantopenError(tls, int32(51497)) + rc = _sqlite3CantopenError(tls, int32(51499)) } } goto winopenfile_out @@ -102261,7 +97097,7 @@ func _winOpenSharedMemory(tls *libc.TLS, pDbFd uintptr) (r int32) { /* Open a file-handle on the *-shm file for this connection. This file-handle ** is only used for locking. The mapping of the *-shm file is created using ** the shared file handle in winShmNode.hSharedShm. */ - (*TwinShm1)(unsafe.Pointer(p)).FbReadonly = Xsqlite3_uri_boolean(tls, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, __ccgo_ts+5073, 0) + (*TwinShm)(unsafe.Pointer(p)).FbReadonly = Xsqlite3_uri_boolean(tls, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, __ccgo_ts+5073, 0) rc = _winHandleOpen(tls, (*TwinShmNode)(unsafe.Pointer(pNew)).FzFilename, p+24, p+16) /* Look to see if there is an existing winShmNode that can be used. ** If no matching winShmNode currently exists, then create a new one. */ @@ -102293,7 +97129,7 @@ func _winOpenSharedMemory(tls *libc.TLS, pDbFd uintptr) (r int32) { /* Open a file-handle to use for mappings, and for the DMS lock. */ if rc == SQLITE_OK { *(*THANDLE)(unsafe.Pointer(bp)) = uintptr(int64(-libc.Int32FromInt32(1))) - (*TwinShmNode)(unsafe.Pointer(pShmNode)).FisReadonly = (*TwinShm1)(unsafe.Pointer(p)).FbReadonly + (*TwinShmNode)(unsafe.Pointer(pShmNode)).FisReadonly = (*TwinShm)(unsafe.Pointer(p)).FbReadonly rc = _winHandleOpen(tls, (*TwinShmNode)(unsafe.Pointer(pNew)).FzFilename, pShmNode+28, bp) (*TwinShmNode)(unsafe.Pointer(pShmNode)).FhSharedShm = *(*THANDLE)(unsafe.Pointer(bp)) } @@ -102313,12 +97149,12 @@ func _winOpenSharedMemory(tls *libc.TLS, pDbFd uintptr) (r int32) { /* If no error has occurred, link the winShm object to the winShmNode and ** the winShm to pDbFd. */ if rc == SQLITE_OK { - (*TwinShm1)(unsafe.Pointer(p)).FpShmNode = pShmNode + (*TwinShm)(unsafe.Pointer(p)).FpShmNode = pShmNode (*TwinShmNode)(unsafe.Pointer(pShmNode)).FnRef++ (*TwinFile)(unsafe.Pointer(pDbFd)).FpShm = p } else { if p != 0 { - _winHandleClose(tls, (*TwinShm1)(unsafe.Pointer(p)).FhShm) + _winHandleClose(tls, (*TwinShm)(unsafe.Pointer(p)).FhShm) Xsqlite3_free(tls, p) } } @@ -102507,7 +97343,7 @@ func _winShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, isWrit */ rc = _winHandleSize(tls, hShared, bp) if rc != SQLITE_OK { - rc = _winLogErrorAtLine(tls, rc, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+5086, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, int32(51823)) + rc = _winLogErrorAtLine(tls, rc, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+5086, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, int32(51825)) goto shmpage_out } if *(*Tsqlite3_int64)(unsafe.Pointer(bp)) < int64(nByte) { @@ -102521,7 +97357,7 @@ func _winShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, isWrit } rc = _winHandleTruncate(tls, hShared, int64(nByte)) if rc != SQLITE_OK { - rc = _winLogErrorAtLine(tls, rc, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+5097, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, int32(51836)) + rc = _winLogErrorAtLine(tls, rc, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+5097, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, int32(51838)) goto shmpage_out } } @@ -102547,7 +97383,7 @@ func _winShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, isWrit } if !(pMap != 0) { (*TwinShmNode)(unsafe.Pointer(pShmNode)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls) - rc = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(21)<>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+5179, uintptr(0), int32(52321)) + return _winLogErrorAtLine(tls, int32(SQLITE_ERROR), uint32(0), __ccgo_ts+5179, uintptr(0), int32(52323)) } Xsqlite3_snprintf(tls, int32(nMax), zBuf, __ccgo_ts+4829, libc.VaList(bp+8, Xsqlite3_temp_directory)) } @@ -102940,7 +97776,7 @@ 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(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+5243, uintptr(0), int32(52458)) + return _winLogErrorAtLine(tls, int32(SQLITE_ERROR), uint32(0), __ccgo_ts+5243, uintptr(0), int32(52460)) } Xsqlite3_snprintf(tls, int32(nBuf-int64(16)-nLen), zBuf+uintptr(nLen), __ccgo_ts+5171, 0) j = uint64(_sqlite3Strlen30(tls, zBuf)) @@ -103201,7 +98037,7 @@ func _winOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, id uintptr, flags int3 } } } - _winLogIoerr(tls, *(*int32)(unsafe.Pointer(bp + 4)), int32(52757)) + _winLogIoerr(tls, *(*int32)(unsafe.Pointer(bp + 4)), int32(52759)) if h == uintptr(int64(-libc.Int32FromInt32(1))) { Xsqlite3_free(tls, zConverted) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 16))) @@ -103209,8 +98045,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+5269, zUtf8Name, int32(52772)) - return _sqlite3CantopenError(tls, int32(52773)) + _winLogErrorAtLine(tls, int32(SQLITE_CANTOPEN), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+5269, zUtf8Name, int32(52774)) + return _sqlite3CantopenError(tls, int32(52775)) } } if pOutFlags != 0 { @@ -103331,9 +98167,9 @@ func _winDelete(tls *libc.TLS, pVfs uintptr, zFilename uintptr, syncDir int32) ( } } if rc != 0 && rc != libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(23)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][124]Tu32 - FapSub [0][62]uintptr - FaBitmap [496]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -105454,66 +100121,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -105687,14 +100294,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint64(80)) (*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)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -106510,123 +101117,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -107823,25 +102313,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -108803,258 +103274,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]int8 - FnMmapOut int32 - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -109153,7 +103372,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -111638,7 +105857,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -111829,10 +106048,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 232 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -112733,7 +106952,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -112808,7 +107027,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -113030,7 +107249,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -113286,7 +107505,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -113461,7 +107680,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -113492,7 +107711,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -113564,7 +107783,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+8) @@ -114921,7 +109140,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 52 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -115770,232 +109989,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -116014,29 +110007,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - F__ccgo_align [0]uint64 - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -116465,14 +110435,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -116639,7 +110601,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -116727,7 +110689,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -117307,10 +111269,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -117408,7 +111370,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -117447,7 +111409,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -117460,7 +111422,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -117476,7 +111438,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -117497,7 +111459,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -117563,7 +111525,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -117861,7 +111823,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -118672,7 +112634,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -118818,7 +112780,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -118845,7 +112807,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -119173,7 +113135,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(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -119354,7 +113316,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -119363,7 +113325,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -119415,14 +113377,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -119968,288 +113930,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -120382,27 +114062,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -121285,11 +114944,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, 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(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -121463,7 +115122,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -121476,12 +115135,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -121525,7 +115184,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(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -121533,7 +115192,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(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -121953,7 +115612,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -121993,12 +115652,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(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } 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)) @@ -122006,21 +115665,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(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } 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(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -122067,12 +115726,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } 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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) @@ -122088,7 +115747,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -122148,7 +115807,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -122165,14 +115824,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -122215,11 +115874,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -122233,7 +115892,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -122314,12 +115973,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -122330,11 +115989,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -122355,7 +116014,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(uint8(nFrag))) @@ -122372,10 +116031,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -122436,7 +116095,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -122462,7 +116121,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -122501,12 +116160,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -122533,7 +116192,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -122564,11 +116223,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(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } 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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -122597,7 +116256,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(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -122610,7 +116269,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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -122761,7 +116420,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -122823,7 +116482,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -123735,7 +117394,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 8)) @@ -124176,7 +117835,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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -124200,7 +117859,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -124209,7 +117868,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -124223,7 +117882,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(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -124253,7 +117912,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -124349,7 +118008,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(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -124387,7 +118046,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 32)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 24)), bCommit) @@ -124454,7 +118113,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -124497,7 +118156,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -124527,7 +118186,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -124993,7 +118652,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -125385,7 +119044,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(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -125395,7 +119054,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -125452,7 +119111,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -125526,7 +119185,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -125661,7 +119320,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -125673,7 +119332,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(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 84 @@ -125789,7 +119448,7 @@ 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(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -125803,7 +119462,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } 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) @@ -126037,7 +119696,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -126121,7 +119780,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -126133,7 +119792,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(int32(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell)+uint64(nOverrun)) @@ -126335,7 +119994,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(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -126368,7 +120027,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*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 @@ -126377,7 +120036,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(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 84 @@ -126506,7 +120165,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -126616,7 +120275,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -126704,7 +120363,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -126759,7 +120418,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -126785,7 +120444,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -126812,7 +120471,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+16, 0) @@ -126883,7 +120542,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -127021,7 +120680,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 8)) = pMemPage @@ -127072,7 +120731,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(78381)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 16)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -127081,7 +120740,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(78392)) + *(*int32)(unsafe.Pointer(bp + 16)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -127171,7 +120830,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -127189,7 +120848,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+8, bp) @@ -127212,7 +120871,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 8)), ovflPgno) } @@ -127433,7 +121092,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(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, int32(pc), sz) @@ -127727,17 +121386,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -127827,12 +121475,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(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int64(pCell)-int64(aData)) } else { if uint64(pCell+uintptr(sz)) > uint64(pSrcEnd) && uint64(pCell) < uint64(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -127840,7 +121488,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(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint64(sz)) i++ @@ -127935,7 +121583,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(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*8)), uint64(sz)) @@ -128083,7 +121731,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint64(nCell*int32(2))) nCell -= nShift @@ -128154,7 +121802,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -128199,7 +121847,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(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -128563,7 +122211,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(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -128586,7 +122234,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(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -128717,7 +122365,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 72)))[k-int32(1)] = 0 @@ -128760,7 +122408,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -128819,7 +122467,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -128851,7 +122499,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -129081,7 +122729,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -129327,7 +122975,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(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -129400,7 +123048,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 144 + uintptr(iPage-int32(1))*8)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 88 + uintptr(iPage-int32(1))*2))) @@ -129559,7 +123207,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -129590,7 +123238,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -129675,7 +123323,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -129767,7 +123415,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(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -129803,7 +123451,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(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -129833,10 +123481,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, uint64(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -129954,7 +123602,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -129976,7 +123624,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -130076,21 +123724,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } 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(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } 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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -130184,7 +123832,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(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } 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 @@ -130294,7 +123942,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 8))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -130335,7 +123983,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(81616)) + *(*int32)(unsafe.Pointer(bp + 12)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 12)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -130416,14 +124064,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(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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(81713)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -130560,7 +124208,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(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -131612,14 +125260,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), uint64(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -131830,45 +125478,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -133470,7 +127079,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -133483,8 +127092,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -133643,7 +127252,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -133685,11 +127294,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -133699,7 +127308,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if int32(flags)&int32(MEM_Term) != 0 { if int32(enc) == int32(SQLITE_UTF8) { @@ -133721,12 +127330,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -133765,7 +127374,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(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, int32(amt+uint32(1))) rc = v1 @@ -133877,8 +127486,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -134468,7 +128077,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(uint8(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -134484,7 +128093,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(uint8(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += int64(szField) @@ -134494,7 +128103,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -134545,9 +128154,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -134621,7 +128230,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+136, 0, libc.Uint64FromInt64(304)-uint64(libc.UintptrFromInt32(0)+136)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 16 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 8 @@ -136745,7 +130354,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -136753,7 +130362,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*int32((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*56 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -137580,7 +131189,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -138428,7 +132037,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(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -138518,7 +132127,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(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 32 + uintptr(i)*8)) != 0 { @@ -138553,7 +132162,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(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -138607,7 +132216,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(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -138739,7 +132348,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(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -138891,7 +132500,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -138922,7 +132531,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -139339,7 +132948,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -139666,12 +133275,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -139688,29 +133297,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, int32(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, int32(n), uint8(0), __ccgo_fp_xDel) } } @@ -139740,13 +133353,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -139758,11 +133373,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if int32(enc) != int32(SQLITE_UTF8) { if int32(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -139770,23 +133389,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, int32(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, int32(n), enc, __ccgo_fp_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) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_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) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_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) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -140043,7 +133668,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -140173,7 +133798,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } 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) @@ -140342,6 +133967,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -140355,7 +133982,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -140393,13 +134020,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -140899,14 +134526,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } 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(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6984, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -140944,7 +134571,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -140954,7 +134581,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*56 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && int32(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, int32((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -140965,24 +134592,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -141030,7 +134661,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -141038,32 +134671,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, uint32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*56, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if int32(enc) != int32(SQLITE_UTF8) { if int32(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, int64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(uint64(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -141480,7 +135119,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -141542,7 +135181,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 64))).FpDfltList + 8 + uintptr(int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*32))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol)).Faffinity), bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*8)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -141643,7 +135282,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -145004,7 +138643,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*24 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -146914,7 +140553,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 256)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+256, int8(SQLITE_AFF_NUMERIC), encoding) if int32((*(*TMem)(unsafe.Pointer(bp + 256))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -146941,7 +140580,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(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -147833,7 +141472,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+552, db, uint16(0)) @@ -148215,7 +141854,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -149866,7 +143505,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - FiWriteOff Ti64 - FpFd uintptr -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -151268,7 +144628,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -151759,8 +145119,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -151955,7 +145315,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+16 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 16)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+16) @@ -153607,57 +146967,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - FiOffset Tsqlite3_int64 - FpChunk uintptr -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -153954,7 +147263,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -158418,12 +151727,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -162000,6 +155303,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -162537,6 +155845,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(80) + defer tls.Free(80) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = uint8(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 44)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint64(72)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 64)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+44, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+44, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -162743,7 +156072,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(224) defer tls.Free(224) var db, pDel uintptr @@ -162770,8 +156099,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 144))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 144))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 32)) + 8 + 1*32))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+216)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -165186,31 +158515,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -165227,16 +158531,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -165539,9 +158833,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -165735,7 +159029,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+12839, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -165754,7 +159048,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -166818,7 +160112,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*16))).FzCnName) @@ -167372,44 +160666,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - FanDLt uintptr - FanEq uintptr - FanLt uintptr - Fu struct { - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - Fdb uintptr - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -168700,13 +161956,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -169905,6 +163154,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -169977,9 +163228,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -170159,47 +163410,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -170827,9 +164037,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*32 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -175075,7 +168285,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16101, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -180514,17 +173724,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -180738,12 +173937,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -184025,7 +177218,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 36 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | int32((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 40)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*16))).FcolFlags)) } return WRC_Continue } @@ -185519,33 +178712,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [8]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -187099,6 +180265,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -187132,7 +180300,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -187144,7 +180312,7 @@ 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(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1674 @@ -187168,7 +180336,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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)) @@ -187209,7 +180377,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*8)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -187256,330 +180424,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -188184,14 +181028,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -188206,7 +181045,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -188224,7 +181063,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { break } goto _1 @@ -188239,7 +181078,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -188249,6 +181088,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -188260,7 +181101,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -188272,7 +181113,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*8)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*8)) n++ @@ -192041,25 +184882,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -192461,7 +185283,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*8)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*8)) @@ -192474,7 +185296,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+20374, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -193068,7 +185890,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -193081,9 +185903,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -193270,7 +186092,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -193404,7 +186226,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -193526,15 +186348,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -193570,21 +186383,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -194271,13 +187069,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -198252,18 +191043,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -201856,6 +194635,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 64)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -206160,39 +198940,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -206203,7 +198950,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -206222,7 +198969,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -206247,15 +198994,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -206270,13 +199017,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -206798,7 +199547,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -206859,7 +199608,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+16, bp+32) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -207143,9 +199892,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -207727,7 +200476,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -207740,7 +200489,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -208000,435 +200749,6 @@ type TWhereRightJoin = struct { type WhereRightJoin = TWhereRightJoin -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - FpNext uintptr - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - Fn Tu16 - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 - -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr -} - -type WherePath1 = TWherePath1 - -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm1 = TWhereTerm1 - -/* -** Allowed values of WhereTerm.wtFlags - */ - -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff int8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 - -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { - Fwc TWhereClause -} - -type WhereAndInfo1 = TWhereAndInfo1 - -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 -} - -type WhereMaskSet1 = TWhereMaskSet1 - -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ - -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo68 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet -} - -type WhereInfo1 = TWhereInfo1 - /* ** Bitmasks for the operators on WhereTerm objects. These are all ** operators that are of interest to the query planner. An @@ -208773,10 +201093,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if int32((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -209399,7 +201719,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -209749,7 +202069,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -211295,7 +203615,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FiFrom)*80 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856 + uintptr(k)*104))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 24 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 72)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -213434,16 +205754,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -213556,7 +205866,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 856 + uintptr(i)*104 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -215074,10 +207384,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -217358,15 +209668,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -217398,7 +209699,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -217417,7 +209718,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 100))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 40)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -217454,7 +209755,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(64) defer tls.Free(64) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+16 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -217483,19 +209784,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+16, 0, uint64(48)) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 16))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 16 + 40)) = bp _sqlite3WalkSelect(tls, bp+16, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -217797,6 +210098,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -218339,7 +210648,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 32 + uintptr(iCons)*8)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -219004,17 +211313,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if int32(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*80))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -220989,7 +213287,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if int32(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = int32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags) + wsFlags = int32((*TWhereLoop)(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))).FpSTab)).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 { @@ -221002,7 +213300,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if 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)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 856))).FpWLoop)).FwsFlags = uint32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -221181,7 +213479,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 856 + uintptr(ii)*104 - wsFlags1 = int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*80 if int32(*(*uint32)(unsafe.Pointer(pSrc + 24 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -222516,16 +214814,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -222544,17 +214832,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*80))).FiCursor { break } goto _1 @@ -222572,7 +214860,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -222596,13 +214884,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*32))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -222617,9 +214905,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && int32((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = int32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -222627,13 +214915,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint64(72)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*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)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + *(*uintptr)(unsafe.Pointer(pExpr + 64)) = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = uint32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -222649,13 +214937,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 40)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -223432,87 +215720,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -231761,14 +223968,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -231779,16 +223978,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -238762,7 +230951,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+340) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -240132,12 +232325,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -240155,9 +232348,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -240186,7 +232379,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -240204,15 +232397,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 64)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | uint32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = int16(uint16(nArg)) return SQLITE_OK @@ -240227,27 +232420,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(24)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -240258,30 +232451,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -240344,6 +232567,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -240354,43 +232579,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(v1) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 248)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 248)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -240401,12 +232630,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 110 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -240418,6 +232647,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -240425,82 +232656,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -240544,18 +232785,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -240581,7 +232824,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -240713,7 +232956,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -240845,7 +233088,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -240855,7 +233098,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -240891,7 +233134,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -240904,7 +233147,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -240948,9 +233191,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = uint8(enc2 | int32(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -241452,7 +233695,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 5652 @@ -241606,36 +233849,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { 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(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -241643,7 +233894,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(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -241651,31 +233902,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -241709,12 +233964,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -241749,8 +234006,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(libc.UintptrFromInt32(0)+24)+(n+libc.Uint64FromInt32(1))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -241761,7 +234018,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -243113,6 +235370,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -243136,7 +235395,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -243146,7 +235405,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -243158,7 +235417,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -243174,7 +235433,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -244390,106 +236649,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]int8 -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -247100,16 +239259,6 @@ type TJsonPretty = struct { 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 */ @@ -249936,16 +242085,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { Fbase Tsqlite3_vtab_cursor FiRowid Tu32 @@ -249964,24 +242103,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -249989,13 +242110,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -250967,223 +243081,9 @@ type TRtree = struct { FaHash [97]uintptr } -type Rtree = TRtree - -type TRtreeCursor = struct { - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor = TRtreeCursor - -type TRtreeNode = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode = TRtreeNode - -type TRtreeCell = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell = TRtreeCell - -type TRtreeConstraint = struct { - FiCoord int32 - Fop int32 - Fu struct { - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr -} - -type RtreeConstraint = TRtreeConstraint - -type TRtreeMatchArg = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr -} - -type RtreeMatchArg = TRtreeMatchArg - -type TRtreeGeomCallback = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback = TRtreeGeomCallback - -type TRtreeCoord = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord = TRtreeCoord - -type TRtreeSearchPoint = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint = TRtreeSearchPoint - -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr -} - -type Rtree1 = TRtree1 - -/* Possible values for Rtree.eCoordType: */ - -// C documentation -// -// /* -// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will -// ** only deal with integer coordinates. No floating point operations -// ** will be done. -// */ -type TRtreeDValue = float64 - -type RtreeDValue = TRtreeDValue - -/* High accuracy coordinate */ - -type TRtreeValue = float32 - -type RtreeValue = TRtreeValue - -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ +type Rtree = TRtree -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { +type TRtreeCursor = struct { Fbase Tsqlite3_vtab_cursor FatEOF Tu8 FbPoint Tu8 @@ -251201,33 +243101,27 @@ type TRtreeCursor1 = struct { FanQueue [41]Tu32 } -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ +type RtreeCursor = TRtreeCursor -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue +type TRtreeNode = struct { + FpParent uintptr + FiNode Ti64 + FnRef int32 + FisDirty int32 + FzData uintptr + FpNext uintptr } -type RtreeCoord1 = TRtreeCoord1 +type RtreeNode = TRtreeNode -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ +type TRtreeCell = struct { + FiRowid Ti64 + FaCoord [10]TRtreeCoord +} -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { +type RtreeCell = TRtreeCell + +type TRtreeConstraint = struct { FiCoord int32 Fop int32 Fu struct { @@ -251238,78 +243132,62 @@ type TRtreeConstraint1 = struct { FpInfo uintptr } -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - FpParent uintptr - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ +type RtreeConstraint = TRtreeConstraint -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - FiRowid Ti64 - FaCoord [10]TRtreeCoord +type TRtreeMatchArg = struct { + FiSize Tu32 + Fcb TRtreeGeomCallback + FnParam int32 + FapSqlParam uintptr } -type RtreeCell1 = TRtreeCell1 +type RtreeMatchArg = TRtreeMatchArg -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { +type TRtreeGeomCallback = struct { FxGeom uintptr FxQueryFunc uintptr FxDestructor uintptr FpContext uintptr } -type RtreeGeomCallback1 = TRtreeGeomCallback1 +type RtreeGeomCallback = TRtreeGeomCallback -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr +type TRtreeCoord = struct { + Fi [0]int32 + Fu [0]Tu32 + Ff TRtreeValue } -type RtreeMatchArg1 = TRtreeMatchArg1 +type RtreeCoord = TRtreeCoord + +type TRtreeSearchPoint = struct { + FrScore TRtreeDValue + Fid Tsqlite3_int64 + FiLevel Tu8 + FeWithin Tu8 + FiCell Tu8 +} + +type RtreeSearchPoint = TRtreeSearchPoint + +/* Possible values for Rtree.eCoordType: */ + +// C documentation +// +// /* +// ** If SQLITE_RTREE_INT_ONLY is defined, then this virtual table will +// ** only deal with integer coordinates. No floating point operations +// ** will be done. +// */ +type TRtreeDValue = float64 + +type RtreeDValue = TRtreeDValue + +/* High accuracy coordinate */ + +type TRtreeValue = float32 + +type RtreeValue = TRtreeValue /* Size of an RtreeMatchArg object with N parameters */ @@ -254265,9 +246143,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -254282,9 +246160,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -255184,23 +247062,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -255785,14 +247646,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -255817,16 +247670,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -256609,13 +248452,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -256850,36 +248686,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -257850,16 +249656,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+30063) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+30079) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -258168,12 +249974,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -258181,33 +249989,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(32)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -258761,274 +250573,31 @@ type TRbuObjIter = struct { FpRbuUpdate uintptr } -type RbuObjIter = TRbuObjIter - -type TRbuState = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState = TRbuState - -type TRbuSpan = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan = TRbuSpan - -type Trbu_vfs = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs = Trbu_vfs - -type Trbu_file = struct { - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file = Trbu_file - -type TRbuUpdateStmt = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt = TRbuUpdateStmt - -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - FnProgress Ti64 - FiCookie Tu32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ +type RbuObjIter = TRbuObjIter -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 +type TRbuState = struct { + FeStage int32 + FzTbl uintptr + FzDataTbl uintptr + FzIdx uintptr + FiWalCksum Ti64 + FnRow int32 + FnProgress Ti64 + FiCookie Tu32 + FiOalSz Ti64 + FnPhaseOneStep Ti64 } -type RbuFrame1 = TRbuFrame1 +type RbuState = TRbuState -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]int8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr +type TRbuSpan = struct { + FzSpan uintptr + FnSpan int32 } -type sqlite3rbu1 = Tsqlite3rbu1 +type RbuSpan = TRbuSpan -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { +type Trbu_vfs = struct { Fbase Tsqlite3_vfs FpRealVfs uintptr Fmutex uintptr @@ -259037,16 +250606,9 @@ type Trbu_vfs1 = struct { FpMainRbu uintptr } -type rbu_vfs1 = Trbu_vfs1 +type rbu_vfs = Trbu_vfs -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { +type Trbu_file = struct { Fbase Tsqlite3_file FpReal uintptr FpRbuVfs uintptr @@ -259065,7 +250627,15 @@ type Trbu_file1 = struct { FpMainRbuNext uintptr } -type rbu_file1 = Trbu_file1 +type rbu_file = Trbu_file + +type TRbuUpdateStmt = struct { + FzMask uintptr + FpUpdate uintptr + FpNext uintptr +} + +type RbuUpdateStmt = TRbuUpdateStmt /* ** True for an RBU vacuum handle, or false otherwise. @@ -261780,7 +253350,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -261882,7 +253452,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -261955,12 +253525,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = int64((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = int64((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -261985,18 +253555,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+8107, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+8107, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+8107, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+8107, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -262514,10 +254084,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -263036,7 +254606,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -263157,7 +254727,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -263202,9 +254772,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -263276,7 +254848,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -263479,7 +255051,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -263530,14 +255102,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, 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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= int32(libc.Uint64FromInt64(2048)/libc.Uint64FromInt64(64)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*64))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -265462,315 +256973,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -267176,13 +258378,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -267674,14 +258869,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -268189,15 +259376,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -268819,7 +260008,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -268833,7 +260022,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -268909,8 +260098,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -268935,13 +260124,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 16)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 16)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -268970,28 +260159,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -269130,7 +260323,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -269145,9 +260338,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint64(152)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -269176,20 +260369,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -269364,7 +260561,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -269388,7 +260585,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -269403,7 +260600,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -269459,7 +260656,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -269564,7 +260761,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -269670,7 +260867,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -269680,7 +260877,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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -269759,7 +260956,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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -270020,7 +261217,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -270169,11 +261366,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -270185,8 +261382,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } goto finished_invert @@ -270214,12 +261411,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(80) defer tls.Free(80) var rc int32 @@ -270227,9 +261428,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint64(72)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -270242,14 +261443,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -270273,29 +261466,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -270699,7 +261869,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -270717,11 +261887,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -270898,7 +262068,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aBlob uintptr @@ -270922,7 +262092,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -270937,7 +262107,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -270988,7 +262158,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var abPK, pNew, pOld, v1 uintptr @@ -271028,10 +262198,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -271069,11 +262239,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -271096,7 +262266,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -271115,7 +262285,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -271124,7 +262294,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -271134,7 +262304,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+36170, uintptr(0), uintptr(0), uintptr(0)) @@ -271147,7 +262317,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+36191, uintptr(0), uintptr(0), uintptr(0)) @@ -271163,7 +262333,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -271190,7 +262360,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 8)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 8)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 8))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -271218,7 +262388,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(352) defer tls.Free(352) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -271258,7 +262428,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+144, bp+136, bp+140, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 144)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -271282,7 +262452,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 144)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+4829, libc.VaList(bp+328, *(*uintptr)(unsafe.Pointer(bp + 144)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -271358,7 +262528,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+8, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -271367,7 +262537,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+8, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+160, bp+164, 0) @@ -271375,7 +262545,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+168, 0, uint64(152)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 168))).FnCol = *(*int32)(unsafe.Pointer(bp + 160)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+168) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -271414,13 +262584,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -271429,11 +262603,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -271441,10 +262619,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -271452,37 +262636,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -272058,7 +263234,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var i int32 @@ -272093,8 +263269,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+8, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf = 0 } goto _3 @@ -272113,9 +263289,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 8))).FnBuf) } } else { if ppOut != 0 { @@ -272226,18 +263402,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -272245,13 +263423,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -272293,12 +263473,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -272306,27 +263492,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -272481,7 +263658,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var bDone, iHash, v2 int32 @@ -272589,8 +263766,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+24, uint8((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+24, *(*uintptr)(unsafe.Pointer(bp + 8)), *(*int32)(unsafe.Pointer(bp + 16)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -272602,9 +263779,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+24, 0, uint64(16)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 24))).FnBuf) } } else { if ppOut != 0 { @@ -272678,21 +263855,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -272849,18 +264030,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -272920,99 +264089,6 @@ type TFts5TokenizerConfig = struct { type Fts5TokenizerConfig = TFts5TokenizerConfig -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 - /* ** End of interface to code in fts5_config.c. **************************************************************************/ @@ -273034,14 +264110,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { Fa uintptr Fn int32 @@ -273053,29 +264121,12 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { FiPrev Ti64 } type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -273131,15 +264182,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -273161,14 +264203,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -273278,13 +264312,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { Fwriter TFts5PoslistWriter FbOk int32 @@ -273851,14 +264878,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -273869,16 +264888,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -273930,10 +264939,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(2432)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(2432)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -274039,12 +265048,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -274636,18 +265645,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -274730,22 +265727,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -274923,16 +265904,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -275300,15 +266271,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - FnPhrase int32 - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -276039,21 +267001,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -276362,13 +267309,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -277024,7 +267964,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -277034,9 +267974,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -277398,115 +268338,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -278191,16 +269022,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - Fa uintptr - Fn int32 - Fi int32 - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+12, p+24) != 0 { @@ -278225,14 +269046,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -279353,14 +270166,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -280301,14 +271106,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -280348,14 +271145,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { FpExpr uintptr FaPopulator uintptr @@ -280719,66 +271508,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -281828,143 +272557,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - FiStructVersion Ti64 - FpStruct uintptr -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - FaEof uintptr - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - FnRef int32 - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -281972,191 +272564,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - FiRowid Ti64 - FnPos int32 - FbDel Tu8 -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - F__ccgo_align [0]uint64 - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - FiSwitchRowid Ti64 - FaFirst uintptr -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint64 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -285088,14 +275495,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -285105,15 +275504,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -285227,7 +275617,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -285248,7 +275638,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -286841,13 +277231,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - FpIdx uintptr - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -287968,16 +278351,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -288195,7 +278568,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -288232,7 +278605,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -288243,70 +278616,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -288475,14 +278784,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -288529,19 +278830,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -290857,87 +281145,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - Fapi Tfts5_api - Fdb uintptr - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -290945,97 +281152,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - FpStmt uintptr - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -293003,7 +283119,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -293011,7 +283127,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -293022,8 +283138,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -293431,7 +283547,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -293461,8 +283577,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(32)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -293470,7 +283586,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -293762,7 +283878,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -293786,7 +283902,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -294073,14 +284189,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -294175,7 +284291,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -294192,8 +284308,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, uint64(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -294220,7 +284336,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -294237,7 +284353,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*96 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, uint64(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -294264,15 +284380,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -294332,11 +284439,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -294345,13 +284452,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -294360,7 +284467,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -294373,7 +284480,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -294390,7 +284497,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -294398,7 +284505,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -294870,60 +284977,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -295280,14 +285333,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -296018,17 +286063,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -296533,12 +286567,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -296643,7 +286671,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -296685,7 +286713,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -296719,18 +286747,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -296956,7 +286972,7 @@ 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) } -func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -297143,7 +287159,7 @@ _9: _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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(int64(zOut)-int64(aFold)), is, ie) goto _2 _1: ; @@ -297171,14 +287187,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]int8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -297256,14 +287264,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -297274,16 +287274,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -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')) } @@ -297909,14 +287899,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 40 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -297934,13 +287924,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -298022,7 +288005,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -298150,7 +288133,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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 }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(int64(zOut)-t__predefined_ptrdiff_t(bp)), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -298226,11 +288209,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -303785,39 +293768,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - FiInstPos Ti64 - FiInstOff int32 -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -305053,11 +295003,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', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '4'} 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=1000\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\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00CreateEvent\x00CancelIo\x00GetModuleHandleW\x00getenv\x00getcwd\x00readlink\x00lstat\x00__errno\x00cygwin_conv_path\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\x00%s-shm\x00readonly_shm\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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=1000\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\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00CreateEvent\x00CancelIo\x00GetModuleHandleW\x00getenv\x00getcwd\x00readlink\x00lstat\x00__errno\x00cygwin_conv_path\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\x00%s-shm\x00readonly_shm\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modernc.org/sqlite/lib/sqlite_windows_386.go b/vendor/modernc.org/sqlite/lib/sqlite_windows_386.go index b0a1bf609..4cdc532ec 100644 --- a/vendor/modernc.org/sqlite/lib/sqlite_windows_386.go +++ b/vendor/modernc.org/sqlite/lib/sqlite_windows_386.go @@ -17483,7 +17483,7 @@ const SQLITE_SHM_SHARED = 4 const SQLITE_SHM_UNLOCK = 1 const SQLITE_SORTER_PMASZ = 250 const SQLITE_SOUNDEX = 1 -const SQLITE_SOURCE_ID = "2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543" +const SQLITE_SOURCE_ID = "2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3" const SQLITE_SO_ASC = 0 const SQLITE_SO_DESC = 1 const SQLITE_SO_UNDEFINED = -1 @@ -17594,8 +17594,8 @@ const SQLITE_UTF16LE = 2 const SQLITE_UTF16NATIVE = 2 const SQLITE_UTF16_ALIGNED = 8 const SQLITE_UTF8 = 1 -const SQLITE_VERSION = "3.50.3" -const SQLITE_VERSION_NUMBER = 3050003 +const SQLITE_VERSION = "3.50.4" +const SQLITE_VERSION_NUMBER = 3050004 const SQLITE_VTABRISK_High = 2 const SQLITE_VTABRISK_Low = 0 const SQLITE_VTABRISK_Normal = 1 @@ -22721,12 +22721,6 @@ type Tsqlite3_file = struct { type sqlite3_file = Tsqlite3_file -type Tsqlite3_file1 = struct { - FpMethods uintptr -} - -type sqlite3_file1 = Tsqlite3_file1 - // C documentation // // /* @@ -22855,30 +22849,6 @@ type Tsqlite3_io_methods = struct { type sqlite3_io_methods = Tsqlite3_io_methods -type Tsqlite3_io_methods1 = struct { - FiVersion int32 - FxClose uintptr - FxRead uintptr - FxWrite uintptr - FxTruncate uintptr - FxSync uintptr - FxFileSize uintptr - FxLock uintptr - FxUnlock uintptr - FxCheckReservedLock uintptr - FxFileControl uintptr - FxSectorSize uintptr - FxDeviceCharacteristics uintptr - FxShmMap uintptr - FxShmLock uintptr - FxShmBarrier uintptr - FxShmUnmap uintptr - FxFetch uintptr - FxUnfetch uintptr -} - -type sqlite3_io_methods1 = Tsqlite3_io_methods1 - // C documentation // // /* @@ -23391,33 +23361,6 @@ type Tsqlite3_syscall_ptr = uintptr type sqlite3_syscall_ptr = Tsqlite3_syscall_ptr -type Tsqlite3_vfs1 = struct { - FiVersion int32 - FszOsFile int32 - FmxPathname int32 - FpNext uintptr - FzName uintptr - FpAppData uintptr - FxOpen uintptr - FxDelete uintptr - FxAccess uintptr - FxFullPathname uintptr - FxDlOpen uintptr - FxDlError uintptr - FxDlSym uintptr - FxDlClose uintptr - FxRandomness uintptr - FxSleep uintptr - FxCurrentTime uintptr - FxGetLastError uintptr - FxCurrentTimeInt64 uintptr - FxSetSystemCall uintptr - FxGetSystemCall uintptr - FxNextSystemCall uintptr -} - -type sqlite3_vfs1 = Tsqlite3_vfs1 - // C documentation // // /* @@ -23496,19 +23439,6 @@ type Tsqlite3_mem_methods = struct { type sqlite3_mem_methods = Tsqlite3_mem_methods -type Tsqlite3_mem_methods1 = struct { - FxMalloc uintptr - FxFree uintptr - FxRealloc uintptr - FxSize uintptr - FxRoundup uintptr - FxInit uintptr - FxShutdown uintptr - FpAppData uintptr -} - -type sqlite3_mem_methods1 = Tsqlite3_mem_methods1 - // C documentation // // /* @@ -23688,226 +23618,6 @@ type Tsqlite3_module = struct { type sqlite3_module = Tsqlite3_module -/* -** CAPI3REF: Virtual Table Object -** KEYWORDS: sqlite3_module {virtual table module} -** -** This structure, sometimes called a "virtual table module", -** defines the implementation of a [virtual table]. -** This structure consists mostly of methods for the module. -** -** ^A virtual table module is created by filling in a persistent -** instance of this structure and passing a pointer to that instance -** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. -** ^The registration remains valid until it is replaced by a different -** module or until the [database connection] closes. The content -** of this structure must not change while it is registered with -** any database connection. - */ -type Tsqlite3_module1 = struct { - FiVersion int32 - FxCreate uintptr - FxConnect uintptr - FxBestIndex uintptr - FxDisconnect uintptr - FxDestroy uintptr - FxOpen uintptr - FxClose uintptr - FxFilter uintptr - FxNext uintptr - FxEof uintptr - FxColumn uintptr - FxRowid uintptr - FxUpdate uintptr - FxBegin uintptr - FxSync uintptr - FxCommit uintptr - FxRollback uintptr - FxFindFunction uintptr - FxRename uintptr - FxSavepoint uintptr - FxRelease uintptr - FxRollbackTo uintptr - FxShadowName uintptr - FxIntegrity uintptr -} - -type sqlite3_module1 = Tsqlite3_module1 - -/* -** CAPI3REF: Virtual Table Indexing Information -** KEYWORDS: sqlite3_index_info -** -** The sqlite3_index_info structure and its substructures is used as part -** of the [virtual table] interface to -** pass information into and receive the reply from the [xBestIndex] -** method of a [virtual table module]. The fields under **Inputs** are the -** inputs to xBestIndex and are read-only. xBestIndex inserts its -** results into the **Outputs** fields. -** -** ^(The aConstraint[] array records WHERE clause constraints of the form: -** -**
column OP expr
-** -** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is -** stored in aConstraint[].op using one of the -** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ -** ^(The index of the column is stored in -** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the -** expr on the right-hand side can be evaluated (and thus the constraint -** is usable) and false if it cannot.)^ -** -** ^The optimizer automatically inverts terms of the form "expr OP column" -** and makes other simplifications to the WHERE clause in an attempt to -** get as many WHERE clause terms into the form shown above as possible. -** ^The aConstraint[] array only reports WHERE clause terms that are -** relevant to the particular virtual table being queried. -** -** ^Information about the ORDER BY clause is stored in aOrderBy[]. -** ^Each term of aOrderBy records a column of the ORDER BY clause. -** -** The colUsed field indicates which columns of the virtual table may be -** required by the current scan. Virtual table columns are numbered from -** zero in the order in which they appear within the CREATE TABLE statement -** passed to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), -** the corresponding bit is set within the colUsed mask if the column may be -** required by SQLite. If the table has at least 64 columns and any column -** to the right of the first 63 is required, then bit 63 of colUsed is also -** set. In other words, column iCol may be required if the expression -** (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) evaluates to -** non-zero. -** -** The [xBestIndex] method must fill aConstraintUsage[] with information -** about what parameters to pass to xFilter. ^If argvIndex>0 then -** the right-hand side of the corresponding aConstraint[] is evaluated -** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit -** is true, then the constraint is assumed to be fully handled by the -** virtual table and might not be checked again by the byte code.)^ ^(The -** aConstraintUsage[].omit flag is an optimization hint. When the omit flag -** is left in its default setting of false, the constraint will always be -** checked separately in byte code. If the omit flag is changed to true, then -** the constraint may or may not be checked in byte code. In other words, -** when the omit flag is true there is no guarantee that the constraint will -** not be checked again using byte code.)^ -** -** ^The idxNum and idxStr values are recorded and passed into the -** [xFilter] method. -** ^[sqlite3_free()] is used to free idxStr if and only if -** needToFreeIdxStr is true. -** -** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in -** the correct order to satisfy the ORDER BY clause so that no separate -** sorting step is required. -** -** ^The estimatedCost value is an estimate of the cost of a particular -** strategy. A cost of N indicates that the cost of the strategy is similar -** to a linear scan of an SQLite table with N rows. A cost of log(N) -** indicates that the expense of the operation is similar to that of a -** binary search on a unique indexed field of an SQLite table with N rows. -** -** ^The estimatedRows value is an estimate of the number of rows that -** will be returned by the strategy. -** -** The xBestIndex method may optionally populate the idxFlags field with a -** mask of SQLITE_INDEX_SCAN_* flags. One such flag is -** [SQLITE_INDEX_SCAN_HEX], which if set causes the [EXPLAIN QUERY PLAN] -** output to show the idxNum as hex instead of as decimal. Another flag is -** SQLITE_INDEX_SCAN_UNIQUE, which if set indicates that the query plan will -** return at most one row. -** -** Additionally, if xBestIndex sets the SQLITE_INDEX_SCAN_UNIQUE flag, then -** SQLite also assumes that if a call to the xUpdate() method is made as -** part of the same statement to delete or update a virtual table row and the -** implementation returns SQLITE_CONSTRAINT, then there is no need to rollback -** any database changes. In other words, if the xUpdate() returns -** SQLITE_CONSTRAINT, the database contents must be exactly as they were -** before xUpdate was called. By contrast, if SQLITE_INDEX_SCAN_UNIQUE is not -** set and xUpdate returns SQLITE_CONSTRAINT, any database changes made by -** the xUpdate method are automatically rolled back by SQLite. -** -** IMPORTANT: The estimatedRows field was added to the sqlite3_index_info -** structure for SQLite [version 3.8.2] ([dateof:3.8.2]). -** If a virtual table extension is -** used with an SQLite version earlier than 3.8.2, the results of attempting -** to read or write the estimatedRows field are undefined (but are likely -** to include crashing the application). The estimatedRows field should -** therefore only be used if [sqlite3_libversion_number()] returns a -** value greater than or equal to 3008002. Similarly, the idxFlags field -** was added for [version 3.9.0] ([dateof:3.9.0]). -** It may therefore only be used if -** sqlite3_libversion_number() returns a value greater than or equal to -** 3009000. - */ -type Tsqlite3_index_info1 = struct { - F__ccgo_align [0]uint32 - FnConstraint int32 - FaConstraint uintptr - FnOrderBy int32 - FaOrderBy uintptr - FaConstraintUsage uintptr - FidxNum int32 - FidxStr uintptr - FneedToFreeIdxStr int32 - ForderByConsumed int32 - F__ccgo_align9 [4]byte - FestimatedCost float64 - FestimatedRows Tsqlite3_int64 - FidxFlags int32 - F__ccgo_align12 [4]byte - FcolUsed Tsqlite3_uint64 -} - -type sqlite3_index_info1 = Tsqlite3_index_info1 - -/* -** CAPI3REF: Virtual Table Instance Object -** KEYWORDS: sqlite3_vtab -** -** Every [virtual table module] implementation uses a subclass -** of this object to describe a particular instance -** of the [virtual table]. Each subclass will -** be tailored to the specific needs of the module implementation. -** The purpose of this superclass is to define certain fields that are -** common to all module implementations. -** -** ^Virtual tables methods can set an error message by assigning a -** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should -** take care that any prior string is freed by a call to [sqlite3_free()] -** prior to assigning a new string to zErrMsg. ^After the error message -** is delivered up to the client application, the string will be automatically -** freed by sqlite3_free() and the zErrMsg field will be zeroed. - */ -type Tsqlite3_vtab1 = struct { - FpModule uintptr - FnRef int32 - FzErrMsg uintptr -} - -type sqlite3_vtab1 = Tsqlite3_vtab1 - -/* -** CAPI3REF: Virtual Table Cursor Object -** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} -** -** Every [virtual table module] implementation uses a subclass of the -** following structure to describe cursors that point into the -** [virtual table] and are used -** to loop through the virtual table. Cursors are created using the -** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed -** by the [sqlite3_module.xClose | xClose] method. Cursors are used -** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods -** of the module. Each module implementation will define -** the content of a cursor structure to suit its own needs. -** -** This superclass exists in order to define fields of the cursor that -** are common to all implementations. - */ -type Tsqlite3_vtab_cursor1 = struct { - FpVtab uintptr -} - -type sqlite3_vtab_cursor1 = Tsqlite3_vtab_cursor1 - // C documentation // // /* @@ -23989,20 +23699,6 @@ type Tsqlite3_mutex_methods = struct { type sqlite3_mutex_methods = Tsqlite3_mutex_methods -type Tsqlite3_mutex_methods1 = struct { - FxMutexInit uintptr - FxMutexEnd uintptr - FxMutexAlloc uintptr - FxMutexFree uintptr - FxMutexEnter uintptr - FxMutexTry uintptr - FxMutexLeave uintptr - FxMutexHeld uintptr - FxMutexNotheld uintptr -} - -type sqlite3_mutex_methods1 = Tsqlite3_mutex_methods1 - // C documentation // // /* @@ -24052,13 +23748,6 @@ type Tsqlite3_pcache_page = struct { type sqlite3_pcache_page = Tsqlite3_pcache_page -type Tsqlite3_pcache_page1 = struct { - FpBuf uintptr - FpExtra uintptr -} - -type sqlite3_pcache_page1 = Tsqlite3_pcache_page1 - // C documentation // // /* @@ -24238,24 +23927,6 @@ type Tsqlite3_pcache_methods2 = struct { type sqlite3_pcache_methods2 = Tsqlite3_pcache_methods2 -type Tsqlite3_pcache_methods21 = struct { - FiVersion int32 - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr - FxShrink uintptr -} - -type sqlite3_pcache_methods21 = Tsqlite3_pcache_methods21 - // C documentation // // /* @@ -24279,22 +23950,6 @@ type Tsqlite3_pcache_methods = struct { type sqlite3_pcache_methods = Tsqlite3_pcache_methods -type Tsqlite3_pcache_methods1 = struct { - FpArg uintptr - FxInit uintptr - FxShutdown uintptr - FxCreate uintptr - FxCachesize uintptr - FxPagecount uintptr - FxFetch uintptr - FxUnpin uintptr - FxRekey uintptr - FxTruncate uintptr - FxDestroy uintptr -} - -type sqlite3_pcache_methods1 = Tsqlite3_pcache_methods1 - // C documentation // // /* @@ -24437,52 +24092,6 @@ type Tsqlite3_rtree_dbl = float64 type sqlite3_rtree_dbl = Tsqlite3_rtree_dbl -/* -** A pointer to a structure of the following type is passed as the first -** argument to callbacks registered using rtree_geometry_callback(). - */ -type Tsqlite3_rtree_geometry1 = struct { - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr -} - -type sqlite3_rtree_geometry1 = Tsqlite3_rtree_geometry1 - -/* -** A pointer to a structure of the following type is passed as the -** argument to scored geometry callback registered using -** sqlite3_rtree_query_callback(). -** -** Note that the first 5 fields of this structure are identical to -** sqlite3_rtree_geometry. This structure is a subclass of -** sqlite3_rtree_geometry. - */ -type Tsqlite3_rtree_query_info1 = struct { - F__ccgo_align [0]uint32 - FpContext uintptr - FnParam int32 - FaParam uintptr - FpUser uintptr - FxDelUser uintptr - FaCoord uintptr - FanQueue uintptr - FnCoord int32 - FiLevel int32 - FmxLevel int32 - FiRowid Tsqlite3_int64 - FrParentScore Tsqlite3_rtree_dbl - FeParentWithin int32 - FeWithin int32 - FrScore Tsqlite3_rtree_dbl - FapSqlParam uintptr - F__ccgo_pad16 [4]byte -} - -type sqlite3_rtree_query_info1 = Tsqlite3_rtree_query_info1 - /* ** Allowed values for sqlite3_rtree_query.eWithin and .eParentWithin. */ @@ -24880,340 +24489,6 @@ type Tfts5_extension_function = uintptr type fts5_extension_function = Tfts5_extension_function -type TFts5PhraseIter1 = struct { - Fa uintptr - Fb uintptr -} - -type Fts5PhraseIter1 = TFts5PhraseIter1 - -/* -** EXTENSION API FUNCTIONS -** -** xUserData(pFts): -** 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 -** to the total number of tokens in the FTS5 table. Or, if iCol is -** non-negative but less than the number of columns in the table, return -** the total number of tokens in column iCol, considering all rows in -** the FTS5 table. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** xColumnCount(pFts): -** Return the number of columns in the table. -** -** xColumnSize(pFts, iCol, pnToken): -** If parameter iCol is less than zero, set output variable *pnToken -** to the total number of tokens in the current row. Or, if iCol is -** non-negative but less than the number of columns in the table, set -** *pnToken to the number of tokens in column iCol of the current row. -** -** If parameter iCol is greater than or equal to the number of columns -** in the table, SQLITE_RANGE is returned. Or, if an error occurs (e.g. -** an OOM condition or IO error), an appropriate SQLite error code is -** returned. -** -** This function may be quite inefficient if used with an FTS5 table -** created with the "columnsize=0" option. -** -** xColumnText: -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the text of column iCol of -** the current document. If successful, (*pz) is set to point to a buffer -** containing the text in utf-8 encoding, (*pn) is set to the size in bytes -** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, -** if an error occurs, an SQLite error code is returned and the final values -** of (*pz) and (*pn) are undefined. -** -** xPhraseCount: -** Returns the number of phrases in the current query expression. -** -** xPhraseSize: -** If parameter iCol is less than zero, or greater than or equal to the -** number of phrases in the current query, as returned by xPhraseCount, -** 0 is returned. Otherwise, this function returns the number of tokens in -** phrase iPhrase of the query. Phrases are numbered starting from zero. -** -** xInstCount: -** Set *pnInst to the total number of occurrences of all phrases within -** the query within the current row. Return SQLITE_OK if successful, or -** an error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always returns 0. -** -** xInst: -** Query for the details of phrase match iIdx within the current row. -** Phrase matches are numbered starting from zero, so the iIdx argument -** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). If iIdx is less than zero or greater than -** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. -** -** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol -** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. SQLITE_OK is returned if successful, or an -** error code (i.e. SQLITE_NOMEM) if an error occurs. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xRowid: -** Returns the rowid of the current row. -** -** xTokenize: -** Tokenize text using the tokenizer belonging to the FTS5 table. -** -** xQueryPhrase(pFts5, iPhrase, pUserData, xCallback): -** This API function is used to query the FTS table for phrase iPhrase -** of the current query. Specifically, a query equivalent to: -** -** ... FROM ftstable WHERE ftstable MATCH $p ORDER BY rowid -** -** with $p set to a phrase equivalent to the phrase iPhrase of the -** current query is executed. Any column filter that applies to -** phrase iPhrase of the current query is included in $p. For each -** row visited, the callback function passed as the fourth argument -** is invoked. The context and API objects passed to the callback -** function may be used to access the properties of each matched row. -** Invoking Api.xUserData() returns a copy of the pointer passed as -** the third argument to pUserData. -** -** If parameter iPhrase is less than zero, or greater than or equal to -** the number of phrases in the query, as returned by xPhraseCount(), -** this function returns SQLITE_RANGE. -** -** If the callback function returns any value other than SQLITE_OK, the -** query is abandoned and the xQueryPhrase function returns immediately. -** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. -** Otherwise, the error code is propagated upwards. -** -** If the query runs to completion without incident, SQLITE_OK is returned. -** Or, if some error occurs before the query completes or is aborted by -** the callback, an SQLite error code is returned. -** -** -** xSetAuxdata(pFts5, pAux, xDelete) -** -** Save the pointer passed as the second argument as the extension function's -** "auxiliary data". The pointer may then be retrieved by the current or any -** future invocation of the same fts5 extension function made as part of -** the same MATCH query using the xGetAuxdata() API. -** -** Each extension function is allocated a single auxiliary data slot for -** each FTS query (MATCH expression). If the extension function is invoked -** more than once for a single FTS query, then all invocations share a -** single auxiliary data context. -** -** If there is already an auxiliary data pointer when this function is -** invoked, then it is replaced by the new pointer. If an xDelete callback -** was specified along with the original pointer, it is invoked at this -** point. -** -** The xDelete callback, if one is specified, is also invoked on the -** auxiliary data pointer after the FTS5 query has finished. -** -** If an error (e.g. an OOM condition) occurs within this function, -** the auxiliary data is set to NULL and an error code returned. If the -** xDelete parameter was not NULL, it is invoked on the auxiliary data -** pointer before returning. -** -** -** xGetAuxdata(pFts5, bClear) -** -** Returns the current auxiliary data pointer for the fts5 extension -** function. See the xSetAuxdata() method for details. -** -** If the bClear argument is non-zero, then the auxiliary data is cleared -** (set to NULL) before this function returns. In this case the xDelete, -** if any, is not invoked. -** -** -** xRowCount(pFts5, pnRow) -** -** This function is used to retrieve the total number of rows in the table. -** In other words, the same value that would be returned by: -** -** SELECT count(*) FROM ftstable; -** -** xPhraseFirst() -** This function is used, along with type Fts5PhraseIter and the xPhraseNext -** method, to iterate through all instances of a single query phrase within -** the current row. This is the same information as is accessible via the -** xInstCount/xInst APIs. While the xInstCount/xInst APIs are more convenient -** to use, this API may be faster under some circumstances. To iterate -** through instances of phrase iPhrase, use the following code: -** -** Fts5PhraseIter iter; -** int iCol, iOff; -** for(pApi->xPhraseFirst(pFts, iPhrase, &iter, &iCol, &iOff); -** iCol>=0; -** pApi->xPhraseNext(pFts, &iter, &iCol, &iOff) -** ){ -** // An instance of phrase iPhrase at offset iOff of column iCol -** } -** -** The Fts5PhraseIter structure is defined above. Applications should not -** modify this structure directly - it should only be used as shown above -** with the xPhraseFirst() and xPhraseNext() API methods (and by -** xPhraseFirstColumn() and xPhraseNextColumn() as illustrated below). -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. If the FTS5 table is created -** with either "detail=none" or "detail=column" and "content=" option -** (i.e. if it is a contentless table), then this API always iterates -** through an empty set (all calls to xPhraseFirst() set iCol to -1). -** -** In all cases, matches are visited in (column ASC, offset ASC) order. -** i.e. all those in column 0, sorted by offset, followed by those in -** column 1, etc. -** -** xPhraseNext() -** See xPhraseFirst above. -** -** xPhraseFirstColumn() -** This function and xPhraseNextColumn() are similar to the xPhraseFirst() -** and xPhraseNext() APIs described above. The difference is that instead -** of iterating through all instances of a phrase in the current row, these -** APIs are used to iterate through the set of columns in the current row -** that contain one or more instances of a specified phrase. For example: -** -** Fts5PhraseIter iter; -** int iCol; -** for(pApi->xPhraseFirstColumn(pFts, iPhrase, &iter, &iCol); -** iCol>=0; -** pApi->xPhraseNextColumn(pFts, &iter, &iCol) -** ){ -** // Column iCol contains at least one instance of phrase iPhrase -** } -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" option. If the FTS5 table is created with either -** "detail=none" "content=" option (i.e. if it is a contentless table), -** then this API always iterates through an empty set (all calls to -** xPhraseFirstColumn() set iCol to -1). -** -** The information accessed using this API and its companion -** xPhraseFirstColumn() may also be obtained using xPhraseFirst/xPhraseNext -** (or xInst/xInstCount). The chief advantage of this API is that it is -** significantly more efficient than those alternatives when used with -** "detail=column" tables. -** -** xPhraseNextColumn() -** See xPhraseFirstColumn above. -** -** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase iPhrase of the current -** query. Before returning, output parameter *ppToken is set to point -** to a buffer containing the requested token, and *pnToken to the -** size of this buffer in bytes. -** -** If iPhrase or iToken are less than zero, or if iPhrase is greater than -** or equal to the number of phrases in the query as reported by -** xPhraseCount(), or if iToken is equal to or greater than the number of -** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken - - are both zeroed. - -** -** The output text is not a copy of the query text that specified the -** token. It is the output of the tokenizer module. For tokendata=1 -** tables, this includes any embedded 0x00 and trailing data. -** -** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) -** This is used to access token iToken of phrase hit iIdx within the -** current row. If iIdx is less than zero or greater than or equal to the -** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, -** output variable (*ppToken) is set to point to a buffer containing the -** matching document token, and (*pnToken) to the size of that buffer in -** bytes. -** -** The output text is not a copy of the document text that was tokenized. -** It is the output of the tokenizer module. For tokendata=1 tables, this -** includes any embedded 0x00 and trailing data. -** -** This API may be slow in some cases if the token identified by parameters -** iIdx and iToken matched a prefix token in the query. In most cases, the -** first call to this API for each prefix token in the query is forced -** to scan the portion of the full-text index that matches the prefix -** token to collect the extra data required by this API. If the prefix -** token matches a large number of token instances in the document set, -** this may be a performance problem. -** -** If the user knows in advance that a query may use this API for a -** prefix token, FTS5 may be configured to collect all required data as part -** of the initial querying of the full-text index, avoiding the second scan -** entirely. This also causes prefix queries that do not use this API to -** run more slowly and use more memory. FTS5 may be configured in this way -** either on a per-table basis using the [FTS5 insttoken | 'insttoken'] -** option, or on a per-query basis using the -** [fts5_insttoken | fts5_insttoken()] user function. -** -** This API can be quite slow if used with an FTS5 table created with the -** "detail=none" or "detail=column" option. -** -** xColumnLocale(pFts5, iIdx, pzLocale, pnLocale) -** If parameter iCol is less than zero, or greater than or equal to the -** number of columns in the table, SQLITE_RANGE is returned. -** -** Otherwise, this function attempts to retrieve the locale associated -** with column iCol of the current row. Usually, there is no associated -** locale, and output parameters (*pzLocale) and (*pnLocale) are set -** to NULL and 0, respectively. However, if the fts5_locale() function -** was used to associate a locale with the value when it was inserted -** into the fts5 table, then (*pzLocale) is set to point to a nul-terminated -** buffer containing the name of the locale in utf-8 encoding. (*pnLocale) -** is set to the size in bytes of the buffer, not including the -** nul-terminator. -** -** If successful, SQLITE_OK is returned. Or, if an error occurs, an -** SQLite error code is returned. The final value of the output parameters -** is undefined in this case. -** -** xTokenize_v2: -** Tokenize text using the tokenizer belonging to the FTS5 table. This -** API is the same as the xTokenize() API, except that it allows a tokenizer -** locale to be specified. -*/ -type TFts5ExtensionApi1 = struct { - FiVersion int32 - FxUserData uintptr - FxColumnCount uintptr - FxRowCount uintptr - FxColumnTotalSize uintptr - FxTokenize uintptr - FxPhraseCount uintptr - FxPhraseSize uintptr - FxInstCount uintptr - FxInst uintptr - FxRowid uintptr - FxColumnText uintptr - FxColumnSize uintptr - FxQueryPhrase uintptr - FxSetAuxdata uintptr - FxGetAuxdata uintptr - FxPhraseFirst uintptr - FxPhraseNext uintptr - FxPhraseFirstColumn uintptr - FxPhraseNextColumn uintptr - FxQueryToken uintptr - FxInstToken uintptr - FxColumnLocale uintptr - FxTokenize_v2 uintptr -} - -type Fts5ExtensionApi1 = TFts5ExtensionApi1 - type Tfts5_tokenizer_v2 = struct { FiVersion int32 FxCreate uintptr @@ -25223,15 +24498,6 @@ type Tfts5_tokenizer_v2 = struct { type fts5_tokenizer_v2 = Tfts5_tokenizer_v2 -type Tfts5_tokenizer_v21 = struct { - FiVersion int32 - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer_v21 = Tfts5_tokenizer_v21 - // C documentation // // /* @@ -25247,14 +24513,6 @@ type Tfts5_tokenizer = struct { type fts5_tokenizer = Tfts5_tokenizer -type Tfts5_tokenizer1 = struct { - FxCreate uintptr - FxDelete uintptr - FxTokenize uintptr -} - -type fts5_tokenizer1 = Tfts5_tokenizer1 - /* Flags that may be passed as the third argument to xTokenize() */ /* Flags that may be passed by the tokenizer implementation back to FTS5 @@ -25280,17 +24538,6 @@ type Tfts5_api = struct { type fts5_api = Tfts5_api -type Tfts5_api1 = struct { - FiVersion int32 - FxCreateTokenizer uintptr - FxFindTokenizer uintptr - FxCreateFunction uintptr - FxCreateTokenizer_v2 uintptr - FxFindTokenizer_v2 uintptr -} - -type fts5_api1 = Tfts5_api1 - /* ** END OF REGISTRATION API *************************************************************************/ @@ -25734,52 +24981,6 @@ type THashElem = struct { type HashElem = THashElem -/* A complete hash table is an instance of the following structure. -** The internals of this structure are intended to be opaque -- client -** code should not attempt to access or modify the fields of this structure -** directly. Change this structure only by using the routines below. -** However, some of the "procedures" and "functions" for modifying and -** accessing this structure are really macros, so we can't really make -** this structure opaque. -** -** All elements of the hash table are on a single doubly-linked list. -** Hash.first points to the head of this list. -** -** There are Hash.htsize buckets. Each bucket points to a spot in -** the global doubly-linked list. The contents of the bucket are the -** element pointed to plus the next _ht.count-1 elements in the list. -** -** Hash.htsize and Hash.ht may be zero. In that case lookup is done -** by a linear search of the global list. For small tables, the -** Hash.ht table is never allocated because if there are few elements -** in the table, it is faster to do a linear search than to manage -** the hash table. - */ -type THash1 = struct { - Fhtsize uint32 - Fcount uint32 - Ffirst uintptr - Fht uintptr -} - -type Hash1 = THash1 - -/* Each element in the hash table is an instance of the following -** structure. All elements are stored on a single doubly-linked list. -** -** Again, this structure is intended to be opaque, but it can't really -** be opaque because it is used by macros. - */ -type THashElem1 = struct { - Fnext uintptr - Fprev uintptr - Fdata uintptr - FpKey uintptr - Fh uint32 -} - -type HashElem1 = THashElem1 - type Tsize_t = uint32 type size_t = Tsize_t @@ -26317,14 +25518,6 @@ type TBusyHandler = struct { type BusyHandler = TBusyHandler -type TBusyHandler1 = struct { - FxBusyHandler uintptr - FpBusyArg uintptr - FnBusy int32 -} - -type BusyHandler1 = TBusyHandler1 - /* ** Name of table that holds the database schema. ** @@ -26569,12 +25762,13 @@ type TExpr = struct { FpAggInfo uintptr Fy struct { FpWin [0]uintptr + FnReg [0]int32 Fsub [0]struct { FiAddr int32 FregReturn int32 } FpTab uintptr - F__ccgo_pad3 [4]byte + F__ccgo_pad4 [4]byte } } @@ -27065,10 +26259,6 @@ type TStrAccum = struct { type StrAccum = TStrAccum -type Tsqlite3_str1 = TStrAccum - -type sqlite3_str1 = Tsqlite3_str1 - /* Internal alias for sqlite3_str */ type TTable = struct { FzName uintptr @@ -27508,9 +26698,9 @@ type DbPage = TDbPage // /* // ** Handle type for pages. // */ -type TPgHdr2 = TDbPage +type TPgHdr = TDbPage -type PgHdr2 = TPgHdr2 +type PgHdr = TPgHdr /* Functions to support testing and debugging. */ @@ -27643,56 +26833,6 @@ type TBtreePayload = struct { type BtreePayload = TBtreePayload -/* Allowed flags for sqlite3BtreeDelete() and sqlite3BtreeInsert() */ - -/* An instance of the BtreePayload object describes the content of a single -** entry in either an index or table btree. -** -** Index btrees (used for indexes and also WITHOUT ROWID tables) contain -** an arbitrary key and no data. These btrees have pKey,nKey set to the -** key and the pData,nData,nZero fields are uninitialized. The aMem,nMem -** fields give an array of Mem objects that are a decomposition of the key. -** The nMem field might be zero, indicating that no decomposition is available. -** -** Table btrees (used for rowid tables) contain an integer rowid used as -** the key and passed in the nKey field. The pKey field is zero. -** pData,nData hold the content of the new entry. nZero extra zero bytes -** are appended to the end of the content when constructing the entry. -** The aMem,nMem fields are uninitialized for table btrees. -** -** Field usage summary: -** -** Table BTrees Index Btrees -** -** pKey always NULL encoded key -** nKey the ROWID length of pKey -** pData data not used -** aMem not used decomposed key value -** nMem not used entries in aMem -** nData length of pData not used -** nZero extra zeros after pData not used -** -** This object is used to pass information into sqlite3BtreeInsert(). The -** same information used to be passed as five separate parameters. But placing -** the information into this object helps to keep the interface more -** organized and understandable, and it also helps the resulting code to -** run a little faster by using fewer registers for parameter passing. - */ -type TBtreePayload1 = struct { - F__ccgo_align [0]uint32 - FpKey uintptr - F__ccgo_align1 [4]byte - FnKey Tsqlite3_int64 - FpData uintptr - FaMem uintptr - FnMem Tu16 - FnData int32 - FnZero int32 - F__ccgo_pad7 [4]byte -} - -type BtreePayload1 = TBtreePayload1 - /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ @@ -27800,16 +26940,6 @@ type TMem = struct { type Mem = TMem -// C documentation -// -// /* -// ** The names of the following types declared in vdbeInt.h are required -// ** for the VdbeOp definition. -// */ -type Tsqlite3_value1 = TMem - -type sqlite3_value1 = Tsqlite3_value1 - type TSubProgram = struct { FaOp uintptr FnOp int32 @@ -27833,38 +26963,11 @@ type TSubrtnSig = struct { type SubrtnSig = TSubrtnSig -/* -** A signature for a reusable subroutine that materializes the RHS of -** an IN operator. - */ -type TSubrtnSig1 = struct { - FselId int32 - FbComplete Tu8 - FzAff uintptr - FiTable int32 - FiAddr int32 - FregReturn int32 -} - -type SubrtnSig1 = TSubrtnSig1 - /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ -type TVdbeOp1 = struct { - Fopcode Tu8 - Fp4type int8 - Fp5 Tu16 - Fp1 int32 - Fp2 int32 - Fp3 int32 - Fp4 Tp4union -} - -type VdbeOp1 = TVdbeOp1 - type TVdbeOp = struct { Fopcode Tu8 Fp4type int8 @@ -27877,34 +26980,10 @@ type TVdbeOp = struct { type VdbeOp = TVdbeOp -/* -** A sub-routine used to implement a trigger program. - */ -type TSubProgram1 = struct { - FaOp uintptr - FnOp int32 - FnMem int32 - FnCsr int32 - FaOnce uintptr - Ftoken uintptr - FpNext uintptr -} - -type SubProgram1 = TSubProgram1 - /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ -type TVdbeOpList1 = struct { - Fopcode Tu8 - Fp1 int8 - Fp2 int8 - Fp3 int8 -} - -type VdbeOpList1 = TVdbeOpList1 - type TVdbeOpList = struct { Fopcode Tu8 Fp1 int8 @@ -27918,92 +26997,6 @@ type TRecordCompare = uintptr type RecordCompare = TRecordCompare -/* Use SQLITE_ENABLE_EXPLAIN_COMMENTS to enable generation of extra -** comments on each VDBE opcode. -** -** Use the SQLITE_ENABLE_MODULE_COMMENTS macro to see some extra no-op -** comments in VDBE programs that show key decision points in the code -** generator. - */ - -/* -** The VdbeCoverage macros are used to set a coverage testing point -** for VDBE branch instructions. The coverage testing points are line -** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalgamation build. That's ok since a VDBE branch -** coverage build designed for testing the test suite only. No application -** should ever ship with VDBE branch coverage measuring turned on. -** -** VdbeCoverage(v) // Mark the previously coded instruction -** // as a branch -** -** VdbeCoverageIf(v, conditional) // Mark previous if conditional true -** -** VdbeCoverageAlwaysTaken(v) // Previous branch is always taken -** -** VdbeCoverageNeverTaken(v) // Previous branch is never taken -** -** VdbeCoverageNeverNull(v) // Previous three-way branch is only -** // taken on the first two ways. The -** // NULL option is not possible -** -** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distinguishing equal and not-equal. -** -** Every VDBE branch operation must be tagged with one of the macros above. -** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and -** -DSQLITE_DEBUG then an ALWAYS() will fail in the vdbeTakeBranch() -** routine in vdbe.c, alerting the developer to the missed tag. -** -** During testing, the test application will invoke -** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback -** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number of the VdbeCoverage macro and -** flags to indicate whether or not the branch was taken. The test application -** is responsible for keeping track of this and reporting byte-code branches -** that are never taken. -** -** See the VdbeBranchTaken() macro and vdbeTakeBranch() function in the -** vdbe.c source file for additional information. - */ - -/************** End of vdbe.h ************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include pcache.h in the middle of sqliteInt.h ****************/ -/************** Begin file pcache.h ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the interface that the sqlite page cache -** subsystem. - */ - -type TPgHdr = struct { - F__ccgo_align [0]uint32 - FpPage uintptr - FpData uintptr - FpExtra uintptr - FpCache uintptr - FpDirty uintptr - FpPager uintptr - Fpgno TPgno - Fflags Tu16 - F__ccgo_align8 [2]byte - FnRef Ti64 - FpDirtyNext uintptr - FpDirtyPrev uintptr -} - -type PgHdr = TPgHdr - type TPCache = struct { F__ccgo_align [0]uint32 FpDirty uintptr @@ -28024,187 +27017,6 @@ type TPCache = struct { type PCache = TPCache -/************** End of mutex.h ***********************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ - -/* The SQLITE_EXTRA_DURABLE compile-time option used to set the default -** synchronous setting to EXTRA. It is no longer supported. - */ - -/* -** Default synchronous levels. -** -** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ -** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. -** -** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS -** OFF 1 0 -** NORMAL 2 1 -** FULL 3 2 -** EXTRA 4 3 -** -** The "PRAGMA synchronous" statement also uses the zero-based numbers. -** In other words, the zero-based numbers are used for all external interfaces -** and the one-based values are used internally. - */ - -/* -** Each database file to be accessed by the system is an instance -** of the following structure. There are normally two of these structures -** in the sqlite.aDb[] array. aDb[0] is the main database file and -** aDb[1] is the database file used to hold temporary tables. Additional -** databases may be attached. - */ -type TDb1 = struct { - FzDbSName uintptr - FpBt uintptr - Fsafety_level Tu8 - FbSyncSet Tu8 - FpSchema uintptr -} - -type Db1 = TDb1 - -/* -** An instance of the following structure stores a database schema. -** -** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. -** In shared cache mode, a single Schema object can be shared by multiple -** Btrees that refer to the same underlying BtShared object. -** -** Schema objects are automatically deallocated when the last Btree that -** references them is destroyed. The TEMP Schema is manually freed by -** sqlite3_close(). -* -** A thread must be holding a mutex on the corresponding Btree in order -** to access Schema content. This implies that the thread must also be -** holding a mutex on the sqlite3 connection pointer that owns the Btree. -** For a TEMP Schema, only the connection mutex is required. - */ -type TSchema1 = struct { - Fschema_cookie int32 - FiGeneration int32 - FtblHash THash - FidxHash THash - FtrigHash THash - FfkeyHash THash - FpSeqTab uintptr - Ffile_format Tu8 - Fenc Tu8 - FschemaFlags Tu16 - Fcache_size int32 -} - -type Schema1 = TSchema1 - -/* -** These macros can be used to test, set, or clear bits in the -** Db.pSchema->flags field. - */ - -/* -** Allowed values for the DB.pSchema->flags field. -** -** The DB_SchemaLoaded flag is set after the database schema has been -** read into internal hash tables. -** -** DB_UnresetViews means that one or more views have column names that -** have been filled out. If the schema changes, these column names might -** changes and so the view will need to be reset. - */ - -/* -** The number of different kinds of things that can be limited -** using the sqlite3_limit() interface. - */ - -/* -** Lookaside malloc is a set of fixed-size buffers that can be used -** to satisfy small transient memory allocation requests for objects -** associated with a particular database connection. The use of -** lookaside malloc provides a significant performance enhancement -** (approx 10%) by avoiding numerous malloc/free requests while parsing -** SQL statements. -** -** The Lookaside structure holds configuration information about the -** lookaside malloc subsystem. Each available memory allocation in -** the lookaside subsystem is stored on a linked list of LookasideSlot -** objects. -** -** Lookaside allocations are only allowed for objects that are associated -** with a particular database connection. Hence, schema information cannot -** be stored in lookaside because in shared cache mode the schema information -** is shared by multiple database connections. Therefore, while parsing -** schema information, the Lookaside.bEnabled flag is cleared so that -** lookaside allocations are not used to construct the schema objects. -** -** New lookaside allocations are only allowed if bDisable==0. When -** bDisable is greater than zero, sz is set to zero which effectively -** disables lookaside without adding a new test for the bDisable flag -** in a performance-critical path. sz should be set by to szTrue whenever -** bDisable changes back to zero. -** -** Lookaside buffers are initially held on the pInit list. As they are -** used and freed, they are added back to the pFree list. New allocations -** come off of pFree first, then pInit as a fallback. This dual-list -** allows use to compute a high-water mark - the maximum number of allocations -** outstanding at any point in the past - by subtracting the number of -** allocations on the pInit list from the total number of allocations. -** -** Enhancement on 2019-12-12: Two-size-lookaside -** The default lookaside configuration is 100 slots of 1200 bytes each. -** The larger slot sizes are important for performance, but they waste -** a lot of space, as most lookaside allocations are less than 128 bytes. -** The two-size-lookaside enhancement breaks up the lookaside allocation -** into two pools: One of 128-byte slots and the other of the default size -** (1200-byte) slots. Allocations are filled from the small-pool first, -** failing over to the full-size pool if that does not work. Thus more -** lookaside slots are available while also using less memory. -** This enhancement can be omitted by compiling with -** SQLITE_OMIT_TWOSIZE_LOOKASIDE. - */ -type TLookaside1 = struct { - FbDisable Tu32 - Fsz Tu16 - FszTrue Tu16 - FbMalloced Tu8 - FnSlot Tu32 - FanStat [3]Tu32 - FpInit uintptr - FpFree uintptr - FpSmallInit uintptr - FpSmallFree uintptr - FpMiddle uintptr - FpStart uintptr - FpEnd uintptr - FpTrueEnd uintptr -} - -type Lookaside1 = TLookaside1 - -type TLookasideSlot1 = struct { - FpNext uintptr -} - -type LookasideSlot1 = TLookasideSlot1 - -/* Size of the smaller allocations in two-size lookaside */ - -/* -** A hash table for built-in function definitions. (Application-defined -** functions use a regular table table from hash.h.) -** -** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. -** Collisions are on the FuncDef.u.pHash chain. Use the SQLITE_FUNC_HASH() -** macro to compute a hash on the function name. - */ -type TFuncDefHash1 = struct { - Fa [23]uintptr -} - -type FuncDefHash1 = TFuncDefHash1 - // C documentation // // /* @@ -28214,931 +27026,6 @@ type Tsqlite3_xauth = uintptr type sqlite3_xauth = Tsqlite3_xauth -/* This is an extra SQLITE_TRACE macro that indicates "legacy" tracing -** in the style of sqlite3_trace() - */ - -/* -** Maximum number of sqlite3.aDb[] entries. This is the number of attached -** databases plus 2 for "main" and "temp". - */ - -/* -** Each database connection is an instance of the following structure. - */ -type Tsqlite31 = struct { - F__ccgo_align [0]uint32 - FpVfs uintptr - FpVdbe uintptr - FpDfltColl uintptr - Fmutex uintptr - FaDb uintptr - FnDb int32 - FmDbFlags Tu32 - F__ccgo_align7 [4]byte - Fflags Tu64 - FlastRowid Ti64 - FszMmap Ti64 - FnSchemaLock Tu32 - FopenFlags uint32 - FerrCode int32 - FerrByteOffset int32 - FerrMask int32 - FiSysErrno int32 - FdbOptFlags Tu32 - Fenc Tu8 - FautoCommit Tu8 - Ftemp_store Tu8 - FmallocFailed Tu8 - FbBenignMalloc Tu8 - FdfltLockMode Tu8 - FnextAutovac int8 - FsuppressErr Tu8 - FvtabOnConflict Tu8 - FisTransactionSavepoint Tu8 - FmTrace Tu8 - FnoSharedCache Tu8 - FnSqlExec Tu8 - FeOpenState Tu8 - FnextPagesize int32 - FnChange Ti64 - FnTotalChange Ti64 - FaLimit [12]int32 - FnMaxSorterMmap int32 - Finit1 Tsqlite3InitInfo - FnVdbeActive int32 - FnVdbeRead int32 - FnVdbeWrite int32 - FnVdbeExec int32 - FnVDestroy int32 - FnExtension int32 - FaExtension uintptr - Ftrace struct { - FxV2 [0]uintptr - FxLegacy uintptr - } - FpTraceArg uintptr - FxProfile uintptr - FpProfileArg uintptr - FpCommitArg uintptr - FxCommitCallback uintptr - FpRollbackArg uintptr - FxRollbackCallback uintptr - FpUpdateArg uintptr - FxUpdateCallback uintptr - FpAutovacPagesArg uintptr - FxAutovacDestr uintptr - FxAutovacPages uintptr - FpParse uintptr - FpPreUpdateArg uintptr - FxPreUpdateCallback uintptr - FpPreUpdate uintptr - FxWalCallback uintptr - FpWalArg uintptr - FxCollNeeded uintptr - FxCollNeeded16 uintptr - FpCollNeededArg uintptr - FpErr uintptr - F__ccgo_align67 [4]byte - Fu1 struct { - F__ccgo_align [0]uint32 - FnotUsed1 [0]float64 - FisInterrupted int32 - F__ccgo_pad2 [4]byte - } - Flookaside TLookaside - FxAuth Tsqlite3_xauth - FpAuthArg uintptr - FxProgress uintptr - FpProgressArg uintptr - FnProgressOps uint32 - FnVTrans int32 - FaModule THash - FpVtabCtx uintptr - FaVTrans uintptr - FpDisconnect uintptr - FaFunc THash - FaCollSeq THash - FbusyHandler TBusyHandler - FaDbStatic [2]TDb - FpSavepoint uintptr - FnAnalysisLimit int32 - FbusyTimeout int32 - FnSavepoint int32 - FnStatement int32 - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpnBytesFreed uintptr - FpDbData uintptr - FpBlockingConnection uintptr - FpUnlockConnection uintptr - FpUnlockArg uintptr - FxUnlockNotify uintptr - FpNextBlocked uintptr - F__ccgo_pad97 [4]byte -} - -type sqlite31 = Tsqlite31 - -/* -** A macro to discover the encoding of a database. - */ - -/* -** A u64 constant where the lower 32 bits are all zeros. Only the -** upper 32 bits are included in the argument. Necessary because some -** C-compilers still do not accept LL integer literals. - */ - -/* -** Possible values for the sqlite3.flags. -** -** Value constraints (enforced via assert()): -** SQLITE_FullFSync == PAGER_FULLFSYNC -** SQLITE_CkptFullFSync == PAGER_CKPT_FULLFSYNC -** SQLITE_CacheSpill == PAGER_CACHE_SPILL - */ -/* result set is empty */ -/* DELETE, or UPDATE and return */ -/* the count using a callback. */ - -/* Flags used only if debugging */ - -/* -** Allowed values for sqlite3.mDbFlags - */ - -/* -** Bits of the sqlite3.dbOptFlags field that are used by the -** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface to -** selectively disable various optimizations. - */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x0000800. Don't change it */ -/* TH3 expects this value ^^^^^^^^^^ to be 0x40000. Coordinate any change */ -/* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ - -/* -** Macros for testing whether or not optimizations are enabled or disabled. - */ - -/* -** Return true if it OK to factor constant expressions into the initialization -** code. The argument is a Parse object for the code generator. - */ - -/* Possible values for the sqlite3.eOpenState field. -** The numbers are randomly selected such that a minimum of three bits must -** change to convert any number to another or to zero - */ - -/* -** Each SQL function is defined by an instance of the following -** structure. For global built-in functions (ex: substr(), max(), count()) -** a pointer to this structure is held in the sqlite3BuiltinFunctions object. -** For per-connection application-defined functions, a pointer to this -** structure is held in the db->aHash hash table. -** -** The u.pHash field is used by the global built-ins. The u.pDestructor -** field is used by per-connection app-def functions. - */ -type TFuncDef1 = struct { - FnArg Ti16 - FfuncFlags Tu32 - FpUserData uintptr - FpNext uintptr - FxSFunc uintptr - FxFinalize uintptr - FxValue uintptr - FxInverse uintptr - FzName uintptr - Fu struct { - FpDestructor [0]uintptr - FpHash uintptr - } -} - -type FuncDef1 = TFuncDef1 - -/* -** This structure encapsulates a user-function destructor callback (as -** configured using create_function_v2()) and a reference counter. When -** create_function_v2() is called to create a function with a destructor, -** a single object of this type is allocated. FuncDestructor.nRef is set to -** the number of FuncDef objects created (either 1 or 3, depending on whether -** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor -** member of each of the new FuncDef objects is set to point to the allocated -** FuncDestructor. -** -** Thereafter, when one of the FuncDef objects is deleted, the reference -** count on this object is decremented. When it reaches 0, the destructor -** is invoked and the FuncDestructor structure freed. - */ -type TFuncDestructor1 = struct { - FnRef int32 - FxDestroy uintptr - FpUserData uintptr -} - -type FuncDestructor1 = TFuncDestructor1 - -/* -** Possible values for FuncDef.flags. Note that the _LENGTH and _TYPEOF -** values must correspond to OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG. And -** SQLITE_FUNC_CONSTANT must be the same as SQLITE_DETERMINISTIC. There -** are assert() statements in the code to verify this. -** -** Value constraints (enforced via assert()): -** SQLITE_FUNC_MINMAX == NC_MinMaxAgg == SF_MinMaxAgg -** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd -** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG -** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG -** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG -** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API -** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! -** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API -** -** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the -** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means that the function has side effects. -** SQLITE_INNOCUOUS is used by application code and means "not unsafe". -** See multiple instances of tag-20230109-1. - */ -/* 0x0200 -- available for reuse */ -/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ -/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ - -/* Identifier numbers for each in-line function */ - -/* -** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are -** used to create the initializers for the FuncDef structures. -** -** FUNCTION(zName, nArg, iArg, bNC, xFunc) -** Used to create a scalar function definition of a function zName -** implemented by C function xFunc that accepts nArg arguments. The -** value passed as iArg is cast to a (void*) and made available -** as the user-data (sqlite3_user_data()) for the function. If -** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. -** -** VFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag. -** -** SFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_DIRECTONLY flag. -** -** INLINE_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a function that is implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** TEST_FUNC(zName, nArg, iFuncId, mFlags) -** zName is the name of a test-only function implemented by in-line -** byte code rather than by the usual callbacks. The iFuncId -** parameter determines the function id. The mFlags parameter is -** optional SQLITE_FUNC_ flags for this function. -** -** DFUNCTION(zName, nArg, iArg, bNC, xFunc) -** Like FUNCTION except it omits the SQLITE_FUNC_CONSTANT flag and -** adds the SQLITE_FUNC_SLOCHNG flag. Used for date & time functions -** and functions like sqlite_version() that can change, but not during -** a single query. The iArg is ignored. The user-data is always set -** to a NULL pointer. The bNC parameter is not used. -** -** MFUNCTION(zName, nArg, xPtr, xFunc) -** For math-library functions. xPtr is an arbitrary pointer. -** -** PURE_DATE(zName, nArg, iArg, bNC, xFunc) -** Used for "pure" date/time functions, this macro is like DFUNCTION -** except that it does set the SQLITE_FUNC_CONSTANT flags. iArg is -** ignored and the user-data for these functions is set to an -** arbitrary non-NULL pointer. The bNC parameter is not used. -** -** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** WAGGREGATE(zName, nArg, iArg, xStep, xFinal, xValue, xInverse) -** Used to create an aggregate function definition implemented by -** the C functions xStep and xFinal. The first four parameters -** are interpreted in the same way as the first 4 parameters to -** FUNCTION(). -** -** LIKEFUNC(zName, nArg, pArg, flags) -** Used to create a scalar function definition of a function zName -** that accepts nArg arguments and is implemented by a call to C -** function likeFunc. Argument pArg is cast to a (void *) and made -** available as the function user-data (sqlite3_user_data()). The -** FuncDef.flags variable is set to the value passed as the flags -** parameter. - */ - -/* -** All current savepoints are stored in a linked list starting at -** sqlite3.pSavepoint. The first element in the list is the most recently -** opened savepoint. Savepoints are added to the list by the vdbe -** OP_Savepoint instruction. - */ -type TSavepoint1 = struct { - F__ccgo_align [0]uint32 - FzName uintptr - F__ccgo_align1 [4]byte - FnDeferredCons Ti64 - FnDeferredImmCons Ti64 - FpNext uintptr - F__ccgo_pad4 [4]byte -} - -type Savepoint1 = TSavepoint1 - -/* -** The following are used as the second parameter to sqlite3Savepoint(), -** and as the P1 argument to the OP_Savepoint instruction. - */ - -/* -** Each SQLite module (virtual table definition) is defined by an -** instance of the following structure, stored in the sqlite3.aModule -** hash table. - */ -type TModule1 = struct { - FpModule uintptr - FzName uintptr - FnRefModule int32 - FpAux uintptr - FxDestroy uintptr - FpEpoTab uintptr -} - -type Module1 = TModule1 - -/* -** Information about each column of an SQL table is held in an instance -** of the Column structure, in the Table.aCol[] array. -** -** Definitions: -** -** "table column index" This is the index of the column in the -** Table.aCol[] array, and also the index of -** the column in the original CREATE TABLE stmt. -** -** "storage column index" This is the index of the column in the -** record BLOB generated by the OP_MakeRecord -** opcode. The storage column index is less than -** or equal to the table column index. It is -** equal if and only if there are no VIRTUAL -** columns to the left. -** -** Notes on zCnName: -** The zCnName field stores the name of the column, the datatype of the -** column, and the collating sequence for the column, in that order, all in -** a single allocation. Each string is 0x00 terminated. The datatype -** is only included if the COLFLAG_HASTYPE bit of colFlags is set and the -** collating sequence name is only included if the COLFLAG_HASCOLL bit is -** set. - */ -type TColumn1 = struct { - FzCnName uintptr - F__ccgo4 uint8 - Faffinity int8 - FszEst Tu8 - FhName Tu8 - FiDflt Tu16 - FcolFlags Tu16 -} - -type Column1 = TColumn1 - -/* Allowed values for Column.eCType. -** -** Values must match entries in the global constant arrays -** sqlite3StdTypeLen[] and sqlite3StdType[]. Each value is one more -** than the offset into these arrays for the corresponding name. -** Adjust the SQLITE_N_STDTYPE value if adding or removing entries. - */ - -/* Allowed values for Column.colFlags. -** -** Constraints: -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** A "Collating Sequence" is defined by an instance of the following -** structure. Conceptually, a collating sequence consists of a name and -** a comparison routine that defines the order of that sequence. -** -** If CollSeq.xCmp is NULL, it means that the -** collating sequence is undefined. Indices built on an undefined -** collating sequence may not be read or written. - */ -type TCollSeq1 = struct { - FzName uintptr - Fenc Tu8 - FpUser uintptr - FxCmp uintptr - FxDel uintptr -} - -type CollSeq1 = TCollSeq1 - -/* -** A sort order can be either ASC or DESC. - */ - -/* -** Column affinity types. -** -** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and -** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve -** the speed a little by numbering the values consecutively. -** -** But rather than start with 0 or 1, we begin with 'A'. That way, -** when multiple affinity types are concatenated into a string and -** used as the P4 operand, they will be more readable. -** -** Note also that the numeric types are grouped together so that testing -** for a numeric type is a single comparison. And the BLOB type is first. - */ - -/* -** The SQLITE_AFF_MASK values masks off the significant bits of an -** affinity value. - */ - -/* -** Additional bit values that can be ORed with an affinity without -** changing the affinity. -** -** The SQLITE_NOTNULL flag is a combination of NULLEQ and JUMPIFNULL. -** It causes an assert() to fire if either operand to a comparison -** operator is NULL. It is added to certain comparison operators to -** prove that the operands are always NOT NULL. - */ - -/* -** An object of this type is created for each virtual table present in -** the database schema. -** -** If the database schema is shared, then there is one instance of this -** structure for each database connection (sqlite3*) that uses the shared -** schema. This is because each database connection requires its own unique -** instance of the sqlite3_vtab* handle used to access the virtual table -** implementation. sqlite3_vtab* handles can not be shared between -** database connections, even when the rest of the in-memory database -** schema is shared, as the implementation often stores the database -** connection handle passed to it via the xConnect() or xCreate() method -** during initialization internally. This database connection handle may -** then be used by the virtual table implementation to access real tables -** within the database. So that they appear as part of the callers -** transaction, these accesses need to be made via the same database -** connection as that used to execute SQL operations on the virtual table. -** -** All VTable objects that correspond to a single table in a shared -** database schema are initially stored in a linked-list pointed to by -** the Table.pVTable member variable of the corresponding Table object. -** When an sqlite3_prepare() operation is required to access the virtual -** table, it searches the list for the VTable that corresponds to the -** database connection doing the preparing so as to use the correct -** sqlite3_vtab* handle in the compiled query. -** -** When an in-memory Table object is deleted (for example when the -** schema is being reloaded for some reason), the VTable objects are not -** deleted and the sqlite3_vtab* handles are not xDisconnect()ed -** immediately. Instead, they are moved from the Table.pVTable list to -** another linked list headed by the sqlite3.pDisconnect member of the -** corresponding sqlite3 structure. They are then deleted/xDisconnected -** next time a statement is prepared using said sqlite3*. This is done -** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. -** Refer to comments above function sqlite3VtabUnlockList() for an -** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect -** list without holding the corresponding sqlite3.mutex mutex. -** -** The memory for objects of this type is always allocated by -** sqlite3DbMalloc(), using the connection handle stored in VTable.db as -** the first argument. - */ -type TVTable1 = struct { - Fdb uintptr - FpMod uintptr - FpVtab uintptr - FnRef int32 - FbConstraint Tu8 - FbAllSchemas Tu8 - FeVtabRisk Tu8 - FiSavepoint int32 - FpNext uintptr -} - -type VTable1 = TVTable1 - -/* Allowed values for VTable.eVtabRisk - */ - -/* -** The schema for each SQL table, virtual table, and view is represented -** in memory by an instance of the following structure. - */ -type TTable1 = struct { - FzName uintptr - FaCol uintptr - FpIndex uintptr - FzColAff uintptr - FpCheck uintptr - Ftnum TPgno - FnTabRef Tu32 - FtabFlags Tu32 - FiPKey Ti16 - FnCol Ti16 - FnNVCol Ti16 - FnRowLogEst TLogEst - FszTabRow TLogEst - FkeyConf Tu8 - FeTabType Tu8 - Fu struct { - Fview [0]struct { - FpSelect uintptr - } - Fvtab [0]struct { - FnArg int32 - FazArg uintptr - Fp uintptr - } - Ftab struct { - FaddColOffset int32 - FpFKey uintptr - FpDfltList uintptr - } - } - FpTrigger uintptr - FpSchema uintptr - FaHx [16]Tu8 -} - -type Table1 = TTable1 - -/* -** Allowed values for Table.tabFlags. -** -** TF_OOOHidden applies to tables or view that have hidden columns that are -** followed by non-hidden columns. Example: "CREATE VIRTUAL TABLE x USING -** vtab1(a HIDDEN, b);". Since "b" is a non-hidden column but "a" is hidden, -** the TF_OOOHidden attribute would apply in this case. Such tables require -** special handling during INSERT processing. The "OOO" means "Out Of Order". -** -** Constraints: -** -** TF_HasVirtual == COLFLAG_VIRTUAL -** TF_HasStored == COLFLAG_STORED -** TF_HasHidden == COLFLAG_HIDDEN - */ - -/* -** Allowed values for Table.eTabType - */ - -/* -** Test to see whether or not a table is a virtual table. This is -** done as a macro so that it will be optimized out when virtual -** table support is omitted from the build. - */ - -/* -** Macros to determine if a column is hidden. IsOrdinaryHiddenColumn() -** only works for non-virtual tables (ordinary tables and views) and is -** always false unless SQLITE_ENABLE_HIDDEN_COLUMNS is defined. The -** IsHiddenColumn() macro is general purpose. - */ - -/* Does the table have a rowid */ - -/* Macro is true if the SQLITE_ALLOW_ROWID_IN_VIEW (mis-)feature is -** available. By default, this macro is false - */ - -/* -** Each foreign key constraint is an instance of the following structure. -** -** A foreign key is associated with two tables. The "from" table is -** the table that contains the REFERENCES clause that creates the foreign -** key. The "to" table is the table that is named in the REFERENCES clause. -** Consider this example: -** -** CREATE TABLE ex1( -** a INTEGER PRIMARY KEY, -** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) -** ); -** -** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". -** Equivalent names: -** -** from-table == child-table -** to-table == parent-table -** -** Each REFERENCES clause generates an instance of the following structure -** which is attached to the from-table. The to-table need not exist when -** the from-table is created. The existence of the to-table is not checked. -** -** The list of all parents for child Table X is held at X.pFKey. -** -** A list of all children for a table named Z (which might not even exist) -** is held in Schema.fkeyHash with a hash key of Z. - */ -type TFKey1 = struct { - FpFrom uintptr - FpNextFrom uintptr - FzTo uintptr - FpNextTo uintptr - FpPrevTo uintptr - FnCol int32 - FisDeferred Tu8 - FaAction [2]Tu8 - FapTrigger [2]uintptr -} - -type FKey1 = TFKey1 - -/* The size (in bytes) of an FKey object holding N columns. The answer -** does NOT include space to hold the zTo name. */ - -/* -** SQLite supports many different ways to resolve a constraint -** error. ROLLBACK processing means that a constraint violation -** causes the operation in process to fail and for the current transaction -** to be rolled back. ABORT processing means the operation in process -** fails and any prior changes from that one operation are backed out, -** but the transaction is not rolled back. FAIL processing means that -** the operation in progress stops and returns an error code. But prior -** changes due to the same operation are not backed out and no rollback -** occurs. IGNORE means that the particular row that caused the constraint -** error is not inserted or updated. Processing continues and no error -** is returned. REPLACE means that preexisting database rows that caused -** a UNIQUE constraint violation are removed so that the new insert or -** update can proceed. Processing continues and no error is reported. -** UPDATE applies to insert operations only and means that the insert -** is omitted and the DO UPDATE clause of an upsert is run instead. -** -** RESTRICT, SETNULL, SETDFLT, and CASCADE actions apply only to foreign keys. -** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the -** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign -** key is set to NULL. SETDFLT means that the foreign key is set -** to its default value. CASCADE means that a DELETE or UPDATE of the -** referenced table row is propagated into the row that holds the -** foreign key. -** -** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorithm is required from context. -** -** The following symbolic values are used to record which type -** of conflict resolution action to take. - */ - -/* -** An instance of the following structure is passed as the first -** argument to sqlite3VdbeKeyCompare and is used to control the -** comparison of the two index keys. -** -** Note that aSortOrder[] and aColl[] have nField+1 slots. There -** are nField slots for the columns of an index then one extra slot -** for the rowid at the end. - */ -type TKeyInfo1 = struct { - FnRef Tu32 - Fenc Tu8 - FnKeyField Tu16 - FnAllField Tu16 - Fdb uintptr - FaSortFlags uintptr -} - -type KeyInfo1 = TKeyInfo1 - -/* The size (in bytes) of a KeyInfo object with up to N fields */ - -/* -** Allowed bit values for entries in the KeyInfo.aSortFlags[] array. - */ - -/* -** This object holds a record which has been parsed out into individual -** fields, for the purposes of doing a comparison. -** -** A record is an object that contains one or more fields of data. -** Records are used to store the content of a table row and to store -** the key of an index. A blob encoding of a record is created by -** the OP_MakeRecord opcode of the VDBE and is disassembled by the -** OP_Column opcode. -** -** An instance of this object serves as a "key" for doing a search on -** an index b+tree. The goal of the search is to find the entry that -** is closed to the key described by this object. This object might hold -** just a prefix of the key. The number of fields is given by -** pKeyInfo->nField. -** -** The r1 and r2 fields are the values to return if this key is less than -** or greater than a key in the btree, respectively. These are normally -** -1 and +1 respectively, but might be inverted to +1 and -1 if the b-tree -** is in DESC order. -** -** The key comparison functions actually return default_rc when they find -** an equals comparison. default_rc can be -1, 0, or +1. If there are -** multiple entries in the b-tree with the same key (when only looking -** at the first pKeyInfo->nFields,) then default_rc can be set to -1 to -** cause the search to find the last match, or +1 to cause the search to -** find the first match. -** -** The key comparison functions will set eqSeen to true if they ever -** get and equal results when comparing this structure to a b-tree record. -** When default_rc!=0, the search might end up on the record immediately -** before the first match or immediately after the last match. The -** eqSeen field will indicate whether or not an exact match exists in the -** b-tree. - */ -type TUnpackedRecord1 = struct { - F__ccgo_align [0]uint32 - FpKeyInfo uintptr - FaMem uintptr - Fu struct { - F__ccgo_align [0]uint32 - Fi [0]Ti64 - Fz uintptr - F__ccgo_pad2 [4]byte - } - Fn int32 - FnField Tu16 - Fdefault_rc Ti8 - FerrCode Tu8 - Fr1 Ti8 - Fr2 Ti8 - FeqSeen Tu8 - F__ccgo_pad10 [5]byte -} - -type UnpackedRecord1 = TUnpackedRecord1 - -/* -** Each SQL index is represented in memory by an -** instance of the following structure. -** -** The columns of the table that are to be indexed are described -** by the aiColumn[] field of this structure. For example, suppose -** we have the following table and index: -** -** CREATE TABLE Ex1(c1 int, c2 int, c3 text); -** CREATE INDEX Ex2 ON Ex1(c3,c1); -** -** In the Table structure describing Ex1, nCol==3 because there are -** three columns in the table. In the Index structure describing -** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. -** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the -** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. -** The second column to be indexed (c1) has an index of 0 in -** Ex1.aCol[], hence Ex2.aiColumn[1]==0. -** -** The Index.onError field determines whether or not the indexed columns -** must be unique and what to do if they are not. When Index.onError=OE_None, -** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicates which conflict resolution -** algorithm to employ when an attempt is made to insert a non-unique -** element. -** -** The colNotIdxed bitmask is used in combination with SrcItem.colUsed -** for a fast test to see if an index can serve as a covering index. -** colNotIdxed has a 1 bit for every column of the original table that -** is *not* available in the index. Thus the expression -** "colUsed & colNotIdxed" will be non-zero if the index is not a -** covering index. The most significant bit of of colNotIdxed will always -** be true (note-20221022-a). If a column beyond the 63rd column of the -** table is used, the "colUsed & colNotIdxed" test will always be non-zero -** and we have to assume either that the index is not covering, or use -** an alternative (slower) algorithm to determine whether or not -** the index is covering. -** -** While parsing a CREATE TABLE or CREATE INDEX statement in order to -** generate VDBE code (as opposed to parsing one read from an sqlite_schema -** table as part of parsing an existing database schema), transient instances -** of this structure may be created. In this case the Index.tnum variable is -** used to store the address of a VDBE instruction, not a database page -** number (it cannot - the database page is not allocated until the VDBE -** program is executed). See convertToWithoutRowidTable() for details. - */ -type TIndex1 = struct { - F__ccgo_align [0]uint32 - FzName uintptr - FaiColumn uintptr - FaiRowLogEst uintptr - FpTable uintptr - FzColAff uintptr - FpNext uintptr - FpSchema uintptr - FaSortOrder uintptr - FazColl uintptr - FpPartIdxWhere uintptr - FaColExpr uintptr - Ftnum TPgno - FszIdxRow TLogEst - FnKeyCol Tu16 - FnColumn Tu16 - FonError Tu8 - F__ccgo56 uint16 - FnSample int32 - FmxSample int32 - FnSampleCol int32 - FaAvgEq uintptr - FaSample uintptr - FaiRowEst uintptr - F__ccgo_align33 [4]byte - FnRowEst0 TtRowcnt - FcolNotIdxed TBitmask -} - -type Index1 = TIndex1 - -/* -** Allowed values for Index.idxType - */ - -/* Return true if index X is a PRIMARY KEY index */ - -/* Return true if index X is a UNIQUE index */ - -/* The Index.aiColumn[] values are normally positive integer. But -** there are some negative values that have special meaning: - */ - -/* -** Each sample stored in the sqlite_stat4 table is represented in memory -** using a structure of this type. See documentation at the top of the -** analyze.c source file for additional information. - */ -type TIndexSample1 = struct { - Fp uintptr - Fn int32 - FanEq uintptr - FanLt uintptr - FanDLt uintptr -} - -type IndexSample1 = TIndexSample1 - -/* -** Possible values to use within the flags argument to sqlite3GetToken(). - */ - -/* -** Each token coming out of the lexer is an instance of -** this structure. Tokens are also used as part of an expression. -** -** The memory that "z" points to is owned by other objects. Take care -** that the owner of the "z" string does not deallocate the string before -** the Token goes out of scope! Very often, the "z" points to some place -** in the middle of the Parse.zSql text. But it might also point to a -** static string. - */ -type TToken1 = struct { - Fz uintptr - Fn uint32 -} - -type Token1 = TToken1 - -/* -** An instance of this structure contains information needed to generate -** code for a SELECT that contains aggregate functions. -** -** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a -** pointer to this structure. The Expr.iAgg field is the index in -** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate -** code for that node. -** -** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the -** original Select structure that describes the SELECT statement. These -** fields do not need to be freed when deallocating the AggInfo structure. - */ -type TAggInfo1 = struct { - FdirectMode Tu8 - FuseSortingIdx Tu8 - FnSortingColumn Tu32 - FsortingIdx int32 - FsortingIdxPTab int32 - FiFirstReg int32 - FpGroupBy uintptr - FaCol uintptr - FnColumn int32 - FnAccumulator int32 - FaFunc uintptr - FnFunc int32 - FselId Tu32 -} - -type AggInfo1 = TAggInfo1 - /* ** Macros to compute aCol[] and aFunc[] register numbers. ** @@ -29163,622 +27050,6 @@ type TynVar = int16 type ynVar = TynVar -/* -** Each node of an expression in the parse tree is an instance -** of this structure. -** -** Expr.op is the opcode. The integer parser token codes are reused -** as opcodes here. For example, the parser defines TK_GE to be an integer -** code representing the ">=" operator. This same integer code is reused -** to represent the greater-than-or-equal-to operator in the expression -** tree. -** -** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, -** or TK_STRING), then Expr.u.zToken contains the text of the SQL literal. If -** the expression is a variable (TK_VARIABLE), then Expr.u.zToken contains the -** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), -** then Expr.u.zToken contains the name of the function. -** -** Expr.pRight and Expr.pLeft are the left and right subexpressions of a -** binary operator. Either or both may be NULL. -** -** Expr.x.pList is a list of arguments if the expression is an SQL function, -** a CASE expression or an IN expression of the form " IN (, ...)". -** Expr.x.pSelect is used if the expression is a sub-select or an expression of -** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the -** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is -** valid. -** -** An expression of the form ID or ID.ID refers to a column in a table. -** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is -** the integer cursor number of a VDBE cursor pointing to that table and -** Expr.iColumn is the column number for the specific column. If the -** expression is used as a result in an aggregate SELECT, then the -** value is also stored in the Expr.iAgg column in the aggregate so that -** it can be accessed after all aggregates are computed. -** -** If the expression is an unbound variable marker (a question mark -** character '?' in the original SQL) then the Expr.iTable holds the index -** number for that variable. -** -** If the expression is a subquery then Expr.iColumn holds an integer -** register number containing the result of the subquery. If the -** subquery gives a constant result, then iTable is -1. If the subquery -** gives a different answer at different times during statement processing -** then iTable is the address of a subroutine that computes the subquery. -** -** If the Expr is of type OP_Column, and the table it is selecting from -** is a disk table or the "old.*" pseudo-table, then pTab points to the -** corresponding table definition. -** -** ALLOCATION NOTES: -** -** Expr objects can use a lot of memory space in database schema. To -** help reduce memory requirements, sometimes an Expr object will be -** truncated. And to reduce the number of memory allocations, sometimes -** two or more Expr objects will be stored in a single memory allocation, -** together with Expr.u.zToken strings. -** -** If the EP_Reduced and EP_TokenOnly flags are set when -** an Expr object is truncated. When EP_Reduced is set, then all -** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees -** are contained within the same memory allocation. Note, however, that -** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately -** allocated, regardless of whether or not EP_Reduced is set. - */ -type TExpr1 = struct { - Fop Tu8 - FaffExpr int8 - Fop2 Tu8 - Fflags Tu32 - Fu struct { - FiValue [0]int32 - FzToken uintptr - } - FpLeft uintptr - FpRight uintptr - Fx struct { - FpSelect [0]uintptr - FpList uintptr - } - FnHeight int32 - FiTable int32 - FiColumn TynVar - FiAgg Ti16 - Fw struct { - FiOfst [0]int32 - FiJoin int32 - } - FpAggInfo uintptr - Fy struct { - FpWin [0]uintptr - Fsub [0]struct { - FiAddr int32 - FregReturn int32 - } - FpTab uintptr - F__ccgo_pad3 [4]byte - } -} - -type Expr1 = TExpr1 - -/* The following are the meanings of bits in the Expr.flags field. -** Value restrictions: -** -** EP_Agg == NC_HasAgg == SF_HasAgg -** EP_Win == NC_HasWin - */ - -/* The EP_Propagate mask is a set of properties that automatically propagate -** upwards into parent nodes. - */ - -/* Macros can be used to test, set, or clear bits in the -** Expr.flags field. - */ - -/* Macros used to ensure that the correct members of unions are accessed -** in Expr. - */ - -/* Flags for use with Expr.vvaFlags - */ - -/* The ExprSetVVAProperty() macro is used for Verification, Validation, -** and Accreditation only. It works like ExprSetProperty() during VVA -** processes but is a no-op for delivery. - */ - -/* -** Macros to determine the number of bytes required by a normal Expr -** struct, an Expr struct with the EP_Reduced flag set in Expr.flags -** and an Expr struct with the EP_TokenOnly flag set. - */ - -/* -** Flags passed to the sqlite3ExprDup() function. See the header comment -** above sqlite3ExprDup() for details. - */ - -/* -** True if the expression passed as an argument was a function with -** an OVER() clause (a window function). - */ - -/* -** A list of expressions. Each expression may optionally have a -** name. An expr/name combination can be used in several ways, such -** as the list of "expr AS ID" fields following a "SELECT" or in the -** list of "ID = expr" items in an UPDATE. A list of expressions can -** also be used as the argument to a function, in which case the a.zName -** field is not used. -** -** In order to try to keep memory usage down, the Expr.a.zEName field -** is used for multiple purposes: -** -** eEName Usage -** ---------- ------------------------- -** ENAME_NAME (1) the AS of result set column -** (2) COLUMN= of an UPDATE -** -** ENAME_TAB DB.TABLE.NAME used to resolve names -** of subqueries -** -** ENAME_SPAN Text of the original result set -** expression. - */ -type TExprList1 = struct { - FnExpr int32 - FnAlloc int32 -} - -type ExprList1 = TExprList1 - -/* The size (in bytes) of an ExprList object that is big enough to hold -** as many as N expressions. */ - -/* -** Allowed values for Expr.a.eEName - */ - -/* -** An instance of this structure can hold a simple list of identifiers, -** such as the list "a,b,c" in the following statements: -** -** INSERT INTO t(a,b,c) VALUES ...; -** CREATE INDEX idx ON t(a,b,c); -** CREATE TRIGGER trig BEFORE UPDATE ON t(a,b,c) ...; -** -** The IdList.a.idx field is used when the IdList represents the list of -** column names after a table name in an INSERT statement. In the statement -** -** INSERT INTO t(a,b,c) ... -** -** If "a" is the k-th column of table "t", then IdList.a[0].idx==k. - */ -type TIdList1 = struct { - FnId int32 -} - -type IdList1 = TIdList1 - -/* The size (in bytes) of an IdList object that can hold up to N IDs. */ - -/* -** Allowed values for IdList.eType, which determines which value of the a.u4 -** is valid. - */ - -/* -** Details of the implementation of a subquery. - */ -type TSubquery1 = struct { - FpSelect uintptr - FaddrFillSub int32 - FregReturn int32 - FregResult int32 -} - -type Subquery1 = TSubquery1 - -/* -** The SrcItem object represents a single term in the FROM clause of a query. -** The SrcList object is mostly an array of SrcItems. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. -** -** Aggressive use of "union" helps keep the size of the object small. This -** has been shown to boost performance, in addition to saving memory. -** Access to union elements is gated by the following rules which should -** always be checked, either by an if-statement or by an assert(). -** -** Field Only access if this is true -** --------------- ----------------------------------- -** u1.zIndexedBy fg.isIndexedBy -** u1.pFuncArg fg.isTabFunc -** u1.nRow !fg.isTabFunc && !fg.isIndexedBy -** -** u2.pIBIndex fg.isIndexedBy -** u2.pCteUse fg.isCte -** -** u3.pOn !fg.isUsing -** u3.pUsing fg.isUsing -** -** u4.zDatabase !fg.fixedSchema && !fg.isSubquery -** u4.pSchema fg.fixedSchema -** u4.pSubq fg.isSubquery -** -** See also the sqlite3SrcListDelete() routine for assert() statements that -** check invariants on the fields of this object, especially the flags -** inside the fg struct. - */ -type TSrcItem1 = struct { - F__ccgo_align [0]uint32 - FzName uintptr - FzAlias uintptr - FpSTab uintptr - Ffg struct { - Fjointype Tu8 - F__ccgo4 uint32 - } - FiCursor int32 - FcolUsed TBitmask - Fu1 struct { - FpFuncArg [0]uintptr - FnRow [0]Tu32 - FzIndexedBy uintptr - } - Fu2 struct { - FpCteUse [0]uintptr - FpIBIndex uintptr - } - Fu3 struct { - FpUsing [0]uintptr - FpOn uintptr - } - Fu4 struct { - FzDatabase [0]uintptr - FpSubq [0]uintptr - FpSchema uintptr - } -} - -type SrcItem1 = TSrcItem1 - -/* -** The OnOrUsing object represents either an ON clause or a USING clause. -** It can never be both at the same time, but it can be neither. - */ -type TOnOrUsing1 = struct { - FpOn uintptr - FpUsing uintptr -} - -type OnOrUsing1 = TOnOrUsing1 - -/* -** This object represents one or more tables that are the source of -** content for an SQL statement. For example, a single SrcList object -** is used to hold the FROM clause of a SELECT statement. SrcList also -** represents the target tables for DELETE, INSERT, and UPDATE statements. -** - */ -type TSrcList1 = struct { - F__ccgo_align [0]uint32 - FnSrc int32 - FnAlloc Tu32 -} - -type SrcList1 = TSrcList1 - -/* Size (in bytes) of a SrcList object that can hold as many as N -** SrcItem objects. */ - -/* Size (in bytes( of a SrcList object that holds 1 SrcItem. This is a -** special case of SZ_SRCITEM(1) that comes up often. */ - -/* -** Permitted values of the SrcList.a.jointype field - */ - -/* -** Flags appropriate for the wctrlFlags parameter of sqlite3WhereBegin() -** and the WhereInfo.wctrlFlags member. -** -** Value constraints (enforced via assert()): -** WHERE_USE_LIMIT == SF_FixedLimit - */ -/* 0x8000 not currently used */ - -/* Allowed return values from sqlite3WhereIsDistinct() - */ - -/* -** A NameContext defines a context in which to resolve table and column -** names. The context consists of a list of tables (the pSrcList) field and -** a list of named expression (pEList). The named expression list may -** be NULL. The pSrc corresponds to the FROM clause of a SELECT or -** to the table being operated on by INSERT, UPDATE, or DELETE. The -** pEList corresponds to the result set of a SELECT and is NULL for -** other statements. -** -** NameContexts can be nested. When resolving names, the inner-most -** context is searched first. If no match is found, the next outer -** context is checked. If there is still no match, the next context -** is checked. This process continues until either a match is found -** or all contexts are check. When a match is found, the nRef member of -** the context containing the match is incremented. -** -** Each subquery gets a new NameContext. The pNext field points to the -** NameContext in the parent query. Thus the process of scanning the -** NameContext list corresponds to searching through successively outer -** subqueries looking for a match. - */ -type TNameContext1 = struct { - FpParse uintptr - FpSrcList uintptr - FuNC struct { - FpAggInfo [0]uintptr - FpUpsert [0]uintptr - FiBaseReg [0]int32 - FpEList uintptr - } - FpNext uintptr - FnRef int32 - FnNcErr int32 - FncFlags int32 - FnNestedSelect Tu32 - FpWinSelect uintptr -} - -type NameContext1 = TNameContext1 - -/* -** Allowed values for the NameContext, ncFlags field. -** -** Value constraints (all checked via assert()): -** NC_HasAgg == SF_HasAgg == EP_Agg -** NC_MinMaxAgg == SF_MinMaxAgg == SQLITE_FUNC_MINMAX -** NC_OrderAgg == SF_OrderByReqd == SQLITE_FUNC_ANYORDER -** NC_HasWin == EP_Win -** - */ -/* 0x002000 // available for reuse */ - -/* -** An instance of the following object describes a single ON CONFLICT -** clause in an upsert. -** -** The pUpsertTarget field is only set if the ON CONFLICT clause includes -** conflict-target clause. (In "ON CONFLICT(a,b)" the "(a,b)" is the -** conflict-target clause.) The pUpsertTargetWhere is the optional -** WHERE clause used to identify partial unique indexes. -** -** pUpsertSet is the list of column=expr terms of the UPDATE statement. -** The pUpsertSet field is NULL for a ON CONFLICT DO NOTHING. The -** pUpsertWhere is the WHERE clause for the UPDATE and is NULL if the -** WHERE clause is omitted. - */ -type TUpsert1 = struct { - FpUpsertTarget uintptr - FpUpsertTargetWhere uintptr - FpUpsertSet uintptr - FpUpsertWhere uintptr - FpNextUpsert uintptr - FisDoUpdate Tu8 - FisDup Tu8 - FpToFree uintptr - FpUpsertIdx uintptr - FpUpsertSrc uintptr - FregData int32 - FiDataCur int32 - FiIdxCur int32 -} - -type Upsert1 = TUpsert1 - -/* -** An instance of the following structure contains all information -** needed to generate code for a single SELECT statement. -** -** See the header comment on the computeLimitRegisters() routine for a -** detailed description of the meaning of the iLimit and iOffset fields. -** -** addrOpenEphm[] entries contain the address of OP_OpenEphemeral opcodes. -** These addresses must be stored so that we can go back and fill in -** the P4_KEYINFO and P2 parameters later. Neither the KeyInfo nor -** the number of columns in P2 can be computed at the same time -** as the OP_OpenEphm instruction is coded because not -** enough information about the compound query is known at that point. -** The KeyInfo for addrOpenTran[0] and [1] contains collating sequences -** for the result set. The KeyInfo for addrOpenEphm[2] contains collating -** sequences for the ORDER BY clause. - */ -type TSelect1 = struct { - Fop Tu8 - FnSelectRow TLogEst - FselFlags Tu32 - FiLimit int32 - FiOffset int32 - FselId Tu32 - FaddrOpenEphm [2]int32 - FpEList uintptr - FpSrc uintptr - FpWhere uintptr - FpGroupBy uintptr - FpHaving uintptr - FpOrderBy uintptr - FpPrior uintptr - FpNext uintptr - FpLimit uintptr - FpWith uintptr - FpWin uintptr - FpWinDefn uintptr -} - -type Select1 = TSelect1 - -/* -** Allowed values for Select.selFlags. The "SF" prefix stands for -** "Select Flag". -** -** Value constraints (all checked via assert()) -** SF_HasAgg == NC_HasAgg -** SF_MinMaxAgg == NC_MinMaxAgg == SQLITE_FUNC_MINMAX -** SF_OrderByReqd == NC_OrderAgg == SQLITE_FUNC_ANYORDER -** SF_FixedLimit == WHERE_USE_LIMIT - */ - -/* True if SrcItem X is a subquery that has SF_NestedFrom */ - -/* -** The results of a SELECT can be distributed in several ways, as defined -** by one of the following macros. The "SRT" prefix means "SELECT Result -** Type". -** -** SRT_Union Store results as a key in a temporary index -** identified by pDest->iSDParm. -** -** SRT_Except Remove results from the temporary index pDest->iSDParm. -** -** SRT_Exists Store a 1 in memory cell pDest->iSDParm if the result -** set is not empty. -** -** SRT_Discard Throw the results away. This is used by SELECT -** statements within triggers whose only purpose is -** the side-effects of functions. -** -** SRT_Output Generate a row of output (using the OP_ResultRow -** opcode) for each row in the result set. -** -** SRT_Mem Only valid if the result is a single column. -** Store the first column of the first result row -** in register pDest->iSDParm then abandon the rest -** of the query. This destination implies "LIMIT 1". -** -** SRT_Set The result must be a single column. Store each -** row of result as the key in table pDest->iSDParm. -** Apply the affinity pDest->affSdst before storing -** results. if pDest->iSDParm2 is positive, then it is -** a register holding a Bloom filter for the IN operator -** that should be populated in addition to the -** pDest->iSDParm table. This SRT is used to -** implement "IN (SELECT ...)". -** -** SRT_EphemTab Create an temporary table pDest->iSDParm and store -** the result there. The cursor is left open after -** returning. This is like SRT_Table except that -** this destination uses OP_OpenEphemeral to create -** the table first. -** -** SRT_Coroutine Generate a co-routine that returns a new row of -** results each time it is invoked. The entry point -** of the co-routine is stored in register pDest->iSDParm -** and the result row is stored in pDest->nDest registers -** starting with pDest->iSdst. -** -** SRT_Table Store results in temporary table pDest->iSDParm. -** SRT_Fifo This is like SRT_EphemTab except that the table -** is assumed to already be open. SRT_Fifo has -** the additional property of being able to ignore -** the ORDER BY clause. -** -** SRT_DistFifo Store results in a temporary table pDest->iSDParm. -** But also use temporary table pDest->iSDParm+1 as -** a record of all prior results and ignore any duplicate -** rows. Name means: "Distinct Fifo". -** -** SRT_Queue Store results in priority queue pDest->iSDParm (really -** an index). Append a sequence number so that all entries -** are distinct. -** -** SRT_DistQueue Store results in priority queue pDest->iSDParm only if -** the same record has never been stored before. The -** index at pDest->iSDParm+1 hold all prior stores. -** -** SRT_Upfrom Store results in the temporary table already opened by -** pDest->iSDParm. If (pDest->iSDParm<0), then the temp -** table is an intkey table - in this case the first -** column returned by the SELECT is used as the integer -** key. If (pDest->iSDParm>0), then the table is an index -** table. (pDest->iSDParm) is the number of key columns in -** each index record in this case. - */ - -/* The DISTINCT clause is ignored for all of the above. Not that -** IgnorableDistinct() implies IgnorableOrderby() */ - -/* The ORDER BY clause is ignored for all of the above */ - -/* -** An instance of this object describes where to put of the results of -** a SELECT statement. - */ -type TSelectDest1 = struct { - FeDest Tu8 - FiSDParm int32 - FiSDParm2 int32 - FiSdst int32 - FnSdst int32 - FzAffSdst uintptr - FpOrderBy uintptr -} - -type SelectDest1 = TSelectDest1 - -/* -** During code generation of statements that do inserts into AUTOINCREMENT -** tables, the following information is attached to the Table.u.autoInc.p -** pointer of each autoincrement table to record some side information that -** the code generator needs. We have to keep per-table autoincrement -** information in case inserts are done within triggers. Triggers do not -** normally coordinate their activities, but we do need to coordinate the -** loading and saving of autoincrement information. - */ -type TAutoincInfo1 = struct { - FpNext uintptr - FpTab uintptr - FiDb int32 - FregCtr int32 -} - -type AutoincInfo1 = TAutoincInfo1 - -/* -** At least one instance of the following structure is created for each -** trigger that may be fired while parsing an INSERT, UPDATE or DELETE -** statement. All such objects are stored in the linked list headed at -** Parse.pTriggerPrg and deleted once statement compilation has been -** completed. -** -** A Vdbe sub-program that implements the body and WHEN clause of trigger -** TriggerPrg.pTrigger, assuming a default ON CONFLICT clause of -** TriggerPrg.orconf, is stored in the TriggerPrg.pProgram variable. -** The Parse.pTriggerPrg list never contains two entries with the same -** values for both pTrigger and orconf. -** -** The TriggerPrg.aColmask[0] variable is set to a mask of old.* columns -** accessed (or set to 0 for triggers fired as a result of INSERT -** statements). Similarly, the TriggerPrg.aColmask[1] variable is set to -** a mask of new.* columns used by the program. - */ -type TTriggerPrg1 = struct { - FpTrigger uintptr - FpNext uintptr - FpProgram uintptr - Forconf int32 - FaColmask [2]Tu32 -} - -type TriggerPrg1 = TTriggerPrg1 - // C documentation // // /* @@ -29788,319 +27059,6 @@ type TyDbMask = uint32 type yDbMask = TyDbMask -/* -** For each index X that has as one of its arguments either an expression -** or the name of a virtual generated column, and if X is in scope such that -** the value of the expression can simply be read from the index, then -** there is an instance of this object on the Parse.pIdxExpr list. -** -** During code generation, while generating code to evaluate expressions, -** this list is consulted and if a matching expression is found, the value -** is read from the index rather than being recomputed. - */ -type TIndexedExpr1 = struct { - FpExpr uintptr - FiDataCur int32 - FiIdxCur int32 - FiIdxCol int32 - FbMaybeNullRow Tu8 - Faff Tu8 - FpIENext uintptr -} - -type IndexedExpr1 = TIndexedExpr1 - -/* -** An instance of the ParseCleanup object specifies an operation that -** should be performed after parsing to deallocation resources obtained -** during the parse and which are no longer needed. - */ -type TParseCleanup1 = struct { - FpNext uintptr - FpPtr uintptr - FxCleanup uintptr -} - -type ParseCleanup1 = TParseCleanup1 - -/* -** An SQL parser context. A copy of this structure is passed through -** the parser and down into all the parser action routine in order to -** carry around information that is global to the entire parse. -** -** The structure is divided into two parts. When the parser and code -** generate call themselves recursively, the first part of the structure -** is constant but the second part is reset at the beginning and end of -** each recursion. -** -** The nTableLock and aTableLock variables are only used if the shared-cache -** feature is enabled (if sqlite3Tsd()->useSharedData is true). They are -** used to store the set of table-locks required by the statement being -** compiled. Function sqlite3TableLock() is used to add entries to the -** list. - */ -type TParse1 = struct { - Fdb uintptr - FzErrMsg uintptr - FpVdbe uintptr - Frc int32 - FnQueryLoop TLogEst - Fnested Tu8 - FnTempReg Tu8 - FisMultiWrite Tu8 - FmayAbort Tu8 - FhasCompound Tu8 - FdisableLookaside Tu8 - FprepFlags Tu8 - FwithinRJSubrtn Tu8 - FmSubrtnSig Tu8 - FeTriggerOp Tu8 - FbReturning Tu8 - FeOrconf Tu8 - FdisableTriggers Tu8 - F__ccgo_align18 [1]byte - F__ccgo32 uint8 - FnRangeReg int32 - FiRangeReg int32 - FnErr int32 - FnTab int32 - FnMem int32 - FszOpAlloc int32 - FiSelfTab int32 - FnLabel int32 - FnLabelAlloc int32 - FaLabel uintptr - FpConstExpr uintptr - FpIdxEpr uintptr - FpIdxPartExpr uintptr - FwriteMask TyDbMask - FcookieMask TyDbMask - FnMaxArg int32 - FnSelect int32 - FnProgressSteps Tu32 - FnTableLock int32 - FaTableLock uintptr - FpAinc uintptr - FpToplevel uintptr - FpTriggerTab uintptr - FpTriggerPrg uintptr - FpCleanup uintptr - FaTempReg [8]int32 - FpOuterParse uintptr - FsNameToken TToken - Foldmask Tu32 - Fnewmask Tu32 - Fu1 struct { - Fd [0]struct { - FpReturning uintptr - } - Fcr struct { - FaddrCrTab int32 - FregRowid int32 - FregRoot int32 - FconstraintName TToken - } - } - FsLastToken TToken - FnVar TynVar - FiPkSortOrder Tu8 - Fexplain Tu8 - FeParseMode Tu8 - FnVtabLock int32 - FnHeight int32 - FaddrExplain int32 - FpVList uintptr - FpReprepare uintptr - FzTail uintptr - FpNewTable uintptr - FpNewIndex uintptr - FpNewTrigger uintptr - FzAuthContext uintptr - FsArg TToken - FapVtabLock uintptr - FpWith uintptr - FpRename uintptr -} - -type Parse1 = TParse1 - -/* Allowed values for Parse.eParseMode - */ - -/* -** Sizes and pointers of various parts of the Parse object. - */ - -/* -** Return true if currently inside an sqlite3_declare_vtab() call. - */ - -/* -** An instance of the following structure can be declared on a stack and used -** to save the Parse.zAuthContext value so that it can be restored later. - */ -type TAuthContext1 = struct { - FzAuthContext uintptr - FpParse uintptr -} - -type AuthContext1 = TAuthContext1 - -/* -** Bitfield flags for P5 value in various opcodes. -** -** Value constraints (enforced via assert()): -** OPFLAG_LENGTHARG == SQLITE_FUNC_LENGTH -** OPFLAG_TYPEOFARG == SQLITE_FUNC_TYPEOF -** OPFLAG_BULKCSR == BTREE_BULKLOAD -** OPFLAG_SEEKEQ == BTREE_SEEK_EQ -** OPFLAG_FORDELETE == BTREE_FORDELETE -** OPFLAG_SAVEPOSITION == BTREE_SAVEPOSITION -** OPFLAG_AUXDELETE == BTREE_AUXDELETE - */ -/* Also used in P2 (not P5) of OP_Delete */ - -/* -** Each trigger present in the database schema is stored as an instance of -** struct Trigger. -** -** Pointers to instances of struct Trigger are stored in two ways. -** 1. In the "trigHash" hash table (part of the sqlite3* that represents the -** database). This allows Trigger structures to be retrieved by name. -** 2. All triggers associated with a single table form a linked list, using the -** pNext member of struct Trigger. A pointer to the first element of the -** linked list is stored as the "pTrigger" member of the associated -** struct Table. -** -** The "step_list" member points to the first element of a linked list -** containing the SQL statements specified as the trigger program. - */ -type TTrigger1 = struct { - FzName uintptr - Ftable uintptr - Fop Tu8 - Ftr_tm Tu8 - FbReturning Tu8 - FpWhen uintptr - FpColumns uintptr - FpSchema uintptr - FpTabSchema uintptr - Fstep_list uintptr - FpNext uintptr -} - -type Trigger1 = TTrigger1 - -/* -** A trigger is either a BEFORE or an AFTER trigger. The following constants -** determine which. -** -** If there are multiple triggers, you might of some BEFORE and some AFTER. -** In that cases, the constants below can be ORed together. - */ - -/* -** An instance of struct TriggerStep is used to store a single SQL statement -** that is a part of a trigger-program. -** -** Instances of struct TriggerStep are stored in a singly linked list (linked -** using the "pNext" member) referenced by the "step_list" member of the -** associated struct Trigger instance. The first element of the linked list is -** the first step of the trigger-program. -** -** The "op" member indicates whether this is a "DELETE", "INSERT", "UPDATE" or -** "SELECT" statement. The meanings of the other members is determined by the -** value of "op" as follows: -** -** (op == TK_INSERT) -** orconf -> stores the ON CONFLICT algorithm -** pSelect -> The content to be inserted - either a SELECT statement or -** a VALUES clause. -** zTarget -> Dequoted name of the table to insert into. -** pIdList -> If this is an INSERT INTO ... () VALUES ... -** statement, then this stores the column-names to be -** inserted into. -** pUpsert -> The ON CONFLICT clauses for an Upsert -** -** (op == TK_DELETE) -** zTarget -> Dequoted name of the table to delete from. -** pWhere -> The WHERE clause of the DELETE statement if one is specified. -** Otherwise NULL. -** -** (op == TK_UPDATE) -** zTarget -> Dequoted name of the table to update. -** pWhere -> The WHERE clause of the UPDATE statement if one is specified. -** Otherwise NULL. -** pExprList -> A list of the columns to update and the expressions to update -** them to. See sqlite3Update() documentation of "pChanges" -** argument. -** -** (op == TK_SELECT) -** pSelect -> The SELECT statement -** -** (op == TK_RETURNING) -** pExprList -> The list of expressions that follow the RETURNING keyword. -** - */ -type TTriggerStep1 = struct { - Fop Tu8 - Forconf Tu8 - FpTrig uintptr - FpSelect uintptr - FzTarget uintptr - FpFrom uintptr - FpWhere uintptr - FpExprList uintptr - FpIdList uintptr - FpUpsert uintptr - FzSpan uintptr - FpNext uintptr - FpLast uintptr -} - -type TriggerStep1 = TTriggerStep1 - -/* -** Information about a RETURNING clause - */ -type TReturning1 = struct { - FpParse uintptr - FpReturnEL uintptr - FretTrig TTrigger - FretTStep TTriggerStep - FiRetCur int32 - FnRetCol int32 - FiRetReg int32 - FzName [40]int8 -} - -type Returning1 = TReturning1 - -/* -** The following object is the header for an "RCStr" or "reference-counted -** string". An RCStr is passed around and used like any other char* -** that has been dynamically allocated. The important interface -** differences: -** -** 1. RCStr strings are reference counted. They are deallocated -** when the reference count reaches zero. -** -** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than -** sqlite3_free() -** -** 3. Make a (read-only) copy of a read-only RCStr string using -** sqlite3RCStrRef(). -** -** "String" is in the name, but an RCStr object can also be used to hold -** binary data. - */ -type TRCStr1 = struct { - F__ccgo_align [0]uint32 - FnRCRef Tu64 -} - -type RCStr1 = TRCStr1 - // C documentation // // /* @@ -30188,232 +27146,6 @@ type TSqlite3Config = struct { type Sqlite3Config = TSqlite3Config -/* -** This macro is used inside of assert() statements to indicate that -** the assert is only valid on a well-formed database. Instead of: -** -** assert( X ); -** -** One writes: -** -** assert( X || CORRUPT_DB ); -** -** CORRUPT_DB is true during normal operation. CORRUPT_DB does not indicate -** that the database is definitely corrupt, only that it might be corrupt. -** For most test cases, CORRUPT_DB is set to false using a special -** sqlite3_test_control(). This enables assert() statements to prove -** things that are always true for well-formed databases. - */ - -/* -** Context pointer passed down through the tree-walk. - */ -type TWalker1 = struct { - FpParse uintptr - FxExprCallback uintptr - FxSelectCallback uintptr - FxSelectCallback2 uintptr - FwalkerDepth int32 - FeCode Tu16 - FmWFlags Tu16 - Fu struct { - Fn [0]int32 - FiCur [0]int32 - FpSrcList [0]uintptr - FpCCurHint [0]uintptr - FpRefSrcList [0]uintptr - FaiCol [0]uintptr - FpIdxCover [0]uintptr - FpGroupBy [0]uintptr - FpSelect [0]uintptr - FpRewrite [0]uintptr - FpConst [0]uintptr - FpRename [0]uintptr - FpTab [0]uintptr - FpCovIdxCk [0]uintptr - FpSrcItem [0]uintptr - FpFix [0]uintptr - FaMem [0]uintptr - FpNC uintptr - } -} - -type Walker1 = TWalker1 - -/* -** The following structure contains information used by the sqliteFix... -** routines as they walk the parse tree to make database references -** explicit. - */ -type TDbFixer1 = struct { - FpParse uintptr - Fw TWalker - FpSchema uintptr - FbTemp Tu8 - FzDb uintptr - FzType uintptr - FpName uintptr -} - -type DbFixer1 = TDbFixer1 - -/* -** Return code from the parse-tree walking primitives and their -** callbacks. - */ - -/* -** A single common table expression - */ -type TCte1 = struct { - FzName uintptr - FpCols uintptr - FpSelect uintptr - FzCteErr uintptr - FpUse uintptr - FeM10d Tu8 -} - -type Cte1 = TCte1 - -/* -** Allowed values for the materialized flag (eM10d): - */ - -/* -** An instance of the With object represents a WITH clause containing -** one or more CTEs (common table expressions). - */ -type TWith1 = struct { - FnCte int32 - FbView int32 - FpOuter uintptr -} - -type With1 = TWith1 - -/* The size (in bytes) of a With object that can hold as many -** as N different CTEs. */ - -/* -** The Cte object is not guaranteed to persist for the entire duration -** of code generation. (The query flattener or other parser tree -** edits might delete it.) The following object records information -** about each Common Table Expression that must be preserved for the -** duration of the parse. -** -** The CteUse objects are freed using sqlite3ParserAddCleanup() rather -** than sqlite3SelectDelete(), which is what enables them to persist -** until the end of code generation. - */ -type TCteUse1 = struct { - FnUse int32 - FaddrM9e int32 - FregRtn int32 - FiCur int32 - FnRowEst TLogEst - FeM10d Tu8 -} - -type CteUse1 = TCteUse1 - -/* Client data associated with sqlite3_set_clientdata() and -** sqlite3_get_clientdata(). - */ -type TDbClientData1 = struct { - FpNext uintptr - FpData uintptr - FxDestructor uintptr -} - -type DbClientData1 = TDbClientData1 - -/* The size (in bytes) of a DbClientData object that can has a name -** that is N bytes long, including the zero-terminator. */ - -/* -** This object is used in various ways, most (but not all) related to window -** functions. -** -** (1) A single instance of this structure is attached to the -** the Expr.y.pWin field for each window function in an expression tree. -** This object holds the information contained in the OVER clause, -** plus additional fields used during code generation. -** -** (2) All window functions in a single SELECT form a linked-list -** attached to Select.pWin. The Window.pFunc and Window.pExpr -** fields point back to the expression that is the window function. -** -** (3) The terms of the WINDOW clause of a SELECT are instances of this -** object on a linked list attached to Select.pWinDefn. -** -** (4) For an aggregate function with a FILTER clause, an instance -** of this object is stored in Expr.y.pWin with eFrmType set to -** TK_FILTER. In this case the only field used is Window.pFilter. -** -** The uses (1) and (2) are really the same Window object that just happens -** to be accessible in two different ways. Use case (3) are separate objects. - */ -type TWindow1 = struct { - FzName uintptr - FzBase uintptr - FpPartition uintptr - FpOrderBy uintptr - FeFrmType Tu8 - FeStart Tu8 - FeEnd Tu8 - FbImplicitFrame Tu8 - FeExclude Tu8 - FpStart uintptr - FpEnd uintptr - FppThis uintptr - FpNextWin uintptr - FpFilter uintptr - FpWFunc uintptr - FiEphCsr int32 - FregAccum int32 - FregResult int32 - FcsrApp int32 - FregApp int32 - FregPart int32 - FpOwner uintptr - FnBufferCol int32 - FiArgCol int32 - FregOne int32 - FregStartRowid int32 - FregEndRowid int32 - FbExprArgs Tu8 -} - -type Window1 = TWindow1 - -/* -** An instance of the following structure holds information about SQL -** functions arguments that are the parameters to the printf() function. - */ -type TPrintfArguments1 = struct { - FnArg int32 - FnUsed int32 - FapArg uintptr -} - -type PrintfArguments1 = TPrintfArguments1 - -/* -** An instance of this object receives the decoding of a floating point -** value into an approximate decimal representation. - */ -type TFpDecode1 = struct { - Fsign int8 - FisSpecial int8 - Fn int32 - FiDP int32 - Fz uintptr - FzBuf [24]int8 -} - -type FpDecode1 = TFpDecode1 - /************** End of sqliteInt.h *******************************************/ /************** Begin file os_common.h ***************************************/ /* @@ -31586,77 +28318,6 @@ type TVdbeCursor = struct { type VdbeCursor = TVdbeCursor -type TVdbeCursor1 = struct { - F__ccgo_align [0]uint32 - FeCurType Tu8 - FiDb Ti8 - FnullRow Tu8 - FdeferredMoveto Tu8 - FisTable Tu8 - F__ccgo_align5 [3]byte - F__ccgo8 uint8 - FseekHit Tu16 - Fub struct { - FaAltMap [0]uintptr - FpBtx uintptr - } - FseqCount Ti64 - FcacheStatus Tu32 - FseekResult int32 - FpAltCursor uintptr - Fuc struct { - FpVCur [0]uintptr - FpSorter [0]uintptr - FpCursor uintptr - } - FpKeyInfo uintptr - FiHdrOffset Tu32 - FpgnoRoot TPgno - FnField Ti16 - FnHdrParsed Tu16 - FmovetoTarget Ti64 - FaOffset uintptr - FaRow uintptr - FpayloadSize Tu32 - FszRow Tu32 - FpCache uintptr - F__ccgo_pad29 [4]byte -} - -type VdbeCursor1 = TVdbeCursor1 - -/* -** The size (in bytes) of a VdbeCursor object that has an nField value of N -** or less. The value of SZ_VDBECURSOR(n) is guaranteed to be a multiple -** of 8. - */ - -/* Return true if P is a null-only cursor - */ - -/* -** A value for VdbeCursor.cacheStatus that means the cache is always invalid. - */ - -/* -** Large TEXT or BLOB values can be slow to load, so we want to avoid -** loading them more than once. For that reason, large TEXT and BLOB values -** can be stored in a cache defined by this object, and attached to the -** VdbeCursor using the pCache field. - */ -type TVdbeTxtBlbCache1 = struct { - F__ccgo_align [0]uint32 - FpCValue uintptr - F__ccgo_align1 [4]byte - FiOffset Ti64 - FiCol int32 - FcacheStatus Tu32 - FcolCacheCtr Tu32 - F__ccgo_pad5 [4]byte -} - -type VdbeTxtBlbCache1 = TVdbeTxtBlbCache1 - // C documentation // // /* @@ -31705,155 +28366,6 @@ type TVdbeFrame = struct { type VdbeFrame = TVdbeFrame -type TVdbeFrame1 = struct { - F__ccgo_align [0]uint32 - Fv uintptr - FpParent uintptr - FaOp uintptr - FaMem uintptr - FapCsr uintptr - FaOnce uintptr - Ftoken uintptr - F__ccgo_align7 [4]byte - FlastRowid Ti64 - FpAuxData uintptr - FnCursor int32 - Fpc int32 - FnOp int32 - FnMem int32 - FnChildMem int32 - FnChildCsr int32 - F__ccgo_align15 [4]byte - FnChange Ti64 - FnDbChange Ti64 -} - -type VdbeFrame1 = TVdbeFrame1 - -/* -** Size of struct Mem not including the Mem.zMalloc member or anything that -** follows. - */ - -/* One or more of the following flags are set to indicate the -** representations of the value stored in the Mem struct. -** -** * MEM_Null An SQL NULL value -** -** * MEM_Null|MEM_Zero An SQL NULL with the virtual table -** UPDATE no-change flag set -** -** * MEM_Null|MEM_Term| An SQL NULL, but also contains a -** MEM_Subtype pointer accessible using -** sqlite3_value_pointer(). -** -** * MEM_Null|MEM_Cleared Special SQL NULL that compares non-equal -** to other NULLs even using the IS operator. -** -** * MEM_Str A string, stored in Mem.z with -** length Mem.n. Zero-terminated if -** MEM_Term is set. This flag is -** incompatible with MEM_Blob and -** MEM_Null, but can appear with MEM_Int, -** MEM_Real, and MEM_IntReal. -** -** * MEM_Blob A blob, stored in Mem.z length Mem.n. -** Incompatible with MEM_Str, MEM_Null, -** MEM_Int, MEM_Real, and MEM_IntReal. -** -** * MEM_Blob|MEM_Zero A blob in Mem.z of length Mem.n plus -** MEM.u.i extra 0x00 bytes at the end. -** -** * MEM_Int Integer stored in Mem.u.i. -** -** * MEM_Real Real stored in Mem.u.r. -** -** * MEM_IntReal Real stored as an integer in Mem.u.i. -** -** If the MEM_Null flag is set, then the value is an SQL NULL value. -** For a pointer type created using sqlite3_bind_pointer() or -** sqlite3_result_pointer() the MEM_Term and MEM_Subtype flags are also set. -** -** If the MEM_Str flag is set then Mem.z points at a string representation. -** Usually this is encoded in the same unicode encoding as the main -** database (see below for exceptions). If the MEM_Term flag is also -** set, then the string is nul terminated. The MEM_Int and MEM_Real -** flags may coexist with the MEM_Str flag. - */ - -/* Extra bits that modify the meanings of the core datatypes above - */ -/* 0x0080 // Available */ - -/* Bits that determine the storage for Mem.z for a string or blob or -** aggregate accumulator. - */ - -/* Return TRUE if Mem X contains dynamically allocated content - anything -** that needs to be deallocated to avoid a leak. - */ - -/* -** Clear any existing type flags from a Mem and replace them with f - */ - -/* -** True if Mem X is a NULL-nochng type. - */ - -/* -** Return true if a memory cell has been initialized and is valid. -** is for use inside assert() statements only. -** -** A Memory cell is initialized if at least one of the -** MEM_Null, MEM_Str, MEM_Int, MEM_Real, MEM_Blob, or MEM_IntReal bits -** is set. It is "undefined" if all those bits are zero. - */ - -/* -** Each auxiliary data pointer stored by a user defined function -** implementation calling sqlite3_set_auxdata() is stored in an instance -** of this structure. All such structures associated with a single VM -** are stored in a linked list headed at Vdbe.pAuxData. All are destroyed -** when the VM is halted (if not before). - */ -type TAuxData1 = struct { - FiAuxOp int32 - FiAuxArg int32 - FpAux uintptr - FxDeleteAux uintptr - FpNextAux uintptr -} - -type AuxData1 = TAuxData1 - -/* -** The "context" argument for an installable function. A pointer to an -** instance of this structure is the first argument to the routines used -** implement the SQL functions. -** -** There is a typedef for this structure in sqlite.h. So all routines, -** even the public interface to SQLite, can use a pointer to this structure. -** But this file is the only place where the internal details of this -** structure are known. -** -** This structure is defined inside of vdbeInt.h because it uses substructures -** (Mem) which are only defined there. - */ -type Tsqlite3_context1 = struct { - FpOut uintptr - FpFunc uintptr - FpMem uintptr - FpVdbe uintptr - FiOp int32 - FisError int32 - Fenc Tu8 - FskipFlag Tu8 - Fargc Tu16 -} - -type sqlite3_context1 = Tsqlite3_context1 - /* ** The size (in bytes) of an sqlite3_context object that holds N ** argv[] arguments. @@ -31884,18 +28396,6 @@ type TScanStatus = struct { type ScanStatus = TScanStatus -type TScanStatus1 = struct { - FaddrExplain int32 - FaAddrRange [6]int32 - FaddrLoop int32 - FaddrVisit int32 - FiSelectID int32 - FnEst TLogEst - FzName uintptr -} - -type ScanStatus1 = TScanStatus1 - // C documentation // // /* The DblquoteStr object holds the text of a double-quoted @@ -31912,107 +28412,6 @@ type TDblquoteStr = struct { type DblquoteStr = TDblquoteStr -type TDblquoteStr1 = struct { - FpNextStr uintptr - Fz [8]int8 -} - -type DblquoteStr1 = TDblquoteStr1 - -/* -** An instance of the virtual machine. This structure contains the complete -** state of the virtual machine. -** -** The "sqlite3_stmt" structure pointer that is returned by sqlite3_prepare() -** is really a pointer to an instance of this structure. - */ -type TVdbe1 = struct { - F__ccgo_align [0]uint32 - Fdb uintptr - FppVPrev uintptr - FpVNext uintptr - FpParse uintptr - FnVar TynVar - FnMem int32 - FnCursor int32 - FcacheCtr Tu32 - Fpc int32 - Frc int32 - FnChange Ti64 - FiStatement int32 - F__ccgo_align12 [4]byte - FiCurrentTime Ti64 - FnFkConstraint Ti64 - FnStmtDefCons Ti64 - FnStmtDefImmCons Ti64 - FaMem uintptr - FapArg uintptr - FapCsr uintptr - FaVar uintptr - FaOp uintptr - FnOp int32 - FnOpAlloc int32 - FaColName uintptr - FpResultRow uintptr - FzErrMsg uintptr - FpVList uintptr - F__ccgo_align27 [4]byte - FstartTime Ti64 - FnResColumn Tu16 - FnResAlloc Tu16 - FerrorAction Tu8 - FminWriteFileFormat Tu8 - FprepFlags Tu8 - FeVdbeState Tu8 - F__ccgo152 uint16 - FbtreeMask TyDbMask - FlockMask TyDbMask - FaCounter [9]Tu32 - FzSql uintptr - FpFree uintptr - FpFrame uintptr - FpDelFrame uintptr - FnFrame int32 - Fexpmask Tu32 - FpProgram uintptr - FpAuxData uintptr -} - -type Vdbe1 = TVdbe1 - -/* -** The following are allowed values for Vdbe.eVdbeState - */ - -/* -** Structure used to store the context required by the -** sqlite3_preupdate_*() API functions. - */ -type TPreUpdate1 = struct { - F__ccgo_align [0]uint32 - Fv uintptr - FpCsr uintptr - Fop int32 - FaRecord uintptr - FpKeyinfo uintptr - FpUnpacked uintptr - FpNewUnpacked uintptr - FiNewReg int32 - FiBlobWrite int32 - F__ccgo_align9 [4]byte - FiKey1 Ti64 - FiKey2 Ti64 - Foldipk TMem - FaNew uintptr - FpTab uintptr - FpPk uintptr - FapDflt uintptr - FkeyinfoSpace [20]Tu8 - F__ccgo_pad17 [4]byte -} - -type PreUpdate1 = TPreUpdate1 - // C documentation // // /* @@ -32034,13 +28433,6 @@ type TValueList = struct { type ValueList = TValueList -type TValueList1 = struct { - FpCsr uintptr - FpOut uintptr -} - -type ValueList1 = TValueList1 - /************** End of vdbeInt.h *********************************************/ /************** Continuing where we left off in status.c *********************/ @@ -32060,14 +28452,7 @@ type Tsqlite3StatType = struct { type sqlite3StatType = Tsqlite3StatType -type Tsqlite3StatType1 = struct { - FnowValue [10]Tsqlite3StatValueType - FmxValue [10]Tsqlite3StatValueType -} - -type sqlite3StatType1 = Tsqlite3StatType1 - -var _sqlite3Stat = Tsqlite3StatType1{} +var _sqlite3Stat = Tsqlite3StatType{} // C documentation // @@ -32146,7 +28531,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(24454)) + return _sqlite3MisuseError(tls, int32(24456)) } if _statMutex[op] != 0 { v1 = _sqlite3Pcache1Mutex(tls) @@ -32376,7 +28761,7 @@ func Xsqlite3_db_status(tls *libc.TLS, db uintptr, op int32, pCurrent uintptr, p goto _5 _5: ; - pVdbe = (*TVdbe1)(unsafe.Pointer(pVdbe)).FpVNext + pVdbe = (*TVdbe)(unsafe.Pointer(pVdbe)).FpVNext } (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpEnd = (*Tsqlite3)(unsafe.Pointer(db)).Flookaside.FpTrueEnd (*Tsqlite3)(unsafe.Pointer(db)).FpnBytesFreed = uintptr(0) @@ -32554,26 +28939,6 @@ type TDateTime = struct { type DateTime = TDateTime -type TDateTime1 = struct { - F__ccgo_align [0]uint32 - 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 - F__ccgo_pad17 [3]byte -} - -type DateTime1 = TDateTime1 - // C documentation // // /* @@ -34570,28 +30935,28 @@ func init() { // */ func _sqlite3OsClose(tls *libc.TLS, pId uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) + (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods)).FxClose})))(tls, pId) (*Tsqlite3_file)(unsafe.Pointer(pId)).FpMethods = uintptr(0) } } func _sqlite3OsRead(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxRead})))(tls, id, pBuf, amt, offset) } func _sqlite3OsWrite(tls *libc.TLS, id uintptr, pBuf uintptr, amt int32, offset Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxWrite})))(tls, id, pBuf, amt, offset) } func _sqlite3OsTruncate(tls *libc.TLS, id uintptr, size Ti64) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxTruncate})))(tls, id, size) } func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { var v1 int32 _ = v1 if flags != 0 { - v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) + v1 = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSync})))(tls, id, flags) } else { v1 = SQLITE_OK } @@ -34599,19 +30964,19 @@ func _sqlite3OsSync(tls *libc.TLS, id uintptr, flags int32) (r int32) { } func _sqlite3OsFileSize(tls *libc.TLS, id uintptr, pSize uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileSize})))(tls, id, pSize) } func _sqlite3OsLock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxLock})))(tls, id, lockType) } func _sqlite3OsUnlock(tls *libc.TLS, id uintptr, lockType int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnlock})))(tls, id, lockType) } func _sqlite3OsCheckReservedLock(tls *libc.TLS, id uintptr, pResOut uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) + return (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxCheckReservedLock})))(tls, id, pResOut) } // C documentation @@ -34628,12 +30993,12 @@ func _sqlite3OsFileControl(tls *libc.TLS, id uintptr, op int32, pArg uintptr) (r if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return int32(SQLITE_NOTFOUND) } - return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + return (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } func _sqlite3OsFileControlHint(tls *libc.TLS, id uintptr, op int32, pArg uintptr) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods != 0 { - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFileControl})))(tls, id, op, pArg) } } @@ -34641,7 +31006,7 @@ func _sqlite3OsSectorSize(tls *libc.TLS, id uintptr) (r int32) { var xSectorSize uintptr var v1 int32 _, _ = xSectorSize, v1 - xSectorSize = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize + xSectorSize = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxSectorSize if xSectorSize != 0 { v1 = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xSectorSize})))(tls, id) } else { @@ -34654,34 +31019,34 @@ func _sqlite3OsDeviceCharacteristics(tls *libc.TLS, id uintptr) (r int32) { if (*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods == uintptr(0) { return 0 } - return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) + return (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxDeviceCharacteristics})))(tls, id) } func _sqlite3OsShmLock(tls *libc.TLS, id uintptr, offset int32, n int32, flags int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmLock})))(tls, id, offset, n, flags) } func _sqlite3OsShmBarrier(tls *libc.TLS, id uintptr) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmBarrier})))(tls, id) } func _sqlite3OsShmUnmap(tls *libc.TLS, id uintptr, deleteFlag int32) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) + return (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmUnmap})))(tls, id, deleteFlag) } func _sqlite3OsShmMap(tls *libc.TLS, id uintptr, iPage int32, pgsz int32, bExtend int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) + return (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxShmMap})))(tls, id, iPage, pgsz, bExtend, pp) } // C documentation // // /* The real implementation of xFetch and xUnfetch */ func _sqlite3OsFetch(tls *libc.TLS, id uintptr, iOff Ti64, iAmt int32, pp uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxFetch})))(tls, id, iOff, iAmt, pp) } func _sqlite3OsUnfetch(tls *libc.TLS, id uintptr, iOff Ti64, p uintptr) (r int32) { - return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) + return (*(*func(*libc.TLS, uintptr, Tsqlite3_int64, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(id)).FpMethods)).FxUnfetch})))(tls, id, iOff, p) } // C documentation @@ -34994,14 +31359,7 @@ type TBenignMallocHooks = struct { type BenignMallocHooks = TBenignMallocHooks -type TBenignMallocHooks1 = struct { - FxBenignBegin uintptr - FxBenignEnd uintptr -} - -type BenignMallocHooks1 = TBenignMallocHooks1 - -var _sqlite3Hooks = TBenignMallocHooks1{} +var _sqlite3Hooks = TBenignMallocHooks{} /* The "wsdHooks" macro will resolve to the appropriate BenignMallocHooks ** structure. If writable static data is unsupported on the target, @@ -35016,9 +31374,9 @@ var _sqlite3Hooks = TBenignMallocHooks1{} // ** Register hooks to call when sqlite3BeginBenignMalloc() and // ** sqlite3EndBenignMalloc() are called, respectively. // */ -func _sqlite3BenignMallocHooks(tls *libc.TLS, xBenignBegin uintptr, xBenignEnd uintptr) { - _sqlite3Hooks.FxBenignBegin = xBenignBegin - _sqlite3Hooks.FxBenignEnd = xBenignEnd +func _sqlite3BenignMallocHooks(tls *libc.TLS, __ccgo_fp_xBenignBegin uintptr, __ccgo_fp_xBenignEnd uintptr) { + _sqlite3Hooks.FxBenignBegin = __ccgo_fp_xBenignBegin + _sqlite3Hooks.FxBenignEnd = __ccgo_fp_xBenignEnd } // C documentation @@ -39808,24 +36166,6 @@ type TPMEM_EXTENDED_PARAMETER = uintptr type PMEM_EXTENDED_PARAMETER = TPMEM_EXTENDED_PARAMETER -type TMEM_EXTENDED_PARAMETER1 = struct { - F__ccgo_align [0]uint32 - F__ccgo0_0 struct { - F__ccgo_align [0]uint32 - F__ccgo0 uint64 - } - F__ccgo1_8 struct { - F__ccgo_align [0]uint32 - FPointer [0]TPVOID - FSize [0]TSIZE_T - FHandle [0]THANDLE - FULong [0]TDWORD - FULong64 TDWORD64 - } -} - -type MEM_EXTENDED_PARAMETER1 = TMEM_EXTENDED_PARAMETER1 - type TMEM_SECTION_EXTENDED_PARAMETER_TYPE = int32 type MEM_SECTION_EXTENDED_PARAMETER_TYPE = TMEM_SECTION_EXTENDED_PARAMETER_TYPE @@ -39851,12 +36191,6 @@ type TPFILE_ID_128 = uintptr type PFILE_ID_128 = TPFILE_ID_128 -type TFILE_ID_1281 = struct { - FIdentifier [16]TBYTE -} - -type FILE_ID_1281 = TFILE_ID_1281 - type TFILE_NOTIFY_INFORMATION = struct { FNextEntryOffset TDWORD FAction TDWORD @@ -41491,15 +37825,6 @@ type TPIMAGE_AUX_SYMBOL_TOKEN_DEF = uintptr type PIMAGE_AUX_SYMBOL_TOKEN_DEF = TPIMAGE_AUX_SYMBOL_TOKEN_DEF -type TIMAGE_AUX_SYMBOL_TOKEN_DEF1 = struct { - FbAuxType TBYTE - FbReserved TBYTE - FSymbolTableIndex TDWORD - FrgbReserved [12]TBYTE -} - -type IMAGE_AUX_SYMBOL_TOKEN_DEF1 = TIMAGE_AUX_SYMBOL_TOKEN_DEF1 - type TIMAGE_AUX_SYMBOL = struct { FFile [0]struct { FName [18]TBYTE @@ -42192,17 +38517,6 @@ type T_PIMAGE_RUNTIME_FUNCTION_ENTRY = uintptr type _PIMAGE_RUNTIME_FUNCTION_ENTRY = T_PIMAGE_RUNTIME_FUNCTION_ENTRY -type T_IMAGE_RUNTIME_FUNCTION_ENTRY1 = struct { - FBeginAddress TDWORD - FEndAddress TDWORD - F__ccgo2_8 struct { - FUnwindData [0]TDWORD - FUnwindInfoAddress TDWORD - } -} - -type _IMAGE_RUNTIME_FUNCTION_ENTRY1 = T_IMAGE_RUNTIME_FUNCTION_ENTRY1 - type TIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = struct { FBeginAddress TDWORD FEndAddress TDWORD @@ -42517,26 +38831,6 @@ type TPIMAGE_COR20_HEADER = uintptr type PIMAGE_COR20_HEADER = TPIMAGE_COR20_HEADER -type TIMAGE_COR20_HEADER1 = struct { - Fcb TDWORD - FMajorRuntimeVersion TWORD - FMinorRuntimeVersion TWORD - FMetaData TIMAGE_DATA_DIRECTORY - FFlags TDWORD - F__ccgo5_20 struct { - FEntryPointRVA [0]TDWORD - FEntryPointToken TDWORD - } - FResources TIMAGE_DATA_DIRECTORY - FStrongNameSignature TIMAGE_DATA_DIRECTORY - FCodeManagerTable TIMAGE_DATA_DIRECTORY - FVTableFixups TIMAGE_DATA_DIRECTORY - FExportAddressTableJumps TIMAGE_DATA_DIRECTORY - FManagedNativeHeader TIMAGE_DATA_DIRECTORY -} - -type IMAGE_COR20_HEADER1 = TIMAGE_COR20_HEADER1 - type TSLIST_ENTRY = struct { FNext uintptr } @@ -47469,21 +43763,6 @@ type TLPFILE_ID_DESCRIPTOR = uintptr type LPFILE_ID_DESCRIPTOR = TLPFILE_ID_DESCRIPTOR -type TFILE_ID_DESCRIPTOR1 = struct { - F__ccgo_align [0]uint32 - FdwSize TDWORD - FType TFILE_ID_TYPE - F__ccgo2_8 struct { - F__ccgo_align [0]uint32 - FObjectId [0]TGUID - FExtendedFileId [0]TFILE_ID_128 - FFileId TLARGE_INTEGER - F__ccgo_pad3 [8]byte - } -} - -type FILE_ID_DESCRIPTOR1 = TFILE_ID_DESCRIPTOR1 - type TDRAWPATRECT = struct { FptPosition TPOINT FptSize TPOINT @@ -58586,15 +54865,6 @@ type TPDRVCONFIGINFOEX = uintptr type PDRVCONFIGINFOEX = TPDRVCONFIGINFOEX -type TDRVCONFIGINFOEX1 = struct { - FdwDCISize TDWORD - FlpszDCISectionName TLPCWSTR - FlpszDCIAliasName TLPCWSTR - FdnDevNode TDWORD -} - -type DRVCONFIGINFOEX1 = TDRVCONFIGINFOEX1 - type TNPDRVCONFIGINFOEX = uintptr type NPDRVCONFIGINFOEX = TNPDRVCONFIGINFOEX @@ -64177,10 +60447,6 @@ type TFD_SET = struct { type FD_SET = TFD_SET -type Tfd_set1 = TFD_SET - -type fd_set1 = Tfd_set1 - type TPFD_SET = uintptr type PFD_SET = TPFD_SET @@ -71437,11 +67703,11 @@ const _PROXY_MARSHAL = 2 const _PROXY_SENDRECEIVE = 3 const _PROXY_UNMARSHAL = 4 -type TIRpcStubBuffer1 = struct { +type TIRpcStubBuffer = struct { FlpVtbl uintptr } -type IRpcStubBuffer1 = TIRpcStubBuffer1 +type IRpcStubBuffer = TIRpcStubBuffer type TRPC_SS_THREAD_HANDLE = uintptr @@ -71487,12 +67753,6 @@ const _REGCLS_MULTI_SEPARATE = 2 const _REGCLS_SUSPENDED = 4 const _REGCLS_SURROGATE = 8 -type TIRpcStubBuffer = struct { - FlpVtbl uintptr -} - -type IRpcStubBuffer = TIRpcStubBuffer - type TIRpcChannelBuffer = struct { FlpVtbl uintptr } @@ -71799,12 +68059,6 @@ type TIUnknownVtbl = struct { type IUnknownVtbl = TIUnknownVtbl -type TIUnknown1 = struct { - FlpVtbl uintptr -} - -type IUnknown1 = TIUnknown1 - type TAsyncIUnknownVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -71819,12 +68073,6 @@ type TAsyncIUnknownVtbl = struct { type AsyncIUnknownVtbl = TAsyncIUnknownVtbl -type TAsyncIUnknown1 = struct { - FlpVtbl uintptr -} - -type AsyncIUnknown1 = TAsyncIUnknown1 - type TLPCLASSFACTORY = uintptr type LPCLASSFACTORY = TLPCLASSFACTORY @@ -71839,12 +68087,6 @@ type TIClassFactoryVtbl = struct { type IClassFactoryVtbl = TIClassFactoryVtbl -type TIClassFactory1 = struct { - FlpVtbl uintptr -} - -type IClassFactory1 = TIClassFactory1 - type TIMarshal = struct { FlpVtbl uintptr } @@ -72164,12 +68406,6 @@ type TIMarshalVtbl = struct { type IMarshalVtbl = TIMarshalVtbl -type TIMarshal1 = struct { - FlpVtbl uintptr -} - -type IMarshal1 = TIMarshal1 - type TINoMarshalVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72178,12 +68414,6 @@ type TINoMarshalVtbl = struct { type INoMarshalVtbl = TINoMarshalVtbl -type TINoMarshal1 = struct { - FlpVtbl uintptr -} - -type INoMarshal1 = TINoMarshal1 - type TIAgileObjectVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72192,12 +68422,6 @@ type TIAgileObjectVtbl = struct { type IAgileObjectVtbl = TIAgileObjectVtbl -type TIAgileObject1 = struct { - FlpVtbl uintptr -} - -type IAgileObject1 = TIAgileObject1 - type TIAgileReferenceVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72207,12 +68431,6 @@ type TIAgileReferenceVtbl = struct { type IAgileReferenceVtbl = TIAgileReferenceVtbl -type TIAgileReference1 = struct { - FlpVtbl uintptr -} - -type IAgileReference1 = TIAgileReference1 - type TLPMARSHAL2 = uintptr type LPMARSHAL2 = TLPMARSHAL2 @@ -72231,12 +68449,6 @@ type TIMarshal2Vtbl = struct { type IMarshal2Vtbl = TIMarshal2Vtbl -type TIMarshal21 = struct { - FlpVtbl uintptr -} - -type IMarshal21 = TIMarshal21 - type TLPMALLOC = uintptr type LPMALLOC = TLPMALLOC @@ -72255,12 +68467,6 @@ type TIMallocVtbl = struct { type IMallocVtbl = TIMallocVtbl -type TIMalloc1 = struct { - FlpVtbl uintptr -} - -type IMalloc1 = TIMalloc1 - type TLPSTDMARSHALINFO = uintptr type LPSTDMARSHALINFO = TLPSTDMARSHALINFO @@ -72274,12 +68480,6 @@ type TIStdMarshalInfoVtbl = struct { type IStdMarshalInfoVtbl = TIStdMarshalInfoVtbl -type TIStdMarshalInfo1 = struct { - FlpVtbl uintptr -} - -type IStdMarshalInfo1 = TIStdMarshalInfo1 - type TLPEXTERNALCONNECTION = uintptr type LPEXTERNALCONNECTION = TLPEXTERNALCONNECTION @@ -72304,12 +68504,6 @@ type TIExternalConnectionVtbl = struct { type IExternalConnectionVtbl = TIExternalConnectionVtbl -type TIExternalConnection1 = struct { - FlpVtbl uintptr -} - -type IExternalConnection1 = TIExternalConnection1 - type TLPMULTIQI = uintptr type LPMULTIQI = TLPMULTIQI @@ -72335,12 +68529,6 @@ type TIMultiQIVtbl = struct { type IMultiQIVtbl = TIMultiQIVtbl -type TIMultiQI1 = struct { - FlpVtbl uintptr -} - -type IMultiQI1 = TIMultiQI1 - type TAsyncIMultiQIVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72351,12 +68539,6 @@ type TAsyncIMultiQIVtbl = struct { type AsyncIMultiQIVtbl = TAsyncIMultiQIVtbl -type TAsyncIMultiQI1 = struct { - FlpVtbl uintptr -} - -type AsyncIMultiQI1 = TAsyncIMultiQI1 - type TIInternalUnknownVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72366,12 +68548,6 @@ type TIInternalUnknownVtbl = struct { type IInternalUnknownVtbl = TIInternalUnknownVtbl -type TIInternalUnknown1 = struct { - FlpVtbl uintptr -} - -type IInternalUnknown1 = TIInternalUnknown1 - type TLPENUMUNKNOWN = uintptr type LPENUMUNKNOWN = TLPENUMUNKNOWN @@ -72388,12 +68564,6 @@ type TIEnumUnknownVtbl = struct { type IEnumUnknownVtbl = TIEnumUnknownVtbl -type TIEnumUnknown1 = struct { - FlpVtbl uintptr -} - -type IEnumUnknown1 = TIEnumUnknown1 - type TLPENUMSTRING = uintptr type LPENUMSTRING = TLPENUMSTRING @@ -72410,12 +68580,6 @@ type TIEnumStringVtbl = struct { type IEnumStringVtbl = TIEnumStringVtbl -type TIEnumString1 = struct { - FlpVtbl uintptr -} - -type IEnumString1 = TIEnumString1 - type TISequentialStreamVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72426,12 +68590,6 @@ type TISequentialStreamVtbl = struct { type ISequentialStreamVtbl = TISequentialStreamVtbl -type TISequentialStream1 = struct { - FlpVtbl uintptr -} - -type ISequentialStream1 = TISequentialStream1 - type TLPSTREAM = uintptr type LPSTREAM = TLPSTREAM @@ -72507,12 +68665,6 @@ type TIStreamVtbl = struct { type IStreamVtbl = TIStreamVtbl -type TIStream1 = struct { - FlpVtbl uintptr -} - -type IStream1 = TIStream1 - type TRPCOLEDATAREP = uint32 type RPCOLEDATAREP = TRPCOLEDATAREP @@ -72550,12 +68702,6 @@ type TIRpcChannelBufferVtbl = struct { type IRpcChannelBufferVtbl = TIRpcChannelBufferVtbl -type TIRpcChannelBuffer1 = struct { - FlpVtbl uintptr -} - -type IRpcChannelBuffer1 = TIRpcChannelBuffer1 - type TIRpcChannelBuffer2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72570,12 +68716,6 @@ type TIRpcChannelBuffer2Vtbl = struct { type IRpcChannelBuffer2Vtbl = TIRpcChannelBuffer2Vtbl -type TIRpcChannelBuffer21 = struct { - FlpVtbl uintptr -} - -type IRpcChannelBuffer21 = TIRpcChannelBuffer21 - type TIAsyncRpcChannelBufferVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72593,12 +68733,6 @@ type TIAsyncRpcChannelBufferVtbl = struct { type IAsyncRpcChannelBufferVtbl = TIAsyncRpcChannelBufferVtbl -type TIAsyncRpcChannelBuffer1 = struct { - FlpVtbl uintptr -} - -type IAsyncRpcChannelBuffer1 = TIAsyncRpcChannelBuffer1 - type TIRpcChannelBuffer3Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72620,12 +68754,6 @@ type TIRpcChannelBuffer3Vtbl = struct { type IRpcChannelBuffer3Vtbl = TIRpcChannelBuffer3Vtbl -type TIRpcChannelBuffer31 = struct { - FlpVtbl uintptr -} - -type IRpcChannelBuffer31 = TIRpcChannelBuffer31 - type TIRpcSyntaxNegotiateVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72635,12 +68763,6 @@ type TIRpcSyntaxNegotiateVtbl = struct { type IRpcSyntaxNegotiateVtbl = TIRpcSyntaxNegotiateVtbl -type TIRpcSyntaxNegotiate1 = struct { - FlpVtbl uintptr -} - -type IRpcSyntaxNegotiate1 = TIRpcSyntaxNegotiate1 - type TIRpcProxyBufferVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72651,12 +68773,6 @@ type TIRpcProxyBufferVtbl = struct { type IRpcProxyBufferVtbl = TIRpcProxyBufferVtbl -type TIRpcProxyBuffer1 = struct { - FlpVtbl uintptr -} - -type IRpcProxyBuffer1 = TIRpcProxyBuffer1 - type TIRpcStubBufferVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72682,12 +68798,6 @@ type TIPSFactoryBufferVtbl = struct { type IPSFactoryBufferVtbl = TIPSFactoryBufferVtbl -type TIPSFactoryBuffer1 = struct { - FlpVtbl uintptr -} - -type IPSFactoryBuffer1 = TIPSFactoryBuffer1 - type TSChannelHookCallInfo = struct { Fiid TIID FcbSize TDWORD @@ -72713,12 +68823,6 @@ type TIChannelHookVtbl = struct { type IChannelHookVtbl = TIChannelHookVtbl -type TIChannelHook1 = struct { - FlpVtbl uintptr -} - -type IChannelHook1 = TIChannelHook1 - type TSOLE_AUTHENTICATION_SERVICE = struct { FdwAuthnSvc TDWORD FdwAuthzSvc TDWORD @@ -72800,12 +68904,6 @@ type TIClientSecurityVtbl = struct { type IClientSecurityVtbl = TIClientSecurityVtbl -type TIClientSecurity1 = struct { - FlpVtbl uintptr -} - -type IClientSecurity1 = TIClientSecurity1 - type TIServerSecurityVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72818,12 +68916,6 @@ type TIServerSecurityVtbl = struct { type IServerSecurityVtbl = TIServerSecurityVtbl -type TIServerSecurity1 = struct { - FlpVtbl uintptr -} - -type IServerSecurity1 = TIServerSecurity1 - type TRPCOPT_PROPERTIES = int32 type RPCOPT_PROPERTIES = TRPCOPT_PROPERTIES @@ -72854,12 +68946,6 @@ type TIRpcOptionsVtbl = struct { type IRpcOptionsVtbl = TIRpcOptionsVtbl -type TIRpcOptions1 = struct { - FlpVtbl uintptr -} - -type IRpcOptions1 = TIRpcOptions1 - type TGLOBALOPT_PROPERTIES = int32 type GLOBALOPT_PROPERTIES = TGLOBALOPT_PROPERTIES @@ -72927,12 +69013,6 @@ type TIGlobalOptionsVtbl = struct { type IGlobalOptionsVtbl = TIGlobalOptionsVtbl -type TIGlobalOptions1 = struct { - FlpVtbl uintptr -} - -type IGlobalOptions1 = TIGlobalOptions1 - type TLPSURROGATE = uintptr type LPSURROGATE = TLPSURROGATE @@ -72947,12 +69027,6 @@ type TISurrogateVtbl = struct { type ISurrogateVtbl = TISurrogateVtbl -type TISurrogate1 = struct { - FlpVtbl uintptr -} - -type ISurrogate1 = TISurrogate1 - type TLPGLOBALINTERFACETABLE = uintptr type LPGLOBALINTERFACETABLE = TLPGLOBALINTERFACETABLE @@ -72968,12 +69042,6 @@ type TIGlobalInterfaceTableVtbl = struct { type IGlobalInterfaceTableVtbl = TIGlobalInterfaceTableVtbl -type TIGlobalInterfaceTable1 = struct { - FlpVtbl uintptr -} - -type IGlobalInterfaceTable1 = TIGlobalInterfaceTable1 - type TISynchronizeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -72985,12 +69053,6 @@ type TISynchronizeVtbl = struct { type ISynchronizeVtbl = TISynchronizeVtbl -type TISynchronize1 = struct { - FlpVtbl uintptr -} - -type ISynchronize1 = TISynchronize1 - type TISynchronizeHandleVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73000,12 +69062,6 @@ type TISynchronizeHandleVtbl = struct { type ISynchronizeHandleVtbl = TISynchronizeHandleVtbl -type TISynchronizeHandle1 = struct { - FlpVtbl uintptr -} - -type ISynchronizeHandle1 = TISynchronizeHandle1 - type TISynchronizeEventVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73016,12 +69072,6 @@ type TISynchronizeEventVtbl = struct { type ISynchronizeEventVtbl = TISynchronizeEventVtbl -type TISynchronizeEvent1 = struct { - FlpVtbl uintptr -} - -type ISynchronizeEvent1 = TISynchronizeEvent1 - type TISynchronizeContainerVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73032,12 +69082,6 @@ type TISynchronizeContainerVtbl = struct { type ISynchronizeContainerVtbl = TISynchronizeContainerVtbl -type TISynchronizeContainer1 = struct { - FlpVtbl uintptr -} - -type ISynchronizeContainer1 = TISynchronizeContainer1 - type TISynchronizeMutexVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73050,12 +69094,6 @@ type TISynchronizeMutexVtbl = struct { type ISynchronizeMutexVtbl = TISynchronizeMutexVtbl -type TISynchronizeMutex1 = struct { - FlpVtbl uintptr -} - -type ISynchronizeMutex1 = TISynchronizeMutex1 - type TLPCANCELMETHODCALLS = uintptr type LPCANCELMETHODCALLS = TLPCANCELMETHODCALLS @@ -73070,12 +69108,6 @@ type TICancelMethodCallsVtbl = struct { type ICancelMethodCallsVtbl = TICancelMethodCallsVtbl -type TICancelMethodCalls1 = struct { - FlpVtbl uintptr -} - -type ICancelMethodCalls1 = TICancelMethodCalls1 - type TDCOM_CALL_STATE = int32 type DCOM_CALL_STATE = TDCOM_CALL_STATE @@ -73097,12 +69129,6 @@ type TIAsyncManagerVtbl = struct { type IAsyncManagerVtbl = TIAsyncManagerVtbl -type TIAsyncManager1 = struct { - FlpVtbl uintptr -} - -type IAsyncManager1 = TIAsyncManager1 - type TICallFactoryVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73112,12 +69138,6 @@ type TICallFactoryVtbl = struct { type ICallFactoryVtbl = TICallFactoryVtbl -type TICallFactory1 = struct { - FlpVtbl uintptr -} - -type ICallFactory1 = TICallFactory1 - type TIRpcHelperVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73128,12 +69148,6 @@ type TIRpcHelperVtbl = struct { type IRpcHelperVtbl = TIRpcHelperVtbl -type TIRpcHelper1 = struct { - FlpVtbl uintptr -} - -type IRpcHelper1 = TIRpcHelper1 - type TIReleaseMarshalBuffersVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73143,12 +69157,6 @@ type TIReleaseMarshalBuffersVtbl = struct { type IReleaseMarshalBuffersVtbl = TIReleaseMarshalBuffersVtbl -type TIReleaseMarshalBuffers1 = struct { - FlpVtbl uintptr -} - -type IReleaseMarshalBuffers1 = TIReleaseMarshalBuffers1 - type TIWaitMultipleVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73159,12 +69167,6 @@ type TIWaitMultipleVtbl = struct { type IWaitMultipleVtbl = TIWaitMultipleVtbl -type TIWaitMultiple1 = struct { - FlpVtbl uintptr -} - -type IWaitMultiple1 = TIWaitMultiple1 - type TLPADDRTRACKINGCONTROL = uintptr type LPADDRTRACKINGCONTROL = TLPADDRTRACKINGCONTROL @@ -73179,12 +69181,6 @@ type TIAddrTrackingControlVtbl = struct { type IAddrTrackingControlVtbl = TIAddrTrackingControlVtbl -type TIAddrTrackingControl1 = struct { - FlpVtbl uintptr -} - -type IAddrTrackingControl1 = TIAddrTrackingControl1 - type TLPADDREXCLUSIONCONTROL = uintptr type LPADDREXCLUSIONCONTROL = TLPADDREXCLUSIONCONTROL @@ -73199,12 +69195,6 @@ type TIAddrExclusionControlVtbl = struct { type IAddrExclusionControlVtbl = TIAddrExclusionControlVtbl -type TIAddrExclusionControl1 = struct { - FlpVtbl uintptr -} - -type IAddrExclusionControl1 = TIAddrExclusionControl1 - type TIPipeByteVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73215,12 +69205,6 @@ type TIPipeByteVtbl = struct { type IPipeByteVtbl = TIPipeByteVtbl -type TIPipeByte1 = struct { - FlpVtbl uintptr -} - -type IPipeByte1 = TIPipeByte1 - type TIPipeLongVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73231,12 +69215,6 @@ type TIPipeLongVtbl = struct { type IPipeLongVtbl = TIPipeLongVtbl -type TIPipeLong1 = struct { - FlpVtbl uintptr -} - -type IPipeLong1 = TIPipeLong1 - type TIPipeDoubleVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73247,12 +69225,6 @@ type TIPipeDoubleVtbl = struct { type IPipeDoubleVtbl = TIPipeDoubleVtbl -type TIPipeDouble1 = struct { - FlpVtbl uintptr -} - -type IPipeDouble1 = TIPipeDouble1 - type TAPTTYPEQUALIFIER = int32 type APTTYPEQUALIFIER = TAPTTYPEQUALIFIER @@ -73304,12 +69276,6 @@ type TIComThreadingInfoVtbl = struct { type IComThreadingInfoVtbl = TIComThreadingInfoVtbl -type TIComThreadingInfo1 = struct { - FlpVtbl uintptr -} - -type IComThreadingInfo1 = TIComThreadingInfo1 - type TIProcessInitControlVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73319,12 +69285,6 @@ type TIProcessInitControlVtbl = struct { type IProcessInitControlVtbl = TIProcessInitControlVtbl -type TIProcessInitControl1 = struct { - FlpVtbl uintptr -} - -type IProcessInitControl1 = TIProcessInitControl1 - type TIFastRundownVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -73333,12 +69293,6 @@ type TIFastRundownVtbl = struct { type IFastRundownVtbl = TIFastRundownVtbl -type TIFastRundown1 = struct { - FlpVtbl uintptr -} - -type IFastRundown1 = TIFastRundown1 - type TCO_MARSHALING_CONTEXT_ATTRIBUTES = int32 type CO_MARSHALING_CONTEXT_ATTRIBUTES = TCO_MARSHALING_CONTEXT_ATTRIBUTES @@ -73367,12 +69321,6 @@ type TIMarshalingStreamVtbl = struct { type IMarshalingStreamVtbl = TIMarshalingStreamVtbl -type TIMarshalingStream1 = struct { - FlpVtbl uintptr -} - -type IMarshalingStream1 = TIMarshalingStream1 - type TServerInformation = struct { F__ccgo_align [0]uint32 FdwServerPid TDWORD @@ -74367,12 +70315,6 @@ type TIMallocSpyVtbl = struct { type IMallocSpyVtbl = TIMallocSpyVtbl -type TIMallocSpy1 = struct { - FlpVtbl uintptr -} - -type IMallocSpy1 = TIMallocSpy1 - type TLPBC = uintptr type LPBC = TLPBC @@ -74468,12 +70410,6 @@ type TIBindCtxVtbl = struct { type IBindCtxVtbl = TIBindCtxVtbl -type TIBindCtx1 = struct { - FlpVtbl uintptr -} - -type IBindCtx1 = TIBindCtx1 - type TLPENUMMONIKER = uintptr type LPENUMMONIKER = TLPENUMMONIKER @@ -74490,12 +70426,6 @@ type TIEnumMonikerVtbl = struct { type IEnumMonikerVtbl = TIEnumMonikerVtbl -type TIEnumMoniker1 = struct { - FlpVtbl uintptr -} - -type IEnumMoniker1 = TIEnumMoniker1 - type TLPRUNNABLEOBJECT = uintptr type LPRUNNABLEOBJECT = TLPRUNNABLEOBJECT @@ -74513,12 +70443,6 @@ type TIRunnableObjectVtbl = struct { type IRunnableObjectVtbl = TIRunnableObjectVtbl -type TIRunnableObject1 = struct { - FlpVtbl uintptr -} - -type IRunnableObject1 = TIRunnableObject1 - type TLPRUNNINGOBJECTTABLE = uintptr type LPRUNNINGOBJECTTABLE = TLPRUNNINGOBJECTTABLE @@ -74538,12 +70462,6 @@ type TIRunningObjectTableVtbl = struct { type IRunningObjectTableVtbl = TIRunningObjectTableVtbl -type TIRunningObjectTable1 = struct { - FlpVtbl uintptr -} - -type IRunningObjectTable1 = TIRunningObjectTable1 - type TLPPERSIST = uintptr type LPPERSIST = TLPPERSIST @@ -74557,12 +70475,6 @@ type TIPersistVtbl = struct { type IPersistVtbl = TIPersistVtbl -type TIPersist1 = struct { - FlpVtbl uintptr -} - -type IPersist1 = TIPersist1 - type TLPPERSISTSTREAM = uintptr type LPPERSISTSTREAM = TLPPERSISTSTREAM @@ -74580,12 +70492,6 @@ type TIPersistStreamVtbl = struct { type IPersistStreamVtbl = TIPersistStreamVtbl -type TIPersistStream1 = struct { - FlpVtbl uintptr -} - -type IPersistStream1 = TIPersistStream1 - type TLPMONIKER = uintptr type LPMONIKER = TLPMONIKER @@ -74646,12 +70552,6 @@ type TIMonikerVtbl = struct { type IMonikerVtbl = TIMonikerVtbl -type TIMoniker1 = struct { - FlpVtbl uintptr -} - -type IMoniker1 = TIMoniker1 - type TIROTDataVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -74661,12 +70561,6 @@ type TIROTDataVtbl = struct { type IROTDataVtbl = TIROTDataVtbl -type TIROTData1 = struct { - FlpVtbl uintptr -} - -type IROTData1 = TIROTData1 - type TLPENUMSTATSTG = uintptr type LPENUMSTATSTG = TLPENUMSTATSTG @@ -74683,12 +70577,6 @@ type TIEnumSTATSTGVtbl = struct { type IEnumSTATSTGVtbl = TIEnumSTATSTGVtbl -type TIEnumSTATSTG1 = struct { - FlpVtbl uintptr -} - -type IEnumSTATSTG1 = TIEnumSTATSTG1 - type TLPSTORAGE = uintptr type LPSTORAGE = TLPSTORAGE @@ -74736,12 +70624,6 @@ type TIStorageVtbl = struct { type IStorageVtbl = TIStorageVtbl -type TIStorage1 = struct { - FlpVtbl uintptr -} - -type IStorage1 = TIStorage1 - type TLPPERSISTFILE = uintptr type LPPERSISTFILE = TLPPERSISTFILE @@ -74760,12 +70642,6 @@ type TIPersistFileVtbl = struct { type IPersistFileVtbl = TIPersistFileVtbl -type TIPersistFile1 = struct { - FlpVtbl uintptr -} - -type IPersistFile1 = TIPersistFile1 - type TLPPERSISTSTORAGE = uintptr type LPPERSISTSTORAGE = TLPPERSISTSTORAGE @@ -74785,12 +70661,6 @@ type TIPersistStorageVtbl = struct { type IPersistStorageVtbl = TIPersistStorageVtbl -type TIPersistStorage1 = struct { - FlpVtbl uintptr -} - -type IPersistStorage1 = TIPersistStorage1 - type TLPLOCKBYTES = uintptr type LPLOCKBYTES = TLPLOCKBYTES @@ -74810,12 +70680,6 @@ type TILockBytesVtbl = struct { type ILockBytesVtbl = TILockBytesVtbl -type TILockBytes1 = struct { - FlpVtbl uintptr -} - -type ILockBytes1 = TILockBytes1 - type TLPENUMFORMATETC = uintptr type LPENUMFORMATETC = TLPENUMFORMATETC @@ -74869,12 +70733,6 @@ type TIEnumFORMATETCVtbl = struct { type IEnumFORMATETCVtbl = TIEnumFORMATETCVtbl -type TIEnumFORMATETC1 = struct { - FlpVtbl uintptr -} - -type IEnumFORMATETC1 = TIEnumFORMATETC1 - type TLPENUMSTATDATA = uintptr type LPENUMSTATDATA = TLPENUMSTATDATA @@ -74922,12 +70780,6 @@ type TIEnumSTATDATAVtbl = struct { type IEnumSTATDATAVtbl = TIEnumSTATDATAVtbl -type TIEnumSTATDATA1 = struct { - FlpVtbl uintptr -} - -type IEnumSTATDATA1 = TIEnumSTATDATA1 - type TLPROOTSTORAGE = uintptr type LPROOTSTORAGE = TLPROOTSTORAGE @@ -74941,12 +70793,6 @@ type TIRootStorageVtbl = struct { type IRootStorageVtbl = TIRootStorageVtbl -type TIRootStorage1 = struct { - FlpVtbl uintptr -} - -type IRootStorage1 = TIRootStorage1 - type TLPADVISESINK = uintptr type LPADVISESINK = TLPADVISESINK @@ -75108,12 +70954,6 @@ type TIAdviseSinkVtbl = struct { type IAdviseSinkVtbl = TIAdviseSinkVtbl -type TIAdviseSink1 = struct { - FlpVtbl uintptr -} - -type IAdviseSink1 = TIAdviseSink1 - type TAsyncIAdviseSinkVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75132,12 +70972,6 @@ type TAsyncIAdviseSinkVtbl = struct { type AsyncIAdviseSinkVtbl = TAsyncIAdviseSinkVtbl -type TAsyncIAdviseSink1 = struct { - FlpVtbl uintptr -} - -type AsyncIAdviseSink1 = TAsyncIAdviseSink1 - type TLPADVISESINK2 = uintptr type LPADVISESINK2 = TLPADVISESINK2 @@ -75156,12 +70990,6 @@ type TIAdviseSink2Vtbl = struct { type IAdviseSink2Vtbl = TIAdviseSink2Vtbl -type TIAdviseSink21 = struct { - FlpVtbl uintptr -} - -type IAdviseSink21 = TIAdviseSink21 - type TAsyncIAdviseSink2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75182,12 +71010,6 @@ type TAsyncIAdviseSink2Vtbl = struct { type AsyncIAdviseSink2Vtbl = TAsyncIAdviseSink2Vtbl -type TAsyncIAdviseSink21 = struct { - FlpVtbl uintptr -} - -type AsyncIAdviseSink21 = TAsyncIAdviseSink21 - type TLPDATAOBJECT = uintptr type LPDATAOBJECT = TLPDATAOBJECT @@ -75218,12 +71040,6 @@ type TIDataObjectVtbl = struct { type IDataObjectVtbl = TIDataObjectVtbl -type TIDataObject1 = struct { - FlpVtbl uintptr -} - -type IDataObject1 = TIDataObject1 - type TLPDATAADVISEHOLDER = uintptr type LPDATAADVISEHOLDER = TLPDATAADVISEHOLDER @@ -75240,12 +71056,6 @@ type TIDataAdviseHolderVtbl = struct { type IDataAdviseHolderVtbl = TIDataAdviseHolderVtbl -type TIDataAdviseHolder1 = struct { - FlpVtbl uintptr -} - -type IDataAdviseHolder1 = TIDataAdviseHolder1 - type TLPMESSAGEFILTER = uintptr type LPMESSAGEFILTER = TLPMESSAGEFILTER @@ -75318,12 +71128,6 @@ type TIMessageFilterVtbl = struct { type IMessageFilterVtbl = TIMessageFilterVtbl -type TIMessageFilter1 = struct { - FlpVtbl uintptr -} - -type IMessageFilter1 = TIMessageFilter1 - type TIClassActivatorVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75333,12 +71137,6 @@ type TIClassActivatorVtbl = struct { type IClassActivatorVtbl = TIClassActivatorVtbl -type TIClassActivator1 = struct { - FlpVtbl uintptr -} - -type IClassActivator1 = TIClassActivator1 - type TIFillLockBytesVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75351,12 +71149,6 @@ type TIFillLockBytesVtbl = struct { type IFillLockBytesVtbl = TIFillLockBytesVtbl -type TIFillLockBytes1 = struct { - FlpVtbl uintptr -} - -type IFillLockBytes1 = TIFillLockBytes1 - type TIProgressNotifyVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75366,12 +71158,6 @@ type TIProgressNotifyVtbl = struct { type IProgressNotifyVtbl = TIProgressNotifyVtbl -type TIProgressNotify1 = struct { - FlpVtbl uintptr -} - -type IProgressNotify1 = TIProgressNotify1 - type TStorageLayout = struct { F__ccgo_align [0]uint32 FLayoutType TDWORD @@ -75399,12 +71185,6 @@ type TILayoutStorageVtbl = struct { type ILayoutStorageVtbl = TILayoutStorageVtbl -type TILayoutStorage1 = struct { - FlpVtbl uintptr -} - -type ILayoutStorage1 = TILayoutStorage1 - type TIBlockingLockVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75415,12 +71195,6 @@ type TIBlockingLockVtbl = struct { type IBlockingLockVtbl = TIBlockingLockVtbl -type TIBlockingLock1 = struct { - FlpVtbl uintptr -} - -type IBlockingLock1 = TIBlockingLock1 - type TITimeAndNoticeControlVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75430,12 +71204,6 @@ type TITimeAndNoticeControlVtbl = struct { type ITimeAndNoticeControlVtbl = TITimeAndNoticeControlVtbl -type TITimeAndNoticeControl1 = struct { - FlpVtbl uintptr -} - -type ITimeAndNoticeControl1 = TITimeAndNoticeControl1 - type TIOplockStorageVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75446,12 +71214,6 @@ type TIOplockStorageVtbl = struct { type IOplockStorageVtbl = TIOplockStorageVtbl -type TIOplockStorage1 = struct { - FlpVtbl uintptr -} - -type IOplockStorage1 = TIOplockStorage1 - type TIDirectWriterLockVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75463,12 +71225,6 @@ type TIDirectWriterLockVtbl = struct { type IDirectWriterLockVtbl = TIDirectWriterLockVtbl -type TIDirectWriterLock1 = struct { - FlpVtbl uintptr -} - -type IDirectWriterLock1 = TIDirectWriterLock1 - type TIUrlMonVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75478,12 +71234,6 @@ type TIUrlMonVtbl = struct { type IUrlMonVtbl = TIUrlMonVtbl -type TIUrlMon1 = struct { - FlpVtbl uintptr -} - -type IUrlMon1 = TIUrlMon1 - type TIForegroundTransferVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75493,12 +71243,6 @@ type TIForegroundTransferVtbl = struct { type IForegroundTransferVtbl = TIForegroundTransferVtbl -type TIForegroundTransfer1 = struct { - FlpVtbl uintptr -} - -type IForegroundTransfer1 = TIForegroundTransfer1 - type TIThumbnailExtractorVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75509,12 +71253,6 @@ type TIThumbnailExtractorVtbl = struct { type IThumbnailExtractorVtbl = TIThumbnailExtractorVtbl -type TIThumbnailExtractor1 = struct { - FlpVtbl uintptr -} - -type IThumbnailExtractor1 = TIThumbnailExtractor1 - type TIDummyHICONIncluderVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75524,12 +71262,6 @@ type TIDummyHICONIncluderVtbl = struct { type IDummyHICONIncluderVtbl = TIDummyHICONIncluderVtbl -type TIDummyHICONIncluder1 = struct { - FlpVtbl uintptr -} - -type IDummyHICONIncluder1 = TIDummyHICONIncluder1 - type TApplicationType = int32 type ApplicationType = TApplicationType @@ -75558,12 +71290,6 @@ type TIProcessLockVtbl = struct { type IProcessLockVtbl = TIProcessLockVtbl -type TIProcessLock1 = struct { - FlpVtbl uintptr -} - -type IProcessLock1 = TIProcessLock1 - type TISurrogateServiceVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75577,12 +71303,6 @@ type TISurrogateServiceVtbl = struct { type ISurrogateServiceVtbl = TISurrogateServiceVtbl -type TISurrogateService1 = struct { - FlpVtbl uintptr -} - -type ISurrogateService1 = TISurrogateService1 - type TLPINITIALIZESPY = uintptr type LPINITIALIZESPY = TLPINITIALIZESPY @@ -75599,12 +71319,6 @@ type TIInitializeSpyVtbl = struct { type IInitializeSpyVtbl = TIInitializeSpyVtbl -type TIInitializeSpy1 = struct { - FlpVtbl uintptr -} - -type IInitializeSpy1 = TIInitializeSpy1 - type TIApartmentShutdownVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -75614,12 +71328,6 @@ type TIApartmentShutdownVtbl = struct { type IApartmentShutdownVtbl = TIApartmentShutdownVtbl -type TIApartmentShutdown1 = struct { - FlpVtbl uintptr -} - -type IApartmentShutdown1 = TIApartmentShutdown1 - type TCOMSD = int32 type COMSD = TCOMSD @@ -76118,12 +71826,6 @@ type TIOleAdviseHolderVtbl = struct { type IOleAdviseHolderVtbl = TIOleAdviseHolderVtbl -type TIOleAdviseHolder1 = struct { - FlpVtbl uintptr -} - -type IOleAdviseHolder1 = TIOleAdviseHolder1 - type TLPOLECACHE = uintptr type LPOLECACHE = TLPOLECACHE @@ -76141,12 +71843,6 @@ type TIOleCacheVtbl = struct { type IOleCacheVtbl = TIOleCacheVtbl -type TIOleCache1 = struct { - FlpVtbl uintptr -} - -type IOleCache1 = TIOleCache1 - type TLPOLECACHE2 = uintptr type LPOLECACHE2 = TLPOLECACHE2 @@ -76175,12 +71871,6 @@ type TIOleCache2Vtbl = struct { type IOleCache2Vtbl = TIOleCache2Vtbl -type TIOleCache21 = struct { - FlpVtbl uintptr -} - -type IOleCache21 = TIOleCache21 - type TLPOLECACHECONTROL = uintptr type LPOLECACHECONTROL = TLPOLECACHECONTROL @@ -76195,12 +71885,6 @@ type TIOleCacheControlVtbl = struct { type IOleCacheControlVtbl = TIOleCacheControlVtbl -type TIOleCacheControl1 = struct { - FlpVtbl uintptr -} - -type IOleCacheControl1 = TIOleCacheControl1 - type TLPPARSEDISPLAYNAME = uintptr type LPPARSEDISPLAYNAME = TLPPARSEDISPLAYNAME @@ -76214,12 +71898,6 @@ type TIParseDisplayNameVtbl = struct { type IParseDisplayNameVtbl = TIParseDisplayNameVtbl -type TIParseDisplayName1 = struct { - FlpVtbl uintptr -} - -type IParseDisplayName1 = TIParseDisplayName1 - type TLPOLECONTAINER = uintptr type LPOLECONTAINER = TLPOLECONTAINER @@ -76235,12 +71913,6 @@ type TIOleContainerVtbl = struct { type IOleContainerVtbl = TIOleContainerVtbl -type TIOleContainer1 = struct { - FlpVtbl uintptr -} - -type IOleContainer1 = TIOleContainer1 - type TLPOLECLIENTSITE = uintptr type LPOLECLIENTSITE = TLPOLECLIENTSITE @@ -76259,12 +71931,6 @@ type TIOleClientSiteVtbl = struct { type IOleClientSiteVtbl = TIOleClientSiteVtbl -type TIOleClientSite1 = struct { - FlpVtbl uintptr -} - -type IOleClientSite1 = TIOleClientSite1 - type TLPOLEOBJECT = uintptr type LPOLEOBJECT = TLPOLEOBJECT @@ -76368,12 +72034,6 @@ type TIOleObjectVtbl = struct { type IOleObjectVtbl = TIOleObjectVtbl -type TIOleObject1 = struct { - FlpVtbl uintptr -} - -type IOleObject1 = TIOleObject1 - type TOLERENDER = int32 type OLERENDER = TOLERENDER @@ -76449,12 +72109,6 @@ type TIOleWindowVtbl = struct { type IOleWindowVtbl = TIOleWindowVtbl -type TIOleWindow1 = struct { - FlpVtbl uintptr -} - -type IOleWindow1 = TIOleWindow1 - type TLPOLELINK = uintptr type LPOLELINK = TLPOLELINK @@ -76503,12 +72157,6 @@ type TIOleLinkVtbl = struct { type IOleLinkVtbl = TIOleLinkVtbl -type TIOleLink1 = struct { - FlpVtbl uintptr -} - -type IOleLink1 = TIOleLink1 - type TLPOLEITEMCONTAINER = uintptr type LPOLEITEMCONTAINER = TLPOLEITEMCONTAINER @@ -76549,12 +72197,6 @@ type TIOleItemContainerVtbl = struct { type IOleItemContainerVtbl = TIOleItemContainerVtbl -type TIOleItemContainer1 = struct { - FlpVtbl uintptr -} - -type IOleItemContainer1 = TIOleItemContainer1 - type TLPOLEINPLACEUIWINDOW = uintptr type LPOLEINPLACEUIWINDOW = TLPOLEINPLACEUIWINDOW @@ -76590,12 +72232,6 @@ type TIOleInPlaceUIWindowVtbl = struct { type IOleInPlaceUIWindowVtbl = TIOleInPlaceUIWindowVtbl -type TIOleInPlaceUIWindow1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceUIWindow1 = TIOleInPlaceUIWindow1 - type TLPOLEINPLACEACTIVEOBJECT = uintptr type LPOLEINPLACEACTIVEOBJECT = TLPOLEINPLACEACTIVEOBJECT @@ -76615,12 +72251,6 @@ type TIOleInPlaceActiveObjectVtbl = struct { type IOleInPlaceActiveObjectVtbl = TIOleInPlaceActiveObjectVtbl -type TIOleInPlaceActiveObject1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceActiveObject1 = TIOleInPlaceActiveObject1 - type TLPOLEINPLACEFRAME = uintptr type LPOLEINPLACEFRAME = TLPOLEINPLACEFRAME @@ -76681,12 +72311,6 @@ type TIOleInPlaceFrameVtbl = struct { type IOleInPlaceFrameVtbl = TIOleInPlaceFrameVtbl -type TIOleInPlaceFrame1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceFrame1 = TIOleInPlaceFrame1 - type TLPOLEINPLACEOBJECT = uintptr type LPOLEINPLACEOBJECT = TLPOLEINPLACEOBJECT @@ -76705,12 +72329,6 @@ type TIOleInPlaceObjectVtbl = struct { type IOleInPlaceObjectVtbl = TIOleInPlaceObjectVtbl -type TIOleInPlaceObject1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceObject1 = TIOleInPlaceObject1 - type TLPOLEINPLACESITE = uintptr type LPOLEINPLACESITE = TLPOLEINPLACESITE @@ -76735,12 +72353,6 @@ type TIOleInPlaceSiteVtbl = struct { type IOleInPlaceSiteVtbl = TIOleInPlaceSiteVtbl -type TIOleInPlaceSite1 = struct { - FlpVtbl uintptr -} - -type IOleInPlaceSite1 = TIOleInPlaceSite1 - type TIContinueVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -76750,12 +72362,6 @@ type TIContinueVtbl = struct { type IContinueVtbl = TIContinueVtbl -type TIContinue1 = struct { - FlpVtbl uintptr -} - -type IContinue1 = TIContinue1 - type TLPVIEWOBJECT = uintptr type LPVIEWOBJECT = TLPVIEWOBJECT @@ -76774,12 +72380,6 @@ type TIViewObjectVtbl = struct { type IViewObjectVtbl = TIViewObjectVtbl -type TIViewObject1 = struct { - FlpVtbl uintptr -} - -type IViewObject1 = TIViewObject1 - type TLPVIEWOBJECT2 = uintptr type LPVIEWOBJECT2 = TLPVIEWOBJECT2 @@ -76799,12 +72399,6 @@ type TIViewObject2Vtbl = struct { type IViewObject2Vtbl = TIViewObject2Vtbl -type TIViewObject21 = struct { - FlpVtbl uintptr -} - -type IViewObject21 = TIViewObject21 - type TLPDROPSOURCE = uintptr type LPDROPSOURCE = TLPDROPSOURCE @@ -76819,12 +72413,6 @@ type TIDropSourceVtbl = struct { type IDropSourceVtbl = TIDropSourceVtbl -type TIDropSource1 = struct { - FlpVtbl uintptr -} - -type IDropSource1 = TIDropSource1 - type TLPDROPTARGET = uintptr type LPDROPTARGET = TLPDROPTARGET @@ -76841,12 +72429,6 @@ type TIDropTargetVtbl = struct { type IDropTargetVtbl = TIDropTargetVtbl -type TIDropTarget1 = struct { - FlpVtbl uintptr -} - -type IDropTarget1 = TIDropTarget1 - type TIDropSourceNotifyVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -76857,12 +72439,6 @@ type TIDropSourceNotifyVtbl = struct { type IDropSourceNotifyVtbl = TIDropSourceNotifyVtbl -type TIDropSourceNotify1 = struct { - FlpVtbl uintptr -} - -type IDropSourceNotify1 = TIDropSourceNotify1 - type TLPENUMOLEVERB = uintptr type LPENUMOLEVERB = TLPENUMOLEVERB @@ -76905,12 +72481,6 @@ type TIEnumOLEVERBVtbl = struct { type IEnumOLEVERBVtbl = TIEnumOLEVERBVtbl -type TIEnumOLEVERB1 = struct { - FlpVtbl uintptr -} - -type IEnumOLEVERB1 = TIEnumOLEVERB1 - type TIServiceProvider = struct { FlpVtbl uintptr } @@ -76930,12 +72500,6 @@ type TIServiceProviderVtbl = struct { type IServiceProviderVtbl = TIServiceProviderVtbl -type TIServiceProvider1 = struct { - FlpVtbl uintptr -} - -type IServiceProvider1 = TIServiceProvider1 - type TICreateTypeInfo = struct { FlpVtbl uintptr } @@ -77864,12 +73428,6 @@ type TICreateTypeInfoVtbl = struct { type ICreateTypeInfoVtbl = TICreateTypeInfoVtbl -type TICreateTypeInfo1 = struct { - FlpVtbl uintptr -} - -type ICreateTypeInfo1 = TICreateTypeInfo1 - type TLPCREATETYPEINFO2 = uintptr type LPCREATETYPEINFO2 = TLPCREATETYPEINFO2 @@ -77920,12 +73478,6 @@ type TICreateTypeInfo2Vtbl = struct { type ICreateTypeInfo2Vtbl = TICreateTypeInfo2Vtbl -type TICreateTypeInfo21 = struct { - FlpVtbl uintptr -} - -type ICreateTypeInfo21 = TICreateTypeInfo21 - type TLPCREATETYPELIB = uintptr type LPCREATETYPELIB = TLPCREATETYPELIB @@ -77948,12 +73500,6 @@ type TICreateTypeLibVtbl = struct { type ICreateTypeLibVtbl = TICreateTypeLibVtbl -type TICreateTypeLib1 = struct { - FlpVtbl uintptr -} - -type ICreateTypeLib1 = TICreateTypeLib1 - type TLPCREATETYPELIB2 = uintptr type LPCREATETYPELIB2 = TLPCREATETYPELIB2 @@ -77980,12 +73526,6 @@ type TICreateTypeLib2Vtbl = struct { type ICreateTypeLib2Vtbl = TICreateTypeLib2Vtbl -type TICreateTypeLib21 = struct { - FlpVtbl uintptr -} - -type ICreateTypeLib21 = TICreateTypeLib21 - type TLPDISPATCH = uintptr type LPDISPATCH = TLPDISPATCH @@ -78002,12 +73542,6 @@ type TIDispatchVtbl = struct { type IDispatchVtbl = TIDispatchVtbl -type TIDispatch1 = struct { - FlpVtbl uintptr -} - -type IDispatch1 = TIDispatch1 - type TLPENUMVARIANT = uintptr type LPENUMVARIANT = TLPENUMVARIANT @@ -78024,12 +73558,6 @@ type TIEnumVARIANTVtbl = struct { type IEnumVARIANTVtbl = TIEnumVARIANTVtbl -type TIEnumVARIANT1 = struct { - FlpVtbl uintptr -} - -type IEnumVARIANT1 = TIEnumVARIANT1 - type TLPTYPECOMP = uintptr type LPTYPECOMP = TLPTYPECOMP @@ -78073,12 +73601,6 @@ type TITypeCompVtbl = struct { type ITypeCompVtbl = TITypeCompVtbl -type TITypeComp1 = struct { - FlpVtbl uintptr -} - -type ITypeComp1 = TITypeComp1 - type TLPTYPEINFO = uintptr type LPTYPEINFO = TLPTYPEINFO @@ -78110,12 +73632,6 @@ type TITypeInfoVtbl = struct { type ITypeInfoVtbl = TITypeInfoVtbl -type TITypeInfo1 = struct { - FlpVtbl uintptr -} - -type ITypeInfo1 = TITypeInfo1 - type TLPTYPEINFO2 = uintptr type LPTYPEINFO2 = TLPTYPEINFO2 @@ -78162,12 +73678,6 @@ type TITypeInfo2Vtbl = struct { type ITypeInfo2Vtbl = TITypeInfo2Vtbl -type TITypeInfo21 = struct { - FlpVtbl uintptr -} - -type ITypeInfo21 = TITypeInfo21 - type TSYSKIND = int32 type SYSKIND = TSYSKIND @@ -78231,12 +73741,6 @@ type TITypeLibVtbl = struct { type ITypeLibVtbl = TITypeLibVtbl -type TITypeLib1 = struct { - FlpVtbl uintptr -} - -type ITypeLib1 = TITypeLib1 - type TLPTYPELIB2 = uintptr type LPTYPELIB2 = TLPTYPELIB2 @@ -78263,12 +73767,6 @@ type TITypeLib2Vtbl = struct { type ITypeLib2Vtbl = TITypeLib2Vtbl -type TITypeLib21 = struct { - FlpVtbl uintptr -} - -type ITypeLib21 = TITypeLib21 - type TLPTYPECHANGEEVENTS = uintptr type LPTYPECHANGEEVENTS = TLPTYPECHANGEEVENTS @@ -78298,12 +73796,6 @@ type TITypeChangeEventsVtbl = struct { type ITypeChangeEventsVtbl = TITypeChangeEventsVtbl -type TITypeChangeEvents1 = struct { - FlpVtbl uintptr -} - -type ITypeChangeEvents1 = TITypeChangeEvents1 - type TLPERRORINFO = uintptr type LPERRORINFO = TLPERRORINFO @@ -78321,12 +73813,6 @@ type TIErrorInfoVtbl = struct { type IErrorInfoVtbl = TIErrorInfoVtbl -type TIErrorInfo1 = struct { - FlpVtbl uintptr -} - -type IErrorInfo1 = TIErrorInfo1 - type TLPCREATEERRORINFO = uintptr type LPCREATEERRORINFO = TLPCREATEERRORINFO @@ -78344,12 +73830,6 @@ type TICreateErrorInfoVtbl = struct { type ICreateErrorInfoVtbl = TICreateErrorInfoVtbl -type TICreateErrorInfo1 = struct { - FlpVtbl uintptr -} - -type ICreateErrorInfo1 = TICreateErrorInfo1 - type TLPSUPPORTERRORINFO = uintptr type LPSUPPORTERRORINFO = TLPSUPPORTERRORINFO @@ -78363,12 +73843,6 @@ type TISupportErrorInfoVtbl = struct { type ISupportErrorInfoVtbl = TISupportErrorInfoVtbl -type TISupportErrorInfo1 = struct { - FlpVtbl uintptr -} - -type ISupportErrorInfo1 = TISupportErrorInfo1 - type TITypeFactoryVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78378,12 +73852,6 @@ type TITypeFactoryVtbl = struct { type ITypeFactoryVtbl = TITypeFactoryVtbl -type TITypeFactory1 = struct { - FlpVtbl uintptr -} - -type ITypeFactory1 = TITypeFactory1 - type TITypeMarshalVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78396,12 +73864,6 @@ type TITypeMarshalVtbl = struct { type ITypeMarshalVtbl = TITypeMarshalVtbl -type TITypeMarshal1 = struct { - FlpVtbl uintptr -} - -type ITypeMarshal1 = TITypeMarshal1 - type TLPRECORDINFO = uintptr type LPRECORDINFO = TLPRECORDINFO @@ -78430,12 +73892,6 @@ type TIRecordInfoVtbl = struct { type IRecordInfoVtbl = TIRecordInfoVtbl -type TIRecordInfo1 = struct { - FlpVtbl uintptr -} - -type IRecordInfo1 = TIRecordInfo1 - type TLPERRORLOG = uintptr type LPERRORLOG = TLPERRORLOG @@ -78449,12 +73905,6 @@ type TIErrorLogVtbl = struct { type IErrorLogVtbl = TIErrorLogVtbl -type TIErrorLog1 = struct { - FlpVtbl uintptr -} - -type IErrorLog1 = TIErrorLog1 - type TLPPROPERTYBAG = uintptr type LPPROPERTYBAG = TLPPROPERTYBAG @@ -78469,12 +73919,6 @@ type TIPropertyBagVtbl = struct { type IPropertyBagVtbl = TIPropertyBagVtbl -type TIPropertyBag1 = struct { - FlpVtbl uintptr -} - -type IPropertyBag1 = TIPropertyBag1 - type TIXMLDOMImplementation = struct { FlpVtbl uintptr } @@ -78713,12 +74157,6 @@ type TIXMLDOMImplementationVtbl = struct { type IXMLDOMImplementationVtbl = TIXMLDOMImplementationVtbl -type TIXMLDOMImplementation1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMImplementation1 = TIXMLDOMImplementation1 - type TIXMLDOMNodeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78767,12 +74205,6 @@ type TIXMLDOMNodeVtbl = struct { type IXMLDOMNodeVtbl = TIXMLDOMNodeVtbl -type TIXMLDOMNode1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMNode1 = TIXMLDOMNode1 - type TIXMLDOMDocumentFragmentVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78821,12 +74253,6 @@ type TIXMLDOMDocumentFragmentVtbl = struct { type IXMLDOMDocumentFragmentVtbl = TIXMLDOMDocumentFragmentVtbl -type TIXMLDOMDocumentFragment1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMDocumentFragment1 = TIXMLDOMDocumentFragment1 - type TIXMLDOMDocumentVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78908,12 +74334,6 @@ type TIXMLDOMDocumentVtbl = struct { type IXMLDOMDocumentVtbl = TIXMLDOMDocumentVtbl -type TIXMLDOMDocument1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMDocument1 = TIXMLDOMDocument1 - type TIXMLDOMNodeListVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78931,12 +74351,6 @@ type TIXMLDOMNodeListVtbl = struct { type IXMLDOMNodeListVtbl = TIXMLDOMNodeListVtbl -type TIXMLDOMNodeList1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMNodeList1 = TIXMLDOMNodeList1 - type TIXMLDOMNamedNodeMapVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -78959,12 +74373,6 @@ type TIXMLDOMNamedNodeMapVtbl = struct { type IXMLDOMNamedNodeMapVtbl = TIXMLDOMNamedNodeMapVtbl -type TIXMLDOMNamedNodeMap1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMNamedNodeMap1 = TIXMLDOMNamedNodeMap1 - type TIXMLDOMCharacterDataVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79021,12 +74429,6 @@ type TIXMLDOMCharacterDataVtbl = struct { type IXMLDOMCharacterDataVtbl = TIXMLDOMCharacterDataVtbl -type TIXMLDOMCharacterData1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMCharacterData1 = TIXMLDOMCharacterData1 - type TIXMLDOMAttributeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79078,12 +74480,6 @@ type TIXMLDOMAttributeVtbl = struct { type IXMLDOMAttributeVtbl = TIXMLDOMAttributeVtbl -type TIXMLDOMAttribute1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMAttribute1 = TIXMLDOMAttribute1 - type TIXMLDOMElementVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79141,12 +74537,6 @@ type TIXMLDOMElementVtbl = struct { type IXMLDOMElementVtbl = TIXMLDOMElementVtbl -type TIXMLDOMElement1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMElement1 = TIXMLDOMElement1 - type TIXMLDOMTextVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79204,12 +74594,6 @@ type TIXMLDOMTextVtbl = struct { type IXMLDOMTextVtbl = TIXMLDOMTextVtbl -type TIXMLDOMText1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMText1 = TIXMLDOMText1 - type TIXMLDOMCommentVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79266,12 +74650,6 @@ type TIXMLDOMCommentVtbl = struct { type IXMLDOMCommentVtbl = TIXMLDOMCommentVtbl -type TIXMLDOMComment1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMComment1 = TIXMLDOMComment1 - type TIXMLDOMProcessingInstructionVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79323,12 +74701,6 @@ type TIXMLDOMProcessingInstructionVtbl = struct { type IXMLDOMProcessingInstructionVtbl = TIXMLDOMProcessingInstructionVtbl -type TIXMLDOMProcessingInstruction1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMProcessingInstruction1 = TIXMLDOMProcessingInstruction1 - type TIXMLDOMCDATASectionVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79386,12 +74758,6 @@ type TIXMLDOMCDATASectionVtbl = struct { type IXMLDOMCDATASectionVtbl = TIXMLDOMCDATASectionVtbl -type TIXMLDOMCDATASection1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMCDATASection1 = TIXMLDOMCDATASection1 - type TIXMLDOMDocumentTypeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79443,12 +74809,6 @@ type TIXMLDOMDocumentTypeVtbl = struct { type IXMLDOMDocumentTypeVtbl = TIXMLDOMDocumentTypeVtbl -type TIXMLDOMDocumentType1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMDocumentType1 = TIXMLDOMDocumentType1 - type TIXMLDOMNotationVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79499,12 +74859,6 @@ type TIXMLDOMNotationVtbl = struct { type IXMLDOMNotationVtbl = TIXMLDOMNotationVtbl -type TIXMLDOMNotation1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMNotation1 = TIXMLDOMNotation1 - type TIXMLDOMEntityVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79556,12 +74910,6 @@ type TIXMLDOMEntityVtbl = struct { type IXMLDOMEntityVtbl = TIXMLDOMEntityVtbl -type TIXMLDOMEntity1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMEntity1 = TIXMLDOMEntity1 - type TIXMLDOMEntityReferenceVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79610,12 +74958,6 @@ type TIXMLDOMEntityReferenceVtbl = struct { type IXMLDOMEntityReferenceVtbl = TIXMLDOMEntityReferenceVtbl -type TIXMLDOMEntityReference1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMEntityReference1 = TIXMLDOMEntityReference1 - type TIXMLDOMParseErrorVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79635,12 +74977,6 @@ type TIXMLDOMParseErrorVtbl = struct { type IXMLDOMParseErrorVtbl = TIXMLDOMParseErrorVtbl -type TIXMLDOMParseError1 = struct { - FlpVtbl uintptr -} - -type IXMLDOMParseError1 = TIXMLDOMParseError1 - type TIXTLRuntimeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79698,12 +75034,6 @@ type TIXTLRuntimeVtbl = struct { type IXTLRuntimeVtbl = TIXTLRuntimeVtbl -type TIXTLRuntime1 = struct { - FlpVtbl uintptr -} - -type IXTLRuntime1 = TIXTLRuntime1 - type TXMLDOMDocumentEventsVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79716,12 +75046,6 @@ type TXMLDOMDocumentEventsVtbl = struct { type XMLDOMDocumentEventsVtbl = TXMLDOMDocumentEventsVtbl -type TXMLDOMDocumentEvents1 = struct { - FlpVtbl uintptr -} - -type XMLDOMDocumentEvents1 = TXMLDOMDocumentEvents1 - type TIXMLHttpRequestVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79748,12 +75072,6 @@ type TIXMLHttpRequestVtbl = struct { type IXMLHttpRequestVtbl = TIXMLHttpRequestVtbl -type TIXMLHttpRequest1 = struct { - FlpVtbl uintptr -} - -type IXMLHttpRequest1 = TIXMLHttpRequest1 - type TIXMLDSOControlVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79771,12 +75089,6 @@ type TIXMLDSOControlVtbl = struct { type IXMLDSOControlVtbl = TIXMLDSOControlVtbl -type TIXMLDSOControl1 = struct { - FlpVtbl uintptr -} - -type IXMLDSOControl1 = TIXMLDSOControl1 - type TIXMLElementCollectionVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79793,12 +75105,6 @@ type TIXMLElementCollectionVtbl = struct { type IXMLElementCollectionVtbl = TIXMLElementCollectionVtbl -type TIXMLElementCollection1 = struct { - FlpVtbl uintptr -} - -type IXMLElementCollection1 = TIXMLElementCollection1 - type TIXMLDocumentVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79825,12 +75131,6 @@ type TIXMLDocumentVtbl = struct { type IXMLDocumentVtbl = TIXMLDocumentVtbl -type TIXMLDocument1 = struct { - FlpVtbl uintptr -} - -type IXMLDocument1 = TIXMLDocument1 - type TIXMLDocument2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79859,12 +75159,6 @@ type TIXMLDocument2Vtbl = struct { type IXMLDocument2Vtbl = TIXMLDocument2Vtbl -type TIXMLDocument21 = struct { - FlpVtbl uintptr -} - -type IXMLDocument21 = TIXMLDocument21 - type TIXMLElementVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79889,12 +75183,6 @@ type TIXMLElementVtbl = struct { type IXMLElementVtbl = TIXMLElementVtbl -type TIXMLElement1 = struct { - FlpVtbl uintptr -} - -type IXMLElement1 = TIXMLElement1 - type TIXMLElement2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79920,12 +75208,6 @@ type TIXMLElement2Vtbl = struct { type IXMLElement2Vtbl = TIXMLElement2Vtbl -type TIXMLElement21 = struct { - FlpVtbl uintptr -} - -type IXMLElement21 = TIXMLElement21 - type TIXMLAttributeVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79940,12 +75222,6 @@ type TIXMLAttributeVtbl = struct { type IXMLAttributeVtbl = TIXMLAttributeVtbl -type TIXMLAttribute1 = struct { - FlpVtbl uintptr -} - -type IXMLAttribute1 = TIXMLAttribute1 - type TIXMLErrorVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -79955,12 +75231,6 @@ type TIXMLErrorVtbl = struct { type IXMLErrorVtbl = TIXMLErrorVtbl -type TIXMLError1 = struct { - FlpVtbl uintptr -} - -type IXMLError1 = TIXMLError1 - type TLPPERSISTMONIKER = uintptr type LPPERSISTMONIKER = TLPPERSISTMONIKER @@ -79979,12 +75249,6 @@ type TIPersistMonikerVtbl = struct { type IPersistMonikerVtbl = TIPersistMonikerVtbl -type TIPersistMoniker1 = struct { - FlpVtbl uintptr -} - -type IPersistMoniker1 = TIPersistMoniker1 - type TLPMONIKERPROP = uintptr type LPMONIKERPROP = TLPMONIKERPROP @@ -80010,12 +75274,6 @@ type TIMonikerPropVtbl = struct { type IMonikerPropVtbl = TIMonikerPropVtbl -type TIMonikerProp1 = struct { - FlpVtbl uintptr -} - -type IMonikerProp1 = TIMonikerProp1 - type TLPBINDPROTOCOL = uintptr type LPBINDPROTOCOL = TLPBINDPROTOCOL @@ -80029,12 +75287,6 @@ type TIBindProtocolVtbl = struct { type IBindProtocolVtbl = TIBindProtocolVtbl -type TIBindProtocol1 = struct { - FlpVtbl uintptr -} - -type IBindProtocol1 = TIBindProtocol1 - type TLPBINDING = uintptr type LPBINDING = TLPBINDING @@ -80053,12 +75305,6 @@ type TIBindingVtbl = struct { type IBindingVtbl = TIBindingVtbl -type TIBinding1 = struct { - FlpVtbl uintptr -} - -type IBinding1 = TIBinding1 - type TLPBINDSTATUSCALLBACK = uintptr type LPBINDSTATUSCALLBACK = TLPBINDSTATUSCALLBACK @@ -80342,12 +75588,6 @@ type TIBindStatusCallbackVtbl = struct { type IBindStatusCallbackVtbl = TIBindStatusCallbackVtbl -type TIBindStatusCallback1 = struct { - FlpVtbl uintptr -} - -type IBindStatusCallback1 = TIBindStatusCallback1 - type TLPBINDSTATUSCALLBACKEX = uintptr type LPBINDSTATUSCALLBACKEX = TLPBINDSTATUSCALLBACKEX @@ -80399,12 +75639,6 @@ type TIBindStatusCallbackExVtbl = struct { type IBindStatusCallbackExVtbl = TIBindStatusCallbackExVtbl -type TIBindStatusCallbackEx1 = struct { - FlpVtbl uintptr -} - -type IBindStatusCallbackEx1 = TIBindStatusCallbackEx1 - type TLPAUTHENTICATION = uintptr type LPAUTHENTICATION = TLPAUTHENTICATION @@ -80418,12 +75652,6 @@ type TIAuthenticateVtbl = struct { type IAuthenticateVtbl = TIAuthenticateVtbl -type TIAuthenticate1 = struct { - FlpVtbl uintptr -} - -type IAuthenticate1 = TIAuthenticate1 - type TLPAUTHENTICATIONEX = uintptr type LPAUTHENTICATIONEX = TLPAUTHENTICATIONEX @@ -80459,12 +75687,6 @@ type TIAuthenticateExVtbl = struct { type IAuthenticateExVtbl = TIAuthenticateExVtbl -type TIAuthenticateEx1 = struct { - FlpVtbl uintptr -} - -type IAuthenticateEx1 = TIAuthenticateEx1 - type TLPHTTPNEGOTIATE = uintptr type LPHTTPNEGOTIATE = TLPHTTPNEGOTIATE @@ -80479,12 +75701,6 @@ type TIHttpNegotiateVtbl = struct { type IHttpNegotiateVtbl = TIHttpNegotiateVtbl -type TIHttpNegotiate1 = struct { - FlpVtbl uintptr -} - -type IHttpNegotiate1 = TIHttpNegotiate1 - type TLPHTTPNEGOTIATE2 = uintptr type LPHTTPNEGOTIATE2 = TLPHTTPNEGOTIATE2 @@ -80500,12 +75716,6 @@ type TIHttpNegotiate2Vtbl = struct { type IHttpNegotiate2Vtbl = TIHttpNegotiate2Vtbl -type TIHttpNegotiate21 = struct { - FlpVtbl uintptr -} - -type IHttpNegotiate21 = TIHttpNegotiate21 - type TLPHTTPNEGOTIATE3 = uintptr type LPHTTPNEGOTIATE3 = TLPHTTPNEGOTIATE3 @@ -80522,12 +75732,6 @@ type TIHttpNegotiate3Vtbl = struct { type IHttpNegotiate3Vtbl = TIHttpNegotiate3Vtbl -type TIHttpNegotiate31 = struct { - FlpVtbl uintptr -} - -type IHttpNegotiate31 = TIHttpNegotiate31 - type TLPWININETFILESTREAM = uintptr type LPWININETFILESTREAM = TLPWININETFILESTREAM @@ -80542,12 +75746,6 @@ type TIWinInetFileStreamVtbl = struct { type IWinInetFileStreamVtbl = TIWinInetFileStreamVtbl -type TIWinInetFileStream1 = struct { - FlpVtbl uintptr -} - -type IWinInetFileStream1 = TIWinInetFileStream1 - type TLPWINDOWFORBINDINGUI = uintptr type LPWINDOWFORBINDINGUI = TLPWINDOWFORBINDINGUI @@ -80561,12 +75759,6 @@ type TIWindowForBindingUIVtbl = struct { type IWindowForBindingUIVtbl = TIWindowForBindingUIVtbl -type TIWindowForBindingUI1 = struct { - FlpVtbl uintptr -} - -type IWindowForBindingUI1 = TIWindowForBindingUI1 - type TLPCODEINSTALL = uintptr type LPCODEINSTALL = TLPCODEINSTALL @@ -80598,12 +75790,6 @@ type TICodeInstallVtbl = struct { type ICodeInstallVtbl = TICodeInstallVtbl -type TICodeInstall1 = struct { - FlpVtbl uintptr -} - -type ICodeInstall1 = TICodeInstall1 - type TUri_PROPERTY = int32 type Uri_PROPERTY = TUri_PROPERTY @@ -80679,12 +75865,6 @@ type TIUriVtbl = struct { type IUriVtbl = TIUriVtbl -type TIUri1 = struct { - FlpVtbl uintptr -} - -type IUri1 = TIUri1 - type TIUriContainerVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80694,12 +75874,6 @@ type TIUriContainerVtbl = struct { type IUriContainerVtbl = TIUriContainerVtbl -type TIUriContainer1 = struct { - FlpVtbl uintptr -} - -type IUriContainer1 = TIUriContainer1 - type TIUriBuilderVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80731,12 +75905,6 @@ type TIUriBuilderVtbl = struct { type IUriBuilderVtbl = TIUriBuilderVtbl -type TIUriBuilder1 = struct { - FlpVtbl uintptr -} - -type IUriBuilder1 = TIUriBuilder1 - type TIUriBuilderFactoryVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80747,12 +75915,6 @@ type TIUriBuilderFactoryVtbl = struct { type IUriBuilderFactoryVtbl = TIUriBuilderFactoryVtbl -type TIUriBuilderFactory1 = struct { - FlpVtbl uintptr -} - -type IUriBuilderFactory1 = TIUriBuilderFactory1 - type TLPWININETINFO = uintptr type LPWININETINFO = TLPWININETINFO @@ -80766,12 +75928,6 @@ type TIWinInetInfoVtbl = struct { type IWinInetInfoVtbl = TIWinInetInfoVtbl -type TIWinInetInfo1 = struct { - FlpVtbl uintptr -} - -type IWinInetInfo1 = TIWinInetInfo1 - type TLPHTTPSECURITY = uintptr type LPHTTPSECURITY = TLPHTTPSECURITY @@ -80786,12 +75942,6 @@ type TIHttpSecurityVtbl = struct { type IHttpSecurityVtbl = TIHttpSecurityVtbl -type TIHttpSecurity1 = struct { - FlpVtbl uintptr -} - -type IHttpSecurity1 = TIHttpSecurity1 - type TLPWININETHTTPINFO = uintptr type LPWININETHTTPINFO = TLPWININETHTTPINFO @@ -80806,12 +75956,6 @@ type TIWinInetHttpInfoVtbl = struct { type IWinInetHttpInfoVtbl = TIWinInetHttpInfoVtbl -type TIWinInetHttpInfo1 = struct { - FlpVtbl uintptr -} - -type IWinInetHttpInfo1 = TIWinInetHttpInfo1 - type TIWinInetHttpTimeoutsVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -80821,12 +75965,6 @@ type TIWinInetHttpTimeoutsVtbl = struct { type IWinInetHttpTimeoutsVtbl = TIWinInetHttpTimeoutsVtbl -type TIWinInetHttpTimeouts1 = struct { - FlpVtbl uintptr -} - -type IWinInetHttpTimeouts1 = TIWinInetHttpTimeouts1 - type TLPWININETCACHEHINTS = uintptr type LPWININETCACHEHINTS = TLPWININETCACHEHINTS @@ -80840,12 +75978,6 @@ type TIWinInetCacheHintsVtbl = struct { type IWinInetCacheHintsVtbl = TIWinInetCacheHintsVtbl -type TIWinInetCacheHints1 = struct { - FlpVtbl uintptr -} - -type IWinInetCacheHints1 = TIWinInetCacheHints1 - type TLPWININETCACHEHINTS2 = uintptr type LPWININETCACHEHINTS2 = TLPWININETCACHEHINTS2 @@ -80860,12 +75992,6 @@ type TIWinInetCacheHints2Vtbl = struct { type IWinInetCacheHints2Vtbl = TIWinInetCacheHints2Vtbl -type TIWinInetCacheHints21 = struct { - FlpVtbl uintptr -} - -type IWinInetCacheHints21 = TIWinInetCacheHints21 - type TLPBINDHOST = uintptr type LPBINDHOST = TLPBINDHOST @@ -80881,12 +76007,6 @@ type TIBindHostVtbl = struct { type IBindHostVtbl = TIBindHostVtbl -type TIBindHost1 = struct { - FlpVtbl uintptr -} - -type IBindHost1 = TIBindHost1 - type TLPIINTERNET = uintptr type LPIINTERNET = TLPIINTERNET @@ -80899,12 +76019,6 @@ type TIInternetVtbl = struct { type IInternetVtbl = TIInternetVtbl -type TIInternet1 = struct { - FlpVtbl uintptr -} - -type IInternet1 = TIInternet1 - type TLPIINTERNETBINDINFO = uintptr type LPIINTERNETBINDINFO = TLPIINTERNETBINDINFO @@ -80949,12 +76063,6 @@ type TIInternetBindInfoVtbl = struct { type IInternetBindInfoVtbl = TIInternetBindInfoVtbl -type TIInternetBindInfo1 = struct { - FlpVtbl uintptr -} - -type IInternetBindInfo1 = TIInternetBindInfo1 - type TLPIINTERNETBINDINFOEX = uintptr type LPIINTERNETBINDINFOEX = TLPIINTERNETBINDINFOEX @@ -80970,12 +76078,6 @@ type TIInternetBindInfoExVtbl = struct { type IInternetBindInfoExVtbl = TIInternetBindInfoExVtbl -type TIInternetBindInfoEx1 = struct { - FlpVtbl uintptr -} - -type IInternetBindInfoEx1 = TIInternetBindInfoEx1 - type TLPIINTERNETPROTOCOLROOT = uintptr type LPIINTERNETPROTOCOLROOT = TLPIINTERNETPROTOCOLROOT @@ -81041,12 +76143,6 @@ type TIInternetProtocolRootVtbl = struct { type IInternetProtocolRootVtbl = TIInternetProtocolRootVtbl -type TIInternetProtocolRoot1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolRoot1 = TIInternetProtocolRoot1 - type TLPIINTERNETPROTOCOL = uintptr type LPIINTERNETPROTOCOL = TLPIINTERNETPROTOCOL @@ -81069,12 +76165,6 @@ type TIInternetProtocolVtbl = struct { type IInternetProtocolVtbl = TIInternetProtocolVtbl -type TIInternetProtocol1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocol1 = TIInternetProtocol1 - type TIInternetProtocolExVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81094,12 +76184,6 @@ type TIInternetProtocolExVtbl = struct { type IInternetProtocolExVtbl = TIInternetProtocolExVtbl -type TIInternetProtocolEx1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolEx1 = TIInternetProtocolEx1 - type TLPIINTERNETPROTOCOLSINK = uintptr type LPIINTERNETPROTOCOLSINK = TLPIINTERNETPROTOCOLSINK @@ -81116,12 +76200,6 @@ type TIInternetProtocolSinkVtbl = struct { type IInternetProtocolSinkVtbl = TIInternetProtocolSinkVtbl -type TIInternetProtocolSink1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolSink1 = TIInternetProtocolSink1 - type TLPIINTERNETPROTOCOLSINKStackable = uintptr type LPIINTERNETPROTOCOLSINKStackable = TLPIINTERNETPROTOCOLSINKStackable @@ -81137,12 +76215,6 @@ type TIInternetProtocolSinkStackableVtbl = struct { type IInternetProtocolSinkStackableVtbl = TIInternetProtocolSinkStackableVtbl -type TIInternetProtocolSinkStackable1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolSinkStackable1 = TIInternetProtocolSinkStackable1 - type TLPIINTERNETSESSION = uintptr type LPIINTERNETSESSION = TLPIINTERNETSESSION @@ -81171,12 +76243,6 @@ type TIInternetSessionVtbl = struct { type IInternetSessionVtbl = TIInternetSessionVtbl -type TIInternetSession1 = struct { - FlpVtbl uintptr -} - -type IInternetSession1 = TIInternetSession1 - type TLPIINTERNETTHREADSWITCH = uintptr type LPIINTERNETTHREADSWITCH = TLPIINTERNETTHREADSWITCH @@ -81191,12 +76257,6 @@ type TIInternetThreadSwitchVtbl = struct { type IInternetThreadSwitchVtbl = TIInternetThreadSwitchVtbl -type TIInternetThreadSwitch1 = struct { - FlpVtbl uintptr -} - -type IInternetThreadSwitch1 = TIInternetThreadSwitch1 - type TLPIINTERNETPRIORITY = uintptr type LPIINTERNETPRIORITY = TLPIINTERNETPRIORITY @@ -81211,12 +76271,6 @@ type TIInternetPriorityVtbl = struct { type IInternetPriorityVtbl = TIInternetPriorityVtbl -type TIInternetPriority1 = struct { - FlpVtbl uintptr -} - -type IInternetPriority1 = TIInternetPriority1 - type TLPIINTERNETPROTOCOLINFO = uintptr type LPIINTERNETPROTOCOLINFO = TLPIINTERNETPROTOCOLINFO @@ -81291,12 +76345,6 @@ type TIInternetProtocolInfoVtbl = struct { type IInternetProtocolInfoVtbl = TIInternetProtocolInfoVtbl -type TIInternetProtocolInfo1 = struct { - FlpVtbl uintptr -} - -type IInternetProtocolInfo1 = TIInternetProtocolInfo1 - type TINTERNETFEATURELIST = int32 type INTERNETFEATURELIST = TINTERNETFEATURELIST @@ -81343,12 +76391,6 @@ type TIInternetSecurityMgrSiteVtbl = struct { type IInternetSecurityMgrSiteVtbl = TIInternetSecurityMgrSiteVtbl -type TIInternetSecurityMgrSite1 = struct { - FlpVtbl uintptr -} - -type IInternetSecurityMgrSite1 = TIInternetSecurityMgrSite1 - type TPUAF = int32 type PUAF = TPUAF @@ -81411,12 +76453,6 @@ type TIInternetSecurityManagerVtbl = struct { type IInternetSecurityManagerVtbl = TIInternetSecurityManagerVtbl -type TIInternetSecurityManager1 = struct { - FlpVtbl uintptr -} - -type IInternetSecurityManager1 = TIInternetSecurityManager1 - type TIInternetSecurityManagerExVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81434,12 +76470,6 @@ type TIInternetSecurityManagerExVtbl = struct { type IInternetSecurityManagerExVtbl = TIInternetSecurityManagerExVtbl -type TIInternetSecurityManagerEx1 = struct { - FlpVtbl uintptr -} - -type IInternetSecurityManagerEx1 = TIInternetSecurityManagerEx1 - type TIInternetSecurityManagerEx2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81461,12 +76491,6 @@ type TIInternetSecurityManagerEx2Vtbl = struct { type IInternetSecurityManagerEx2Vtbl = TIInternetSecurityManagerEx2Vtbl -type TIInternetSecurityManagerEx21 = struct { - FlpVtbl uintptr -} - -type IInternetSecurityManagerEx21 = TIInternetSecurityManagerEx21 - type TIZoneIdentifierVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81478,12 +76502,6 @@ type TIZoneIdentifierVtbl = struct { type IZoneIdentifierVtbl = TIZoneIdentifierVtbl -type TIZoneIdentifier1 = struct { - FlpVtbl uintptr -} - -type IZoneIdentifier1 = TIZoneIdentifier1 - type TIInternetHostSecurityManagerVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81495,12 +76513,6 @@ type TIInternetHostSecurityManagerVtbl = struct { type IInternetHostSecurityManagerVtbl = TIInternetHostSecurityManagerVtbl -type TIInternetHostSecurityManager1 = struct { - FlpVtbl uintptr -} - -type IInternetHostSecurityManager1 = TIInternetHostSecurityManager1 - type TLPURLZONEMANAGER = uintptr type LPURLZONEMANAGER = TLPURLZONEMANAGER @@ -81609,12 +76621,6 @@ type TIInternetZoneManagerVtbl = struct { type IInternetZoneManagerVtbl = TIInternetZoneManagerVtbl -type TIInternetZoneManager1 = struct { - FlpVtbl uintptr -} - -type IInternetZoneManager1 = TIInternetZoneManager1 - type TIInternetZoneManagerExVtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81637,12 +76643,6 @@ type TIInternetZoneManagerExVtbl = struct { type IInternetZoneManagerExVtbl = TIInternetZoneManagerExVtbl -type TIInternetZoneManagerEx1 = struct { - FlpVtbl uintptr -} - -type IInternetZoneManagerEx1 = TIInternetZoneManagerEx1 - type TIInternetZoneManagerEx2Vtbl = struct { FQueryInterface uintptr FAddRef uintptr @@ -81669,12 +76669,6 @@ type TIInternetZoneManagerEx2Vtbl = struct { type IInternetZoneManagerEx2Vtbl = TIInternetZoneManagerEx2Vtbl -type TIInternetZoneManagerEx21 = struct { - FlpVtbl uintptr -} - -type IInternetZoneManagerEx21 = TIInternetZoneManagerEx21 - type TCODEBASEHOLD = struct { FcbSize TULONG FszDistUnit TLPWSTR @@ -81732,12 +76726,6 @@ type TISoftDistExtVtbl = struct { type ISoftDistExtVtbl = TISoftDistExtVtbl -type TISoftDistExt1 = struct { - FlpVtbl uintptr -} - -type ISoftDistExt1 = TISoftDistExt1 - type TLPCATALOGFILEINFO = uintptr type LPCATALOGFILEINFO = TLPCATALOGFILEINFO @@ -81752,12 +76740,6 @@ type TICatalogFileInfoVtbl = struct { type ICatalogFileInfoVtbl = TICatalogFileInfoVtbl -type TICatalogFileInfo1 = struct { - FlpVtbl uintptr -} - -type ICatalogFileInfo1 = TICatalogFileInfo1 - type TLPDATAFILTER = uintptr type LPDATAFILTER = TLPDATAFILTER @@ -81773,12 +76755,6 @@ type TIDataFilterVtbl = struct { type IDataFilterVtbl = TIDataFilterVtbl -type TIDataFilter1 = struct { - FlpVtbl uintptr -} - -type IDataFilter1 = TIDataFilter1 - type TPROTOCOLFILTERDATA = struct { FcbSize TDWORD FpProtocolSink uintptr @@ -81820,12 +76796,6 @@ type TIEncodingFilterFactoryVtbl = struct { type IEncodingFilterFactoryVtbl = TIEncodingFilterFactoryVtbl -type TIEncodingFilterFactory1 = struct { - FlpVtbl uintptr -} - -type IEncodingFilterFactory1 = TIEncodingFilterFactory1 - type THIT_LOGGING_INFO = struct { FdwStructSize TDWORD FlpszLoggedUrlName TLPSTR @@ -81865,12 +76835,6 @@ type TIWrappedProtocolVtbl = struct { type IWrappedProtocolVtbl = TIWrappedProtocolVtbl -type TIWrappedProtocol1 = struct { - FlpVtbl uintptr -} - -type IWrappedProtocol1 = TIWrappedProtocol1 - type TLPGETBINDHANDLE = uintptr type LPGETBINDHANDLE = TLPGETBINDHANDLE @@ -81894,12 +76858,6 @@ type TIGetBindHandleVtbl = struct { type IGetBindHandleVtbl = TIGetBindHandleVtbl -type TIGetBindHandle1 = struct { - FlpVtbl uintptr -} - -type IGetBindHandle1 = TIGetBindHandle1 - type TPROTOCOL_ARGUMENT = struct { FszMethod TLPCWSTR FszTargetUrl TLPCWSTR @@ -81928,12 +76886,6 @@ type TIBindCallbackRedirectVtbl = struct { type IBindCallbackRedirectVtbl = TIBindCallbackRedirectVtbl -type TIBindCallbackRedirect1 = struct { - FlpVtbl uintptr -} - -type IBindCallbackRedirect1 = TIBindCallbackRedirect1 - type TIPropertyStorage = struct { FlpVtbl uintptr } @@ -82306,12 +77258,6 @@ type TIPropertyStorageVtbl = struct { type IPropertyStorageVtbl = TIPropertyStorageVtbl -type TIPropertyStorage1 = struct { - FlpVtbl uintptr -} - -type IPropertyStorage1 = TIPropertyStorage1 - type TLPPROPERTYSETSTORAGE = uintptr type LPPROPERTYSETSTORAGE = TLPPROPERTYSETSTORAGE @@ -82328,12 +77274,6 @@ type TIPropertySetStorageVtbl = struct { type IPropertySetStorageVtbl = TIPropertySetStorageVtbl -type TIPropertySetStorage1 = struct { - FlpVtbl uintptr -} - -type IPropertySetStorage1 = TIPropertySetStorage1 - type TLPENUMSTATPROPSTG = uintptr type LPENUMSTATPROPSTG = TLPENUMSTATPROPSTG @@ -82350,12 +77290,6 @@ type TIEnumSTATPROPSTGVtbl = struct { type IEnumSTATPROPSTGVtbl = TIEnumSTATPROPSTGVtbl -type TIEnumSTATPROPSTG1 = struct { - FlpVtbl uintptr -} - -type IEnumSTATPROPSTG1 = TIEnumSTATPROPSTG1 - type TLPENUMSTATPROPSETSTG = uintptr type LPENUMSTATPROPSETSTG = TLPENUMSTATPROPSETSTG @@ -82372,12 +77306,6 @@ type TIEnumSTATPROPSETSTGVtbl = struct { type IEnumSTATPROPSETSTGVtbl = TIEnumSTATPROPSETSTGVtbl -type TIEnumSTATPROPSETSTG1 = struct { - FlpVtbl uintptr -} - -type IEnumSTATPROPSETSTG1 = TIEnumSTATPROPSETSTG1 - type TLPPROPERTYSTORAGE = uintptr type LPPROPERTYSTORAGE = TLPPROPERTYSTORAGE @@ -82791,16 +77719,6 @@ type TPSTORAGE_BREAK_RESERVATION_REQUEST = uintptr type PSTORAGE_BREAK_RESERVATION_REQUEST = TPSTORAGE_BREAK_RESERVATION_REQUEST -type TSTORAGE_BREAK_RESERVATION_REQUEST1 = struct { - FLength TDWORD - F_unused TBYTE - FPathId TBYTE - FTargetId TBYTE - FLun TBYTE -} - -type STORAGE_BREAK_RESERVATION_REQUEST1 = TSTORAGE_BREAK_RESERVATION_REQUEST1 - type TPREVENT_MEDIA_REMOVAL = struct { FPreventMediaRemoval TBOOLEAN } @@ -84421,20 +79339,6 @@ type TPRETRIEVAL_POINTERS_BUFFER = uintptr type PRETRIEVAL_POINTERS_BUFFER = TPRETRIEVAL_POINTERS_BUFFER -type TRETRIEVAL_POINTERS_BUFFER1 = struct { - F__ccgo_align [0]uint32 - FExtentCount TDWORD - F__ccgo_align1 [4]byte - FStartingVcn TLARGE_INTEGER - FExtents [1]struct { - F__ccgo_align [0]uint32 - FNextVcn TLARGE_INTEGER - FLcn TLARGE_INTEGER - } -} - -type RETRIEVAL_POINTERS_BUFFER1 = TRETRIEVAL_POINTERS_BUFFER1 - type TNTFS_FILE_RECORD_INPUT_BUFFER = struct { F__ccgo_align [0]uint32 FFileReferenceNumber TLARGE_INTEGER @@ -90932,17 +85836,6 @@ type TIPrintDialogCallbackVtbl = struct { type IPrintDialogCallbackVtbl = TIPrintDialogCallbackVtbl -type TIPrintDialogCallbackVtbl1 = struct { - FQueryInterface uintptr - FAddRef uintptr - FRelease uintptr - FInitDone uintptr - FSelectionChange uintptr - FHandleMessage uintptr -} - -type IPrintDialogCallbackVtbl1 = TIPrintDialogCallbackVtbl1 - type TIPrintDialogServices = struct { FlpVtbl uintptr } @@ -90960,17 +85853,6 @@ type TIPrintDialogServicesVtbl = struct { type IPrintDialogServicesVtbl = TIPrintDialogServicesVtbl -type TIPrintDialogServicesVtbl1 = struct { - FQueryInterface uintptr - FAddRef uintptr - FRelease uintptr - FGetCurrentDevMode uintptr - FGetCurrentPrinterName uintptr - FGetCurrentPortName uintptr -} - -type IPrintDialogServicesVtbl1 = TIPrintDialogServicesVtbl1 - type TPRINTPAGERANGE = struct { FnFromPage TDWORD FnToPage TDWORD @@ -92400,6 +87282,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { return _mem0.Fmutex } +type t__ccgo_fp__Xsqlite3_memory_alarm_0 = func(*libc.TLS, uintptr, int64, int32) + // C documentation // // /* @@ -92407,8 +87291,8 @@ func _sqlite3MallocMutex(tls *libc.TLS) (r uintptr) { // ** that was invoked when memory usage grew too large. Now it is a // ** no-op. // */ -func Xsqlite3_memory_alarm(tls *libc.TLS, xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { - _ = xCallback +func Xsqlite3_memory_alarm(tls *libc.TLS, __ccgo_fp_xCallback uintptr, pArg uintptr, iThreshold Tsqlite3_int64) (r int32) { + _ = __ccgo_fp_xCallback _ = pArg _ = iThreshold return SQLITE_OK @@ -95788,17 +90672,6 @@ type T_tls_callback_type = uintptr type _tls_callback_type = T_tls_callback_type -/* A running thread */ -type TSQLiteThread1 = struct { - Ftid uintptr - Fid uint32 - FxTask uintptr - FpIn uintptr - FpResult uintptr -} - -type SQLiteThread1 = TSQLiteThread1 - // C documentation // // /* Thread procedure Win32 compatibility shim */ @@ -95814,7 +90687,7 @@ func _sqlite3ThreadProc(tls *libc.TLS, pArg uintptr) (r uint32) { // C documentation // // /* Create a new thread */ -func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn uintptr) (r int32) { +func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { var p uintptr _ = p *(*uintptr)(unsafe.Pointer(ppThread)) = uintptr(0) @@ -95830,7 +90703,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui if int32(_sqlite3Config.FbCoreMutex) == 0 || _sqlite3FaultSim(tls, int32(200)) != 0 { libc.Xmemset(tls, p, 0, uint32(20)) } else { - (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = xTask + (*TSQLiteThread)(unsafe.Pointer(p)).FxTask = __ccgo_fp_xTask (*TSQLiteThread)(unsafe.Pointer(p)).FpIn = pIn (*TSQLiteThread)(unsafe.Pointer(p)).Ftid = uintptr(libc.X_beginthreadex(tls, uintptr(0), uint32(0), __ccgo_fp(_sqlite3ThreadProc), p, uint32(0), p+4)) if (*TSQLiteThread)(unsafe.Pointer(p)).Ftid == uintptr(0) { @@ -95839,7 +90712,7 @@ func _sqlite3ThreadCreate(tls *libc.TLS, ppThread uintptr, xTask uintptr, pIn ui } if (*TSQLiteThread)(unsafe.Pointer(p)).FxTask == uintptr(0) { (*TSQLiteThread)(unsafe.Pointer(p)).Fid = uint32(libc.XGetCurrentThreadId(tls)) - (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{xTask})))(tls, pIn) + (*TSQLiteThread)(unsafe.Pointer(p)).FpResult = (*(*func(*libc.TLS, uintptr) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xTask})))(tls, pIn) } *(*uintptr)(unsafe.Pointer(ppThread)) = p return SQLITE_OK @@ -99574,27 +94447,6 @@ type TwinFile = struct { type winFile = TwinFile -type TwinFile1 = struct { - F__ccgo_align [0]uint32 - FpMethod uintptr - FpVfs uintptr - Fh THANDLE - Flocktype Tu8 - FsharedLockByte int16 - FctrlFlags Tu8 - FlastErrno TDWORD - FpShm uintptr - FzPath uintptr - FszChunk int32 - FnFetchOut int32 - FhMap THANDLE - FpMapRegion uintptr - FmmapSize Tsqlite3_int64 - FmmapSizeMax Tsqlite3_int64 -} - -type winFile1 = TwinFile1 - // C documentation // // /* @@ -99609,14 +94461,6 @@ type TwinVfsAppData = struct { type winVfsAppData = TwinVfsAppData -type TwinVfsAppData1 = struct { - FpMethod uintptr - FpAppData uintptr - FbNoLock TBOOL -} - -type winVfsAppData1 = TwinVfsAppData1 - /* ** Allowed values for winFile.ctrlFlags */ @@ -100024,7 +94868,7 @@ func init() { // ** system call pointer, or SQLITE_NOTFOUND if there is no configurable // ** system call named zName. // */ -func _winSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc Tsqlite3_syscall_ptr) (r int32) { +func _winSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, __ccgo_fp_pNewFunc Tsqlite3_syscall_ptr) (r int32) { var i uint32 var rc int32 _, _ = i, rc @@ -100062,10 +94906,10 @@ func _winSetSystemCall(tls *libc.TLS, pNotUsed uintptr, zName uintptr, pNewFunc _aSyscall[i].FpDefault = _aSyscall[i].FpCurrent } rc = SQLITE_OK - if pNewFunc == uintptr(0) { - pNewFunc = _aSyscall[i].FpDefault + if __ccgo_fp_pNewFunc == uintptr(0) { + __ccgo_fp_pNewFunc = _aSyscall[i].FpDefault } - _aSyscall[i].FpCurrent = pNewFunc + _aSyscall[i].FpCurrent = __ccgo_fp_pNewFunc break } goto _2 @@ -100872,7 +95716,7 @@ func _winSeekFile(tls *libc.TLS, pFile uintptr, iOffset Tsqlite3_int64) (r int32 rc = _winHandleSeek(tls, (*TwinFile)(unsafe.Pointer(pFile)).Fh, iOffset) if rc != SQLITE_OK { (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls) - _winLogErrorAtLine(tls, rc, (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+4933, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(49990)) + _winLogErrorAtLine(tls, rc, (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+4933, (*TwinFile)(unsafe.Pointer(pFile)).FzPath, int32(49992)) } return rc } @@ -100920,7 +95764,7 @@ func _winClose(tls *libc.TLS, id uintptr) (r int32) { if rc != 0 { v5 = SQLITE_OK } else { - v5 = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(16)< 0 { @@ -101185,7 +96029,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, uint32(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) { @@ -101750,49 +96594,6 @@ func _winShmLeaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _winBigLock) } -/* -** Object used to represent a single file opened and mmapped to provide -** shared memory. When multiple threads all reference the same -** log-summary, each thread has its own winFile object, but they all -** point to a single instance of this object. In other words, each -** log-summary is opened only once per process. -** -** winShmMutexHeld() must be true when creating or destroying -** this object or while reading or writing the following fields: -** -** nRef -** pNext -** -** The following fields are read-only after the object is created: -** -** zFilename -** -** Either winShmNode.mutex must be held or winShmNode.nRef==0 and -** winShmMutexHeld() is true when reading or writing any other field -** in this structure. -** -** File-handle hSharedShm is used to (a) take the DMS lock, (b) truncate -** the *-shm file if the DMS-locking protocol demands it, and (c) map -** regions of the *-shm file into memory using MapViewOfFile() or -** similar. Other locks are taken by individual clients using the -** winShm.hShm handles. - */ -type TwinShmNode1 = struct { - Fmutex uintptr - FzFilename uintptr - FhSharedShm THANDLE - FisUnlocked int32 - FisReadonly int32 - FszRegion int32 - FnRegion int32 - FaRegion uintptr - FlastErrno TDWORD - FnRef int32 - FpNext uintptr -} - -type winShmNode1 = TwinShmNode1 - // C documentation // // /* @@ -101802,21 +96603,6 @@ type winShmNode1 = TwinShmNode1 // */ var _winShmNodeList = uintptr(0) -/* -** Structure used internally by this VFS to record the state of an -** open shared memory connection. There is one such structure for each -** winFile open on a wal mode database. - */ -type TwinShm1 = struct { - FpShmNode uintptr - FsharedMask Tu16 - FexclMask Tu16 - FhShm THANDLE - FbReadonly int32 -} - -type winShm1 = TwinShm1 - // C documentation // // /* @@ -102004,7 +96790,7 @@ func _winHandleOpen(tls *libc.TLS, zUtf8 uintptr, pbReadonly uintptr, ph uintptr *(*int32)(unsafe.Pointer(bp)) = int32(1) rc = _winHandleOpen(tls, zUtf8, bp, bp+4) } else { - rc = _sqlite3CantopenError(tls, int32(51497)) + rc = _sqlite3CantopenError(tls, int32(51499)) } } goto winopenfile_out @@ -102050,7 +96836,7 @@ func _winOpenSharedMemory(tls *libc.TLS, pDbFd uintptr) (r int32) { /* Open a file-handle on the *-shm file for this connection. This file-handle ** is only used for locking. The mapping of the *-shm file is created using ** the shared file handle in winShmNode.hSharedShm. */ - (*TwinShm1)(unsafe.Pointer(p)).FbReadonly = Xsqlite3_uri_boolean(tls, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, __ccgo_ts+5073, 0) + (*TwinShm)(unsafe.Pointer(p)).FbReadonly = Xsqlite3_uri_boolean(tls, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, __ccgo_ts+5073, 0) rc = _winHandleOpen(tls, (*TwinShmNode)(unsafe.Pointer(pNew)).FzFilename, p+12, p+8) /* Look to see if there is an existing winShmNode that can be used. ** If no matching winShmNode currently exists, then create a new one. */ @@ -102082,7 +96868,7 @@ func _winOpenSharedMemory(tls *libc.TLS, pDbFd uintptr) (r int32) { /* Open a file-handle to use for mappings, and for the DMS lock. */ if rc == SQLITE_OK { *(*THANDLE)(unsafe.Pointer(bp)) = uintptr(int32(-libc.Int32FromInt32(1))) - (*TwinShmNode)(unsafe.Pointer(pShmNode)).FisReadonly = (*TwinShm1)(unsafe.Pointer(p)).FbReadonly + (*TwinShmNode)(unsafe.Pointer(pShmNode)).FisReadonly = (*TwinShm)(unsafe.Pointer(p)).FbReadonly rc = _winHandleOpen(tls, (*TwinShmNode)(unsafe.Pointer(pNew)).FzFilename, pShmNode+16, bp) (*TwinShmNode)(unsafe.Pointer(pShmNode)).FhSharedShm = *(*THANDLE)(unsafe.Pointer(bp)) } @@ -102102,12 +96888,12 @@ func _winOpenSharedMemory(tls *libc.TLS, pDbFd uintptr) (r int32) { /* If no error has occurred, link the winShm object to the winShmNode and ** the winShm to pDbFd. */ if rc == SQLITE_OK { - (*TwinShm1)(unsafe.Pointer(p)).FpShmNode = pShmNode + (*TwinShm)(unsafe.Pointer(p)).FpShmNode = pShmNode (*TwinShmNode)(unsafe.Pointer(pShmNode)).FnRef++ (*TwinFile)(unsafe.Pointer(pDbFd)).FpShm = p } else { if p != 0 { - _winHandleClose(tls, (*TwinShm1)(unsafe.Pointer(p)).FhShm) + _winHandleClose(tls, (*TwinShm)(unsafe.Pointer(p)).FhShm) Xsqlite3_free(tls, p) } } @@ -102296,7 +97082,7 @@ func _winShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, isWrit */ rc = _winHandleSize(tls, hShared, bp) if rc != SQLITE_OK { - rc = _winLogErrorAtLine(tls, rc, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+5086, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, int32(51823)) + rc = _winLogErrorAtLine(tls, rc, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+5086, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, int32(51825)) goto shmpage_out } if *(*Tsqlite3_int64)(unsafe.Pointer(bp)) < int64(nByte) { @@ -102310,7 +97096,7 @@ func _winShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, isWrit } rc = _winHandleTruncate(tls, hShared, int64(nByte)) if rc != SQLITE_OK { - rc = _winLogErrorAtLine(tls, rc, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+5097, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, int32(51836)) + rc = _winLogErrorAtLine(tls, rc, (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls), __ccgo_ts+5097, (*TwinFile)(unsafe.Pointer(pDbFd)).FzPath, int32(51838)) goto shmpage_out } } @@ -102336,7 +97122,7 @@ func _winShmMap(tls *libc.TLS, fd uintptr, iRegion int32, szRegion int32, isWrit } if !(pMap != 0) { (*TwinShmNode)(unsafe.Pointer(pShmNode)).FlastErrno = (*(*func(*libc.TLS) TDWORD)(unsafe.Pointer(&struct{ uintptr }{_aSyscall[int32(26)].FpCurrent})))(tls) - rc = _winLogErrorAtLine(tls, libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(21)<>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+5179, uintptr(0), int32(52321)) + return _winLogErrorAtLine(tls, int32(SQLITE_ERROR), uint32(0), __ccgo_ts+5179, uintptr(0), int32(52323)) } Xsqlite3_snprintf(tls, int32(nMax), zBuf, __ccgo_ts+4829, libc.VaList(bp+8, Xsqlite3_temp_directory)) } @@ -102729,7 +97515,7 @@ 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(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+5243, uintptr(0), int32(52458)) + return _winLogErrorAtLine(tls, int32(SQLITE_ERROR), uint32(0), __ccgo_ts+5243, uintptr(0), int32(52460)) } Xsqlite3_snprintf(tls, int32(nBuf-int64(16)-nLen), zBuf+uintptr(nLen), __ccgo_ts+5171, 0) j = uint32(_sqlite3Strlen30(tls, zBuf)) @@ -102990,7 +97776,7 @@ func _winOpen(tls *libc.TLS, pVfs uintptr, zName uintptr, id uintptr, flags int3 } } } - _winLogIoerr(tls, *(*int32)(unsafe.Pointer(bp + 4)), int32(52757)) + _winLogIoerr(tls, *(*int32)(unsafe.Pointer(bp + 4)), int32(52759)) if h == uintptr(int32(-libc.Int32FromInt32(1))) { Xsqlite3_free(tls, zConverted) Xsqlite3_free(tls, *(*uintptr)(unsafe.Pointer(bp + 12))) @@ -102998,8 +97784,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+5269, zUtf8Name, int32(52772)) - return _sqlite3CantopenError(tls, int32(52773)) + _winLogErrorAtLine(tls, int32(SQLITE_CANTOPEN), (*TwinFile)(unsafe.Pointer(pFile)).FlastErrno, __ccgo_ts+5269, zUtf8Name, int32(52774)) + return _sqlite3CantopenError(tls, int32(52775)) } } if pOutFlags != 0 { @@ -103120,9 +97906,9 @@ func _winDelete(tls *libc.TLS, pVfs uintptr, zFilename uintptr, syncDir int32) ( } } if rc != 0 && rc != libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(23)<BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is -** a hash table that will hold up to BITVEC_MXHASH distinct values. -** -** Otherwise, the value i is redirected into one of BITVEC_NPTR -** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap -** handles up to iDivisor separate values of i. apSub[0] holds -** values between 1 and iDivisor. apSub[1] holds values between -** iDivisor+1 and 2*iDivisor. apSub[N] holds values between -** N*iDivisor+1 and (N+1)*iDivisor. Each subbitmap is normalized -** to hold deal with values between 1 and iDivisor. - */ -type TBitvec1 = struct { - FiSize Tu32 - FnSet Tu32 - FiDivisor Tu32 - Fu struct { - FaHash [0][125]Tu32 - FapSub [0][125]uintptr - FaBitmap [500]Tu8 - } -} - -type Bitvec1 = TBitvec1 - // C documentation // // /* @@ -105245,68 +99861,6 @@ bitvec_end: return rc } -/************** End of bitvec.c **********************************************/ -/************** Begin file pcache.c ******************************************/ -/* -** 2008 August 05 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file implements that page cache. - */ -/* #include "sqliteInt.h" */ - -/* -** A complete page cache is an instance of this structure. Every -** entry in the cache holds a single page of the database file. The -** btree layer only operates on the cached copy of the database pages. -** -** A page cache entry is "clean" if it exactly matches what is currently -** on disk. A page is "dirty" if it has been modified and needs to be -** persisted to disk. -** -** pDirty, pDirtyTail, pSynced: -** All dirty pages are linked into the doubly linked list using -** PgHdr.pDirtyNext and pDirtyPrev. The list is maintained in LRU order -** such that p was added to the list more recently than p->pDirtyNext. -** PCache.pDirty points to the first (newest) element in the list and -** pDirtyTail to the last (oldest). -** -** The PCache.pSynced variable is used to optimize searching for a dirty -** page to eject from the cache mid-transaction. It is better to eject -** a page that does not require a journal sync than one that does. -** Therefore, pSynced is maintained so that it *almost* always points -** to either the oldest page in the pDirty/pDirtyTail list that has a -** clear PGHDR_NEED_SYNC flag or to a page that is older than this one -** (so that the right page to eject can be found by following pDirtyPrev -** pointers). - */ -type TPCache2 = struct { - F__ccgo_align [0]uint32 - FpDirty uintptr - FpDirtyTail uintptr - FpSynced uintptr - F__ccgo_align3 [4]byte - FnRefSum Ti64 - FszCache int32 - FszSpill int32 - FszPage int32 - FszExtra int32 - FbPurgeable Tu8 - FeCreate Tu8 - FxStress uintptr - FpStress uintptr - FpCache uintptr -} - -type PCache2 = TPCache2 - /********************************** Test and Debug Logic **********************/ /* ** Debug tracing macros. Enable by by changing the "0" to "1" and @@ -105480,14 +100034,14 @@ func _sqlite3PcacheSize(tls *libc.TLS) (r int32) { // ** to this module, the extra space really ends up being the MemPage // ** structure in the pager. // */ -func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, xStress uintptr, pStress uintptr, p uintptr) (r int32) { +func _sqlite3PcacheOpen(tls *libc.TLS, szPage int32, szExtra int32, bPurgeable int32, __ccgo_fp_xStress uintptr, pStress uintptr, p uintptr) (r int32) { libc.Xmemset(tls, p, 0, uint32(56)) (*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)).FeCreate = uint8(2) - (*TPCache)(unsafe.Pointer(p)).FxStress = xStress + (*TPCache)(unsafe.Pointer(p)).FxStress = __ccgo_fp_xStress (*TPCache)(unsafe.Pointer(p)).FpStress = pStress (*TPCache)(unsafe.Pointer(p)).FszCache = int32(100) (*TPCache)(unsafe.Pointer(p)).FszSpill = int32(1) @@ -106303,123 +100857,6 @@ type TPGroup = struct { type PGroup = TPGroup -/* -** Each cache entry is represented by an instance of the following -** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated -** directly before this structure and is used to cache the page content. -** -** When reading a corrupt database file, it is possible that SQLite might -** read a few bytes (no more than 16 bytes) past the end of the page buffer. -** It will only read past the end of the page buffer, never write. This -** object is positioned immediately after the page buffer to serve as an -** overrun area, so that overreads are harmless. -** -** Variables isBulkLocal and isAnchor were once type "u8". That works, -** but causes a 2-byte gap in the structure for most architectures (since -** pointers must be either 4 or 8-byte aligned). As this structure is located -** in memory directly after the associated page data, if the database is -** corrupt, code at the b-tree layer may overread the page buffer and -** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the uninitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of uninitialized -** memory in the structure. -** -** The pLruNext and pLruPrev pointers form a double-linked circular list -** of all pages that are unpinned. The PGroup.lru element (which should be -** the only element on the list with PgHdr1.isAnchor set to 1) forms the -** beginning and the end of the list. - */ -type TPgHdr11 = struct { - Fpage Tsqlite3_pcache_page - FiKey uint32 - FisBulkLocal Tu16 - FisAnchor Tu16 - FpNext uintptr - FpCache uintptr - FpLruNext uintptr - FpLruPrev uintptr -} - -type PgHdr11 = TPgHdr11 - -/* -** A page is pinned if it is not on the LRU list. To be "pinned" means -** that the page is in active use and must not be deallocated. - */ - -/* Each page cache (or PCache) belongs to a PGroup. A PGroup is a set -** of one or more PCaches that are able to recycle each other's unpinned -** pages when they are under memory pressure. A PGroup is an instance of -** the following object. -** -** This page cache implementation works in one of two modes: -** -** (1) Every PCache is the sole member of its own PGroup. There is -** one PGroup per PCache. -** -** (2) There is a single global PGroup that all PCaches are a member -** of. -** -** Mode 1 uses more memory (since PCache instances are not able to rob -** unused pages from other PCaches) but it also operates without a mutex, -** and is therefore often faster. Mode 2 requires a mutex in order to be -** threadsafe, but recycles pages more efficiently. -** -** For mode (1), PGroup.mutex is NULL. For mode (2) there is only a single -** PGroup which is the pcache1.grp global variable and its mutex is -** SQLITE_MUTEX_STATIC_LRU. - */ -type TPGroup1 = struct { - Fmutex uintptr - FnMaxPage uint32 - FnMinPage uint32 - FmxPinned uint32 - FnPurgeable uint32 - Flru TPgHdr1 -} - -type PGroup1 = TPGroup1 - -/* Each page cache is an instance of the following object. Every -** open database file (including each in-memory database and each -** temporary or transient database) has a single page cache which -** is an instance of this object. -** -** Pointers to structures of this type are cast and returned as -** opaque sqlite3_pcache* handles. - */ -type TPCache11 = struct { - FpGroup uintptr - FpnPurgeable uintptr - FszPage int32 - FszExtra int32 - FszAlloc int32 - FbPurgeable int32 - FnMin uint32 - FnMax uint32 - Fn90pct uint32 - FiMaxKey uint32 - FnPurgeableDummy uint32 - FnRecyclable uint32 - FnPage uint32 - FnHash uint32 - FapHash uintptr - FpFree uintptr - FpBulk uintptr -} - -type PCache11 = TPCache11 - -/* -** Free slots in the allocator used to divide up the global page cache -** buffer provided using the SQLITE_CONFIG_PAGECACHE mechanism. - */ -type TPgFreeslot1 = struct { - FpNext uintptr -} - -type PgFreeslot1 = TPgFreeslot1 - // C documentation // // /* @@ -107619,25 +102056,6 @@ type TRowSetChunk = struct { type RowSetChunk = TRowSetChunk -/* -** A RowSet in an instance of the following structure. -** -** A typedef of this structure if found in sqliteInt.h. - */ -type TRowSet1 = struct { - FpChunk uintptr - Fdb uintptr - FpEntry uintptr - FpLast uintptr - FpFresh uintptr - FpForest uintptr - FnFresh Tu16 - FrsFlags Tu16 - FiBatch int32 -} - -type RowSet1 = TRowSet1 - /* ** Allowed values for RowSet.rsFlags */ @@ -108602,262 +103020,6 @@ type TPagerSavepoint = struct { type PagerSavepoint = TPagerSavepoint -type TPagerSavepoint1 = struct { - F__ccgo_align [0]uint32 - FiOffset Ti64 - FiHdrOffset Ti64 - FpInSavepoint uintptr - FnOrig TPgno - FiSubRec TPgno - FbTruncateOnRelease int32 - FaWalData [4]Tu32 -} - -type PagerSavepoint1 = TPagerSavepoint1 - -/* -** Bits of the Pager.doNotSpill flag. See further description below. - */ - -/* -** An open page cache is an instance of struct Pager. A description of -** some of the more important member variables follows: -** -** eState -** -** The current 'state' of the pager object. See the comment and state -** diagram above for a description of the pager state. -** -** eLock -** -** For a real on-disk database, the current lock held on the database file - -** NO_LOCK, SHARED_LOCK, RESERVED_LOCK or EXCLUSIVE_LOCK. -** -** For a temporary or in-memory database (neither of which require any -** locks), this variable is always set to EXCLUSIVE_LOCK. Since such -** databases always have Pager.exclusiveMode==1, this tricks the pager -** logic into thinking that it already has all the locks it will ever -** need (and no reason to release them). -** -** In some (obscure) circumstances, this variable may also be set to -** UNKNOWN_LOCK. See the comment above the #define of UNKNOWN_LOCK for -** details. -** -** changeCountDone -** -** This boolean variable is used to make sure that the change-counter -** (the 4-byte header field at byte offset 24 of the database file) is -** not updated more often than necessary. -** -** It is set to true when the change-counter field is updated, which -** can only happen if an exclusive lock is held on the database file. -** It is cleared (set to false) whenever an exclusive lock is -** relinquished on the database file. Each time a transaction is committed, -** The changeCountDone flag is inspected. If it is true, the work of -** updating the change-counter is omitted for the current transaction. -** -** This mechanism means that when running in exclusive mode, a connection -** need only update the change-counter once, for the first transaction -** committed. -** -** setSuper -** -** When PagerCommitPhaseOne() is called to commit a transaction, it may -** (or may not) specify a super-journal name to be written into the -** journal file before it is synced to disk. -** -** Whether or not a journal file contains a super-journal pointer affects -** the way in which the journal file is finalized after the transaction is -** committed or rolled back when running in "journal_mode=PERSIST" mode. -** If a journal file does not contain a super-journal pointer, it is -** finalized by overwriting the first journal header with zeroes. If -** it does contain a super-journal pointer the journal file is finalized -** by truncating it to zero bytes, just as if the connection were -** running in "journal_mode=truncate" mode. -** -** Journal files that contain super-journal pointers cannot be finalized -** simply by overwriting the first journal-header with zeroes, as the -** super-journal pointer could interfere with hot-journal rollback of any -** subsequently interrupted transaction that reuses the journal file. -** -** The flag is cleared as soon as the journal file is finalized (either -** by PagerCommitPhaseTwo or PagerRollback). If an IO error prevents the -** journal file from being successfully finalized, the setSuper flag -** is cleared anyway (and the pager will move to ERROR state). -** -** doNotSpill -** -** This variables control the behavior of cache-spills (calls made by -** the pcache module to the pagerStress() routine to write cached data -** to the file-system in order to free up memory). -** -** When bits SPILLFLAG_OFF or SPILLFLAG_ROLLBACK of doNotSpill are set, -** writing to the database from pagerStress() is disabled altogether. -** The SPILLFLAG_ROLLBACK case is done in a very obscure case that -** comes up during savepoint rollback that requires the pcache module -** to allocate a new page to prevent the journal file from being written -** while it is being traversed by code in pager_playback(). The SPILLFLAG_OFF -** case is a user preference. -** -** If the SPILLFLAG_NOSYNC bit is set, writing to the database from -** pagerStress() is permitted, but syncing the journal file is not. -** This flag is set by sqlite3PagerWrite() when the file-system sector-size -** is larger than the database page-size in order to prevent a journal sync -** from happening in between the journalling of two pages on the same sector. -** -** subjInMemory -** -** This is a boolean variable. If true, then any required sub-journal -** is opened as an in-memory journal file. If false, then in-memory -** sub-journals are only used for in-memory pager files. -** -** This variable is updated by the upper layer each time a new -** write-transaction is opened. -** -** dbSize, dbOrigSize, dbFileSize -** -** Variable dbSize is set to the number of pages in the database file. -** It is valid in PAGER_READER and higher states (all states except for -** OPEN and ERROR). -** -** dbSize is set based on the size of the database file, which may be -** larger than the size of the database (the value stored at offset -** 28 of the database header by the btree). If the size of the file -** is not an integer multiple of the page-size, the value stored in -** dbSize is rounded down (i.e. a 5KB file with 2K page-size has dbSize==2). -** Except, any file that is greater than 0 bytes in size is considered -** to have at least one page. (i.e. a 1KB file with 2K page-size leads -** to dbSize==1). -** -** During a write-transaction, if pages with page-numbers greater than -** dbSize are modified in the cache, dbSize is updated accordingly. -** Similarly, if the database is truncated using PagerTruncateImage(), -** dbSize is updated. -** -** Variables dbOrigSize and dbFileSize are valid in states -** PAGER_WRITER_LOCKED and higher. dbOrigSize is a copy of the dbSize -** variable at the start of the transaction. It is used during rollback, -** and to determine whether or not pages need to be journalled before -** being modified. -** -** Throughout a write-transaction, dbFileSize contains the size of -** the file on disk in pages. It is set to a copy of dbSize when the -** write-transaction is first opened, and updated when VFS calls are made -** to write or truncate the database file on disk. -** -** The only reason the dbFileSize variable is required is to suppress -** unnecessary calls to xTruncate() after committing a transaction. If, -** when a transaction is committed, the dbFileSize variable indicates -** that the database file is larger than the database image (Pager.dbSize), -** pager_truncate() is called. The pager_truncate() call uses xFilesize() -** to measure the database file on disk, and then truncates it if required. -** dbFileSize is not used when rolling back a transaction. In this case -** pager_truncate() is called unconditionally (which means there may be -** a call to xFilesize() that is not strictly required). In either case, -** pager_truncate() may cause the file to become smaller or larger. -** -** dbHintSize -** -** The dbHintSize variable is used to limit the number of calls made to -** the VFS xFileControl(FCNTL_SIZE_HINT) method. -** -** dbHintSize is set to a copy of the dbSize variable when a -** write-transaction is opened (at the same time as dbFileSize and -** dbOrigSize). If the xFileControl(FCNTL_SIZE_HINT) method is called, -** dbHintSize is increased to the number of pages that correspond to the -** size-hint passed to the method call. See pager_write_pagelist() for -** details. -** -** errCode -** -** The Pager.errCode variable is only ever used in PAGER_ERROR state. It -** is set to zero in all other states. In PAGER_ERROR state, Pager.errCode -** is always set to SQLITE_FULL, SQLITE_IOERR or one of the SQLITE_IOERR_XXX -** sub-codes. -** -** syncFlags, walSyncFlags -** -** syncFlags is either SQLITE_SYNC_NORMAL (0x02) or SQLITE_SYNC_FULL (0x03). -** syncFlags is used for rollback mode. walSyncFlags is used for WAL mode -** and contains the flags used to sync the checkpoint operations in the -** lower two bits, and sync flags used for transaction commits in the WAL -** file in bits 0x04 and 0x08. In other words, to get the correct sync flags -** for checkpoint operations, use (walSyncFlags&0x03) and to get the correct -** sync flags for transaction commit, use ((walSyncFlags>>2)&0x03). Note -** that with synchronous=NORMAL in WAL mode, transaction commit is not synced -** meaning that the 0x04 and 0x08 bits are both zero. - */ -type TPager1 = struct { - F__ccgo_align [0]uint32 - FpVfs uintptr - FexclusiveMode Tu8 - FjournalMode Tu8 - FuseJournal Tu8 - FnoSync Tu8 - FfullSync Tu8 - FextraSync Tu8 - FsyncFlags Tu8 - FwalSyncFlags Tu8 - FtempFile Tu8 - FnoLock Tu8 - FreadOnly Tu8 - FmemDb Tu8 - FmemVfs Tu8 - FeState Tu8 - FeLock Tu8 - FchangeCountDone Tu8 - FsetSuper Tu8 - FdoNotSpill Tu8 - FsubjInMemory Tu8 - FbUseFetch Tu8 - FhasHeldSharedLock Tu8 - FdbSize TPgno - FdbOrigSize TPgno - FdbFileSize TPgno - FdbHintSize TPgno - FerrCode int32 - FnRec int32 - FcksumInit Tu32 - FnSubRec Tu32 - FpInJournal uintptr - Ffd uintptr - Fjfd uintptr - Fsjfd uintptr - F__ccgo_align34 [4]byte - FjournalOff Ti64 - FjournalHdr Ti64 - FpBackup uintptr - FaSavepoint uintptr - FnSavepoint int32 - FiDataVersion Tu32 - FdbFileVers [16]int8 - FnMmapOut int32 - F__ccgo_align42 [4]byte - FszMmap Tsqlite3_int64 - FpMmapFreelist uintptr - FnExtra Tu16 - FnReserve Ti16 - FvfsFlags Tu32 - FsectorSize Tu32 - FmxPgno TPgno - FlckPgno TPgno - FpageSize Ti64 - FjournalSizeLimit Ti64 - FzFilename uintptr - FzJournal uintptr - FxBusyHandler uintptr - FpBusyHandlerArg uintptr - FaStat [4]Tu32 - FxReiniter uintptr - FxGet uintptr - FpTmpSpace uintptr - FpPCache uintptr - FpWal uintptr - FzWal uintptr -} - -type Pager1 = TPager1 - /* ** Indexes for use with Pager.aStat[]. The Pager.aStat[] array contains ** the values accessed by passing SQLITE_DBSTATUS_CACHE_HIT, CACHE_MISS @@ -108956,7 +103118,7 @@ func _sqlite3PagerDirectReadOk(tls *libc.TLS, pPager uintptr, pgno TPgno) (r int return 0 } /* Case (4) */ } - if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { + if (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TPager)(unsafe.Pointer(pPager)).Ffd)).FpMethods)).FxDeviceCharacteristics})))(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd)&int32(SQLITE_IOCAP_SUBPAGE_READ) == 0 { return 0 /* Case (2) */ } return int32(1) @@ -111441,7 +105603,7 @@ func _pagerFixMaplimit(tls *libc.TLS, pPager uintptr) { var _ /* sz at bp+0 */ Tsqlite3_int64 _ = fd fd = (*TPager)(unsafe.Pointer(pPager)).Ffd - if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods != uintptr(0) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(fd)).FpMethods)).FiVersion >= int32(3) { *(*Tsqlite3_int64)(unsafe.Pointer(bp)) = (*TPager)(unsafe.Pointer(pPager)).FszMmap (*TPager)(unsafe.Pointer(pPager)).FbUseFetch = libc.BoolUint8(*(*Tsqlite3_int64)(unsafe.Pointer(bp)) > libc.Int64FromInt32(0)) _setGetterMethod(tls, pPager) @@ -111632,10 +105794,10 @@ func _pagerOpentemp(tls *libc.TLS, pPager uintptr, pFile uintptr, vfsFlags int32 // ** retried. If it returns zero, then the SQLITE_BUSY error is // ** returned to the caller of the pager API function. // */ -func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, xBusyHandler uintptr, pBusyHandlerArg uintptr) { +func _sqlite3PagerSetBusyHandler(tls *libc.TLS, pPager uintptr, __ccgo_fp_xBusyHandler uintptr, pBusyHandlerArg uintptr) { var ap uintptr _ = ap - (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = xBusyHandler + (*TPager)(unsafe.Pointer(pPager)).FxBusyHandler = __ccgo_fp_xBusyHandler (*TPager)(unsafe.Pointer(pPager)).FpBusyHandlerArg = pBusyHandlerArg ap = pPager + 192 _sqlite3OsFileControlHint(tls, (*TPager)(unsafe.Pointer(pPager)).Ffd, int32(SQLITE_FCNTL_BUSYHANDLER), ap) @@ -112536,7 +106698,7 @@ func _sqlite3PagerFlush(tls *libc.TLS, pPager uintptr) (r int32) { // ** (sqlite3Malloc() is used to allocate memory), SQLITE_CANTOPEN or // ** various SQLITE_IO_XXX errors. // */ -func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, xReinit uintptr) (r int32) { +func _sqlite3PagerOpen(tls *libc.TLS, pVfs uintptr, ppPager uintptr, zFilename uintptr, nExtra int32, flags int32, vfsFlags int32, __ccgo_fp_xReinit uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var iDc, journalFileSize, memDb, memJM, nPathname, nUriByte, pcacheSize, rc, readOnly, tempFile, useJournal, v4 int32 @@ -112611,7 +106773,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(62857)) + rc = _sqlite3CantopenError(tls, int32(62859)) } if rc != SQLITE_OK { _sqlite3DbFree(tls, uintptr(0), zPathname) @@ -112833,7 +106995,7 @@ _3: } /* pPager->xBusyHandler = 0; */ /* pPager->pBusyHandlerArg = 0; */ - (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = xReinit + (*TPager)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FxReiniter = __ccgo_fp_xReinit _setGetterMethod(tls, *(*uintptr)(unsafe.Pointer(bp))) /* memset(pPager->aHash, 0, sizeof(pPager->aHash)); */ /* pPager->szMmap = SQLITE_DEFAULT_MMAP_SIZE // will be set by btree.c */ @@ -113089,7 +107251,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(63378)) + rc = _sqlite3CantopenError(tls, int32(63380)) _sqlite3OsClose(tls, (*TPager)(unsafe.Pointer(pPager)).Fjfd) } } @@ -113264,7 +107426,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(63591)) + return _sqlite3CorruptError(tls, int32(63593)) } *(*uintptr)(unsafe.Pointer(bp)) = _sqlite3PcacheFetch(tls, (*TPager)(unsafe.Pointer(pPager)).FpPCache, pgno, int32(3)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -113295,7 +107457,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(63623)) + rc = _sqlite3CorruptError(tls, int32(63625)) goto pager_acquire_err } (*TPgHdr)(unsafe.Pointer(pPg)).FpPager = pPager @@ -113367,7 +107529,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(63706)) + return _sqlite3CorruptError(tls, int32(63708)) } if bMmapOk != 0 && (*TPager)(unsafe.Pointer(pPager)).FpWal != uintptr(0) { rc = _sqlite3WalFindFrame(tls, (*TPager)(unsafe.Pointer(pPager)).FpWal, pgno, bp+4) @@ -114724,7 +108886,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(65272)) + return _sqlite3CorruptError(tls, int32(65274)) } p4 = pPg + 28 *(*Tu16)(unsafe.Pointer(p4)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p4))) | int32((*TPgHdr)(unsafe.Pointer(pPgOld)).Fflags)&libc.Int32FromInt32(PGHDR_NEED_SYNC)) @@ -115572,234 +109734,6 @@ type TWalCkptInfo = struct { type WalCkptInfo = TWalCkptInfo -/* -** The following object holds a copy of the wal-index header content. -** -** The actual header in the wal-index consists of two copies of this -** object followed by one instance of the WalCkptInfo object. -** For all versions of SQLite through 3.10.0 and probably beyond, -** the locking bytes (WalCkptInfo.aLock) start at offset 120 and -** the total header size is 136 bytes. -** -** The szPage value can be any power of 2 between 512 and 32768, inclusive. -** Or it can be 1 to represent a 65536-byte page. The latter case was -** added in 3.7.1 when support for 64K pages was added. - */ -type TWalIndexHdr1 = struct { - FiVersion Tu32 - Funused Tu32 - FiChange Tu32 - FisInit Tu8 - FbigEndCksum Tu8 - FszPage Tu16 - FmxFrame Tu32 - FnPage Tu32 - FaFrameCksum [2]Tu32 - FaSalt [2]Tu32 - FaCksum [2]Tu32 -} - -type WalIndexHdr1 = TWalIndexHdr1 - -/* -** A copy of the following object occurs in the wal-index immediately -** following the second copy of the WalIndexHdr. This object stores -** information used by checkpoint. -** -** nBackfill is the number of frames in the WAL that have been written -** back into the database. (We call the act of moving content from WAL to -** database "backfilling".) The nBackfill number is never greater than -** WalIndexHdr.mxFrame. nBackfill can only be increased by threads -** holding the WAL_CKPT_LOCK lock (which includes a recovery thread). -** However, a WAL_WRITE_LOCK thread can move the value of nBackfill from -** mxFrame back to zero when the WAL is reset. -** -** nBackfillAttempted is the largest value of nBackfill that a checkpoint -** has attempted to achieve. Normally nBackfill==nBackfillAtempted, however -** the nBackfillAttempted is set before any backfilling is done and the -** nBackfill is only set after all backfilling completes. So if a checkpoint -** crashes, nBackfillAttempted might be larger than nBackfill. The -** WalIndexHdr.mxFrame must never be less than nBackfillAttempted. -** -** The aLock[] field is a set of bytes used for locking. These bytes should -** never be read or written. -** -** There is one entry in aReadMark[] for each reader lock. If a reader -** holds read-lock K, then the value in aReadMark[K] is no greater than -** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) -** for any aReadMark[] means that entry is unused. aReadMark[0] is -** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexes by one. Readers holding -** WAL_READ_LOCK(0) always ignore the entire WAL and read all content -** directly from the database. -** -** The value of aReadMark[K] may only be changed by a thread that -** is holding an exclusive lock on WAL_READ_LOCK(K). Thus, the value of -** aReadMark[K] cannot changed while there is a reader is using that mark -** since the reader will be holding a shared lock on WAL_READ_LOCK(K). -** -** The checkpointer may only transfer frames from WAL to database where -** the frame numbers are less than or equal to every aReadMark[] that is -** in use (that is, every aReadMark[j] for which there is a corresponding -** WAL_READ_LOCK(j)). New readers (usually) pick the aReadMark[] with the -** largest value and will increase an unused aReadMark[] to mxFrame if there -** is not already an aReadMark[] equal to mxFrame. The exception to the -** previous sentence is when nBackfill equals mxFrame (meaning that everything -** in the WAL has been backfilled into the database) then new readers -** will choose aReadMark[0] which has value 0 and hence such reader will -** get all their all content directly from the database file and ignore -** the WAL. -** -** Writers normally append new frames to the end of the WAL. However, -** if nBackfill equals mxFrame (meaning that all WAL content has been -** written back into the database) and if no readers are using the WAL -** (in other words, if there are no WAL_READ_LOCK(i) where i>0) then -** the writer will first "reset" the WAL back to the beginning and start -** writing new content beginning at frame 1. -** -** We assume that 32-bit loads are atomic and so no locks are needed in -** order to read from any aReadMark[] entries. - */ -type TWalCkptInfo1 = struct { - FnBackfill Tu32 - FaReadMark [5]Tu32 - FaLock [8]Tu8 - FnBackfillAttempted Tu32 - FnotUsed0 Tu32 -} - -type WalCkptInfo1 = TWalCkptInfo1 - -/* -** This is a schematic view of the complete 136-byte header of the -** wal-index file (also known as the -shm file): -** -** +-----------------------------+ -** 0: | iVersion | ** +-----------------------------+ | -** 4: | (unused padding) | | -** +-----------------------------+ | -** 8: | iChange | | -** +-------+-------+-------------+ | -** 12: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | -** 16: | mxFrame | | First copy of the -** +-----------------------------+ | WalIndexHdr object -** 20: | nPage | | -** +-----------------------------+ | -** 24: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 32: | aSalt | | -** | | | -** +-----------------------------+ | -** 40: | aCksum | | -** | | / -** +-----------------------------+ -** 48: | iVersion | ** +-----------------------------+ | -** 52: | (unused padding) | | -** +-----------------------------+ | -** 56: | iChange | | -** +-------+-------+-------------+ | -** 60: | bInit | bBig | szPage | | -** +-------+-------+-------------+ | Second copy of the -** 64: | mxFrame | | WalIndexHdr -** +-----------------------------+ | -** 68: | nPage | | -** +-----------------------------+ | -** 72: | aFrameCksum | | -** | | | -** +-----------------------------+ | -** 80: | aSalt | | -** | | | -** +-----------------------------+ | -** 88: | aCksum | | -** | | / -** +-----------------------------+ -** 96: | nBackfill | -** +-----------------------------+ -** 100: | 5 read marks | -** | | -** | | -** | | -** | | -** +-------+-------+------+------+ -** 120: | Write | Ckpt | Rcvr | Rd0 | ** +-------+-------+------+------+ ) 8 lock bytes -** | Read1 | Read2 | Rd3 | Rd4 | / -** +-------+-------+------+------+ -** 128: | nBackfillAttempted | -** +-----------------------------+ -** 132: | (unused padding) | -** +-----------------------------+ - */ - -/* A block of WALINDEX_LOCK_RESERVED bytes beginning at -** WALINDEX_LOCK_OFFSET is reserved for locks. Since some systems -** only support mandatory file-locks, we do not read or write data -** from the region of the file on which locks are applied. - */ - -/* Size of header before each frame in wal */ - -/* Size of write ahead log header, including checksum. */ - -/* WAL magic value. Either this value, or the same value with the least -** significant bit also set (WAL_MAGIC | 0x00000001) is stored in 32-bit -** big-endian format in the first 4 bytes of a WAL file. -** -** If the LSB is set, then the checksums for each frame within the WAL -** file are calculated by treating all data as an array of 32-bit -** big-endian words. Otherwise, they are calculated by interpreting -** all data as 32-bit little-endian words. - */ - -/* -** Return the offset of frame iFrame in the write-ahead log file, -** assuming a database page size of szPage bytes. The offset returned -** is to the start of the write-ahead log frame-header. - */ - -/* -** An open write-ahead log file is represented by an instance of the -** following object. -** -** writeLock: -** This is usually set to 1 whenever the WRITER lock is held. However, -** if it is set to 2, then the WRITER lock is held but must be released -** by walHandleException() if a SEH exception is thrown. - */ -type TWal1 = struct { - F__ccgo_align [0]uint32 - FpVfs uintptr - FpDbFd uintptr - FpWalFd uintptr - FiCallback Tu32 - FmxWalSize Ti64 - FnWiData int32 - FszFirstBlock int32 - FapWiData uintptr - FszPage Tu32 - FreadLock Ti16 - FsyncFlags Tu8 - FexclusiveMode Tu8 - FwriteLock Tu8 - FckptLock Tu8 - FreadOnly Tu8 - FtruncateOnCommit Tu8 - FsyncHeader Tu8 - FpadToSectorBoundary Tu8 - FbShmUnreliable Tu8 - Fhdr TWalIndexHdr - FminFrame Tu32 - FiReCksum Tu32 - FzWalName uintptr - FnCkpt Tu32 - FpSnapshot uintptr - FbGetSnapshot int32 - F__ccgo_pad26 [4]byte -} - -type Wal1 = TWal1 - /* ** Candidate values for Wal.exclusiveMode. */ @@ -115818,28 +109752,6 @@ type Tht_slot = uint16 type ht_slot = Tht_slot -/* -** This structure is used to implement an iterator that loops through -** all frames in the WAL in database page order. Where two or more frames -** correspond to the same database page, the iterator visits only the -** frame most recently written to the WAL (in other words, the frame with -** the largest index). -** -** The internals of this structure are only accessed by: -** -** walIteratorInit() - Create a new iterator, -** walIteratorNext() - Step an iterator, -** walIteratorFree() - Free an iterator. -** -** This functionality is used by the checkpoint code (see walCheckpoint()). - */ -type TWalIterator1 = struct { - FiPrior Tu32 - FnSegment int32 -} - -type WalIterator1 = TWalIterator1 - /* Size (in bytes) of a WalIterator object suitable for N or fewer segments */ /* @@ -116268,14 +110180,6 @@ type TWalHashLoc = struct { type WalHashLoc = TWalHashLoc -type TWalHashLoc1 = struct { - FaHash uintptr - FaPgno uintptr - FiZero Tu32 -} - -type WalHashLoc1 = TWalHashLoc1 - // C documentation // // /* @@ -116442,7 +110346,7 @@ func _walIndexAppend(tls *libc.TLS, pWal uintptr, iFrame Tu32, iPage Tu32) (r in v2 = nCollide nCollide-- if v2 == 0 { - return _sqlite3CorruptError(tls, int32(67212)) + return _sqlite3CorruptError(tls, int32(67214)) } goto _1 _1: @@ -116530,7 +110434,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(67344)) + rc = _sqlite3CantopenError(tls, int32(67346)) goto finished } /* Malloc a buffer to read frames into. */ @@ -117110,10 +111014,10 @@ func _walIteratorInit(tls *libc.TLS, pWal uintptr, nBackfill Tu32, pp uintptr) ( // ** busy-handler function. Invoke it and retry the lock until either the // ** lock is successfully obtained or the busy-handler returns 0. // */ -func _walBusyLock(tls *libc.TLS, pWal uintptr, xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { +func _walBusyLock(tls *libc.TLS, pWal uintptr, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, lockIdx int32, n int32) (r int32) { var rc int32 _ = rc - for cond := true; cond; cond = xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xBusy})))(tls, pBusyArg) != 0 { + for cond := true; cond; cond = __ccgo_fp_xBusy != 0 && rc == int32(SQLITE_BUSY) && (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xBusy})))(tls, pBusyArg) != 0 { rc = _walLockExclusive(tls, pWal, lockIdx, n) } return rc @@ -117211,7 +111115,7 @@ func _walRestartHdr(tls *libc.TLS, pWal uintptr, _salt1 Tu32) { // ** checkpoint is running (in any other thread or process) at the same // ** time. // */ -func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { +func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, zBuf uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var i, rc, szPage, v3, v5 int32 @@ -117250,7 +111154,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } y = libc.AtomicLoadNUint32(pInfo+4+uintptr(i)*4, libc.Int32FromInt32(__ATOMIC_RELAXED)) if mxSafeFrame > y { - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, int32(3)+i, int32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, int32(3)+i, int32(1)) if rc == SQLITE_OK { if i == int32(1) { v2 = mxSafeFrame @@ -117263,7 +111167,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if rc == int32(SQLITE_BUSY) { mxSafeFrame = y - xBusy = uintptr(0) + __ccgo_fp_xBusy = uintptr(0) } else { goto walcheckpoint_out } @@ -117279,7 +111183,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy rc = _walIteratorInit(tls, pWal, (*TWalCkptInfo)(unsafe.Pointer(pInfo)).FnBackfill, bp) } if v4 = *(*uintptr)(unsafe.Pointer(bp)) != 0; v4 { - v3 = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) + v3 = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(0), int32(1)) rc = v3 } if v4 && v3 == SQLITE_OK { @@ -117300,7 +111204,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy ** 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(68153)) + rc = _sqlite3CorruptError(tls, int32(68155)) } else { _sqlite3OsFileControlHint(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, int32(SQLITE_FCNTL_SIZE_HINT), bp+16) } @@ -117366,7 +111270,7 @@ func _walCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy } else { if eMode >= int32(SQLITE_CHECKPOINT_RESTART) { Xsqlite3_randomness(tls, int32(4), bp+32) - rc = _walBusyLock(tls, pWal, xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) + rc = _walBusyLock(tls, pWal, __ccgo_fp_xBusy, pBusyArg, libc.Int32FromInt32(3)+libc.Int32FromInt32(1), libc.Int32FromInt32(SQLITE_SHM_NLOCK)-libc.Int32FromInt32(3)-libc.Int32FromInt32(1)) if rc == SQLITE_OK { if eMode == int32(SQLITE_CHECKPOINT_TRUNCATE) { /* IMPLEMENTATION-OF: R-44699-57140 This mode works the same way as @@ -117664,7 +111568,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(68604)) + rc = _sqlite3CantopenError(tls, int32(68606)) } if (*TWal)(unsafe.Pointer(pWal)).FbShmUnreliable != 0 { if rc != SQLITE_OK { @@ -118475,7 +112379,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(69454)) + return _sqlite3CorruptError(tls, int32(69456)) } iKey = _walNextHash(tls, iKey) } @@ -118621,7 +112525,7 @@ func _sqlite3WalEndWriteTransaction(tls *libc.TLS, pWal uintptr) (r int32) { // ** Otherwise, if the callback function does not return an error, this // ** function returns SQLITE_OK. // */ -func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintptr) (r int32) { +func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, __ccgo_fp_xUndo uintptr, pUndoCtx uintptr) (r int32) { var iFrame, iMax TPgno var rc int32 _, _, _ = iFrame, iMax, rc @@ -118648,7 +112552,7 @@ func _sqlite3WalUndo(tls *libc.TLS, pWal uintptr, xUndo uintptr, pUndoCtx uintpt ** page 1 is never written to the log until the transaction is ** committed. As a result, the call to xUndo may not fail. */ - rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) + rc = (*(*func(*libc.TLS, uintptr, TPgno) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xUndo})))(tls, pUndoCtx, _walFramePgno(tls, pWal, iFrame)) goto _1 _1: ; @@ -118977,7 +112881,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(69981)) /* TH3 test case: cov1/corrupt155.test */ + return _sqlite3CorruptError(tls, int32(69983)) /* TH3 test case: cov1/corrupt155.test */ } /* Setup information needed to write frames into the WAL */ (*(*TWalWriter)(unsafe.Pointer(bp))).FpWal = pWal @@ -119158,7 +113062,7 @@ func _sqlite3WalFrames(tls *libc.TLS, pWal uintptr, szPage int32, pList uintptr, // ** If parameter xBusy is not NULL, it is a pointer to a busy-handler // ** callback. In this case this function runs a blocking checkpoint. // */ -func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { +func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, __ccgo_fp_xBusy uintptr, pBusyArg uintptr, sync_flags int32, nBuf int32, zBuf uintptr, pnLog uintptr, pnCkpt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var eMode2, rc, v1 int32 @@ -119167,7 +113071,7 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, _, _, _, _ = eMode2, rc, xBusy2, v1 /* Return code */ *(*int32)(unsafe.Pointer(bp)) = 0 /* True if a new wal-index header is loaded */ eMode2 = eMode /* Mode to pass to walCheckpoint() */ - xBusy2 = xBusy /* Busy handler for eMode2 */ + xBusy2 = __ccgo_fp_xBusy /* Busy handler for eMode2 */ /* EVIDENCE-OF: R-62920-47450 The busy-handler callback is never invoked ** in the SQLITE_CHECKPOINT_PASSIVE mode. */ if (*TWal)(unsafe.Pointer(pWal)).FreadOnly != 0 { @@ -119219,14 +113123,14 @@ func _sqlite3WalCheckpoint(tls *libc.TLS, pWal uintptr, db uintptr, eMode int32, rc = _walIndexReadHdr(tls, pWal, bp) if eMode2 != SQLITE_CHECKPOINT_PASSIVE { } - if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { + if *(*int32)(unsafe.Pointer(bp)) != 0 && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*TWal)(unsafe.Pointer(pWal)).FpDbFd)).FpMethods)).FiVersion >= int32(3) { _sqlite3OsUnfetch(tls, (*TWal)(unsafe.Pointer(pWal)).FpDbFd, 0, uintptr(0)) } } /* 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(70241)) + rc = _sqlite3CorruptError(tls, int32(70243)) } else { rc = _walCheckpoint(tls, pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf) } @@ -119774,293 +113678,6 @@ type TCellInfo = struct { type CellInfo = TCellInfo -/* -** This is a magic string that appears at the beginning of every -** SQLite database in order to identify the file as a real database. -** -** You can change this value at compile-time by specifying a -** -DSQLITE_FILE_HEADER="..." on the compiler command-line. The -** header must be exactly 16 bytes including the zero-terminator so -** the string itself should be 15 characters long. If you change -** the header, then your custom library will not be able to read -** databases generated by the standard tools and the standard tools -** will not be able to read databases created by your custom library. - */ - -/* -** Page type flags. An ORed combination of these flags appear as the -** first byte of on-disk image of every BTree page. - */ - -/* -** An instance of this object stores information about each a single database -** page that has been loaded into memory. The information in this object -** is derived from the raw on-disk page content. -** -** As each database page is loaded into memory, the pager allocates an -** instance of this object and zeros the first 8 bytes. (This is the -** "extra" information associated with each page of the pager.) -** -** Access to all fields of this structure is controlled by the mutex -** stored in MemPage.pBt->mutex. - */ -type TMemPage1 = struct { - FisInit Tu8 - FintKey Tu8 - FintKeyLeaf Tu8 - Fpgno TPgno - Fleaf Tu8 - FhdrOffset Tu8 - FchildPtrSize Tu8 - Fmax1bytePayload Tu8 - FnOverflow Tu8 - FmaxLocal Tu16 - FminLocal Tu16 - FcellOffset Tu16 - FnFree int32 - FnCell Tu16 - FmaskPage Tu16 - FaiOvfl [4]Tu16 - FapOvfl [4]uintptr - FpBt uintptr - FaData uintptr - FaDataEnd uintptr - FaCellIdx uintptr - FaDataOfst uintptr - FpDbPage uintptr - FxCellSize uintptr - FxParseCell uintptr -} - -type MemPage1 = TMemPage1 - -/* -** A linked list of the following structures is stored at BtShared.pLock. -** Locks are added (or upgraded from READ_LOCK to WRITE_LOCK) when a cursor -** is opened on the table with root page BtShared.iTable. Locks are removed -** from this list when a transaction is committed or rolled back, or when -** a btree handle is closed. - */ -type TBtLock1 = struct { - FpBtree uintptr - FiTable TPgno - FeLock Tu8 - FpNext uintptr -} - -type BtLock1 = TBtLock1 - -/* Candidate values for BtLock.eLock */ - -/* A Btree handle -** -** A database connection contains a pointer to an instance of -** this object for every database file that it has open. This structure -** is opaque to the database connection. The database connection cannot -** see the internals of this structure and only deals with pointers to -** this structure. -** -** For some database files, the same underlying database cache might be -** shared between multiple connections. In that case, each connection -** has it own instance of this object. But each instance of this object -** points to the same BtShared object. The database cache and the -** schema associated with the database file are all contained within -** the BtShared object. -** -** All fields in this structure are accessed under sqlite3.mutex. -** The pBt pointer itself may not be changed while there exists cursors -** in the referenced BtShared that point back to this Btree since those -** cursors have to go through this Btree to find their BtShared and -** they often do so without holding sqlite3.mutex. - */ -type TBtree1 = struct { - Fdb uintptr - FpBt uintptr - FinTrans Tu8 - Fsharable Tu8 - Flocked Tu8 - FhasIncrblobCur Tu8 - FwantToLock int32 - FnBackup int32 - FiBDataVersion Tu32 - FpNext uintptr - FpPrev uintptr - Flock TBtLock -} - -type Btree1 = TBtree1 - -/* -** Btree.inTrans may take one of the following values. -** -** If the shared-data extension is enabled, there may be multiple users -** of the Btree structure. At most one of these may open a write transaction, -** but any number may have active read transactions. -** -** These values must match SQLITE_TXN_NONE, SQLITE_TXN_READ, and -** SQLITE_TXN_WRITE - */ - -/* -** An instance of this object represents a single database file. -** -** A single database file can be in use at the same time by two -** or more database connections. When two or more connections are -** sharing the same database file, each connection has it own -** private Btree object for the file and each of those Btrees points -** to this one BtShared object. BtShared.nRef is the number of -** connections currently sharing this database file. -** -** Fields in this structure are accessed under the BtShared.mutex -** mutex, except for nRef and pNext which are accessed under the -** global SQLITE_MUTEX_STATIC_MAIN mutex. The pPager field -** may not be modified once it is initially set as long as nRef>0. -** The pSchema field may be set once under BtShared.mutex and -** thereafter is unchanged as long as nRef>0. -** -** isPending: -** -** If a BtShared client fails to obtain a write-lock on a database -** table (because there exists one or more read-locks on the table), -** the shared-cache enters 'pending-lock' state and isPending is -** set to true. -** -** The shared-cache leaves the 'pending lock' state when either of -** the following occur: -** -** 1) The current writer (BtShared.pWriter) concludes its transaction, OR -** 2) The number of locks held by other connections drops to zero. -** -** while in the 'pending-lock' state, no connection may start a new -** transaction. -** -** This feature is included to help prevent writer-starvation. - */ -type TBtShared1 = struct { - FpPager uintptr - Fdb uintptr - FpCursor uintptr - FpPage1 uintptr - FopenFlags Tu8 - FautoVacuum Tu8 - FincrVacuum Tu8 - FbDoTruncate Tu8 - FinTransaction Tu8 - Fmax1bytePayload Tu8 - FnReserveWanted Tu8 - FbtsFlags Tu16 - FmaxLocal Tu16 - FminLocal Tu16 - FmaxLeaf Tu16 - FminLeaf Tu16 - FpageSize Tu32 - FusableSize Tu32 - FnTransaction int32 - FnPage Tu32 - FpSchema uintptr - FxFreeSchema uintptr - Fmutex uintptr - FpHasContent uintptr - FnRef int32 - FpNext uintptr - FpLock uintptr - FpWriter uintptr - FpTmpSpace uintptr - FnPreformatSize int32 -} - -type BtShared1 = TBtShared1 - -/* -** Allowed values for BtShared.btsFlags - */ - -/* -** An instance of the following structure is used to hold information -** about a cell. The parseCellPtr() function fills in this structure -** based on information extract from the raw disk page. - */ -type TCellInfo1 = struct { - F__ccgo_align [0]uint32 - FnKey Ti64 - FpPayload uintptr - FnPayload Tu32 - FnLocal Tu16 - FnSize Tu16 - F__ccgo_pad5 [4]byte -} - -type CellInfo1 = TCellInfo1 - -/* -** Maximum depth of an SQLite B-Tree structure. Any B-Tree deeper than -** this will be declared corrupt. This value is calculated based on a -** maximum database size of 2^31 pages a minimum fanout of 2 for a -** root-node and 3 for all other internal nodes. -** -** If a tree that appears to be taller than this is encountered, it is -** assumed that the database is corrupt. - */ - -/* -** Maximum amount of storage local to a database page, regardless of -** page size. - */ - -/* -** A cursor is a pointer to a particular entry within a particular -** b-tree within a database file. -** -** The entry is identified by its MemPage and the index in -** MemPage.aCell[] of the entry. -** -** A single database file can be shared by two more database connections, -** but cursors cannot be shared. Each cursor is associated with a -** particular database connection identified BtCursor.pBtree.db. -** -** Fields in this structure are accessed under the BtShared.mutex -** found at self->pBt->mutex. -** -** skipNext meaning: -** The meaning of skipNext depends on the value of eState: -** -** eState Meaning of skipNext -** VALID skipNext is meaningless and is ignored -** INVALID skipNext is meaningless and is ignored -** SKIPNEXT sqlite3BtreeNext() is a no-op if skipNext>0 and -** sqlite3BtreePrevious() is no-op if skipNext<0. -** REQUIRESEEK restoreCursorPosition() restores the cursor to -** eState=SKIPNEXT if skipNext!=0 -** FAULT skipNext holds the cursor fault error code. - */ -type TBtCursor1 = struct { - F__ccgo_align [0]uint32 - FeState Tu8 - FcurFlags Tu8 - FcurPagerFlags Tu8 - Fhints Tu8 - FskipNext int32 - FpBtree uintptr - FaOverflow uintptr - FpKey uintptr - FpBt uintptr - FpNext uintptr - F__ccgo_align10 [4]byte - Finfo TCellInfo - FnKey Ti64 - FpgnoRoot TPgno - FiPage Ti8 - FcurIntKey Tu8 - Fix Tu16 - FaiIdx [19]Tu16 - FpKeyInfo uintptr - FpPage uintptr - FapPage [19]uintptr - F__ccgo_pad20 [4]byte -} - -type BtCursor1 = TBtCursor1 - /* ** Legal values for BtCursor.curFlags */ @@ -120194,28 +113811,6 @@ type TIntegrityCk = struct { type IntegrityCk = TIntegrityCk -type TIntegrityCk1 = struct { - F__ccgo_align [0]uint32 - FpBt uintptr - FpPager uintptr - FaPgRef uintptr - FnCkPage TPgno - FmxErr int32 - FnErr int32 - Frc int32 - FnStep Tu32 - FzPfx uintptr - Fv0 TPgno - Fv1 TPgno - Fv2 int32 - FerrMsg TStrAccum - Fheap uintptr - Fdb uintptr - FnRow Ti64 -} - -type IntegrityCk1 = TIntegrityCk1 - /* ** Routines to read or write a two- and four-byte big-endian integer values. */ @@ -121098,11 +114693,11 @@ func _btreeMoveto(tls *libc.TLS, pCur uintptr, pKey uintptr, nKey Ti64, bias int } _sqlite3VdbeRecordUnpack(tls, pKeyInfo, 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(72429)) + rc = _sqlite3CorruptError(tls, int32(72431)) } else { rc = _sqlite3BtreeIndexMoveto(tls, pCur, pIdxKey, pRes) } - _sqlite3DbFree(tls, (*TKeyInfo1)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) + _sqlite3DbFree(tls, (*TKeyInfo)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpKeyInfo)).Fdb, pIdxKey) } else { pIdxKey = uintptr(0) rc = _sqlite3BtreeTableMoveto(tls, pCur, nKey, bias, pRes) @@ -121276,7 +114871,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(72627)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72629)) return } iPtrmap = _ptrmapPageno(tls, pBt, key) @@ -121289,12 +114884,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(72640)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72642)) goto ptrmap_exit } offset = int32(libc.Uint32FromInt32(5) * (key - iPtrmap - libc.Uint32FromInt32(1))) if offset < 0 { - *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72645)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(72647)) goto ptrmap_exit } pPtrmap = _sqlite3PagerGetData(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -121338,7 +114933,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(72690)) + return _sqlite3CorruptError(tls, int32(72692)) } *(*Tu8)(unsafe.Pointer(pEType)) = *(*Tu8)(unsafe.Pointer(pPtrmap + uintptr(offset))) if pPgno != 0 { @@ -121346,7 +114941,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(72698)) + return _sqlite3CorruptError(tls, int32(72700)) } return SQLITE_OK } @@ -121766,7 +115361,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(73143)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(73145)) return } ovfl = _sqlite3Get4byte(tls, pCell+uintptr(int32((*(*TCellInfo)(unsafe.Pointer(bp))).FnSize)-int32(4))) @@ -121806,12 +115401,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(73201)) + return _sqlite3CorruptError(tls, int32(73203)) } if iFree != 0 { iFree2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree))))< usableSize-int32(4) { - return _sqlite3CorruptError(tls, int32(73204)) + return _sqlite3CorruptError(tls, int32(73206)) } 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)) @@ -121819,21 +115414,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(73212)) + return _sqlite3CorruptError(tls, int32(73214)) } if iFree2 != 0 { if iFree+sz > iFree2 { - return _sqlite3CorruptError(tls, int32(73215)) + return _sqlite3CorruptError(tls, int32(73217)) } sz2 = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFree2+int32(2)))))< usableSize { - return _sqlite3CorruptError(tls, int32(73217)) + return _sqlite3CorruptError(tls, int32(73219)) } 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(73221)) + return _sqlite3CorruptError(tls, int32(73223)) } } cbrk = top + sz @@ -121880,12 +115475,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(73254)) + return _sqlite3CorruptError(tls, int32(73256)) } 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(73260)) + return _sqlite3CorruptError(tls, int32(73262)) } *(*Tu8)(unsafe.Pointer(pAddr1)) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*Tu8)(unsafe.Pointer(pAddr1 + 1)) = uint8(cbrk) @@ -121901,7 +115496,7 @@ func _defragmentPage(tls *libc.TLS, pPage uintptr, nMaxFrag int32) (r int32) { defragment_out: ; if int32(*(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(7)))))+cbrk-iCellFirst != (*TMemPage)(unsafe.Pointer(pPage)).FnFree { - return _sqlite3CorruptError(tls, int32(73274)) + return _sqlite3CorruptError(tls, int32(73276)) } *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)))) = uint8(cbrk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(hdr+int32(5)) + 1)) = uint8(cbrk) @@ -121961,7 +115556,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(73331)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73333)) return uintptr(0) } else { /* The slot remains on the free-list. Reduce its size to account @@ -121978,14 +115573,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(73346)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73348)) } 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(73353)) + *(*int32)(unsafe.Pointer(pRc)) = _sqlite3CorruptError(tls, int32(73355)) } return uintptr(0) } @@ -122028,11 +115623,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(73401)) + return _sqlite3CorruptError(tls, int32(73403)) } } else { if top > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73404)) + return _sqlite3CorruptError(tls, int32(73406)) } } /* If there is enough space between gap and top for one more cell pointer, @@ -122046,7 +115641,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(73421)) + return _sqlite3CorruptError(tls, int32(73423)) } else { return SQLITE_OK } @@ -122127,12 +115722,12 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk == 0 { break } /* TH3: corrupt082.100 */ - return _sqlite3CorruptError(tls, int32(73500)) + return _sqlite3CorruptError(tls, int32(73502)) } iPtr = iFreeBlk } if iFreeBlk > int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize)-int32(4) { /* TH3: corrupt081.100 */ - return _sqlite3CorruptError(tls, int32(73505)) + return _sqlite3CorruptError(tls, int32(73507)) } /* At this point: ** iFreeBlk: First freeblock after iStart, or zero if none @@ -122143,11 +115738,11 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 if iFreeBlk != 0 && iEnd+int32(3) >= iFreeBlk { nFrag = iFreeBlk - iEnd if iEnd > iFreeBlk { - return _sqlite3CorruptError(tls, int32(73517)) + return _sqlite3CorruptError(tls, int32(73519)) } iEnd = iFreeBlk + (int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk+int32(2)))))< int32((*TBtShared)(unsafe.Pointer((*TMemPage)(unsafe.Pointer(pPage)).FpBt)).FusableSize) { - return _sqlite3CorruptError(tls, int32(73520)) + return _sqlite3CorruptError(tls, int32(73522)) } iSize = iEnd - iStart iFreeBlk = int32(*(*uint8)(unsafe.Pointer(data + uintptr(iFreeBlk))))<= iStart { if iPtrEnd > iStart { - return _sqlite3CorruptError(tls, int32(73533)) + return _sqlite3CorruptError(tls, int32(73535)) } nFrag += iStart - iPtrEnd iSize = iEnd - iPtr @@ -122168,7 +115763,7 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 } } if nFrag > int32(*(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(7))))) { - return _sqlite3CorruptError(tls, int32(73539)) + return _sqlite3CorruptError(tls, int32(73541)) } p2 = data + uintptr(int32(hdr)+int32(7)) *(*uint8)(unsafe.Pointer(p2)) = uint8(int32(*(*uint8)(unsafe.Pointer(p2))) - int32(uint8(nFrag))) @@ -122185,10 +115780,10 @@ func _freeSpace(tls *libc.TLS, pPage uintptr, iStart int32, iSize int32) (r int3 ** so just extend the cell content area rather than create another ** freelist entry */ if iStart < x { - return _sqlite3CorruptError(tls, int32(73553)) + return _sqlite3CorruptError(tls, int32(73555)) } if iPtr != int32(hdr)+int32(1) { - return _sqlite3CorruptError(tls, int32(73554)) + return _sqlite3CorruptError(tls, int32(73556)) } *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)))) = uint8(iFreeBlk >> libc.Int32FromInt32(8)) *(*uint8)(unsafe.Pointer(data + uintptr(int32(hdr)+int32(1)) + 1)) = uint8(iFreeBlk) @@ -122249,7 +115844,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(73609)) + return _sqlite3CorruptError(tls, int32(73611)) } } } else { @@ -122275,7 +115870,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(73633)) + return _sqlite3CorruptError(tls, int32(73635)) } } } @@ -122314,12 +115909,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(73684)) + return _sqlite3CorruptError(tls, int32(73686)) } for int32(1) != 0 { if pc > iCellLast { /* Freeblock off the end of the page */ - return _sqlite3CorruptError(tls, int32(73689)) + return _sqlite3CorruptError(tls, int32(73691)) } next = uint32(int32(*(*Tu8)(unsafe.Pointer(data + uintptr(pc))))< uint32(0) { /* Freeblock not in ascending order */ - return _sqlite3CorruptError(tls, int32(73699)) + return _sqlite3CorruptError(tls, int32(73701)) } if uint32(pc)+size > uint32(usableSize) { /* Last freeblock extends past page end */ - return _sqlite3CorruptError(tls, int32(73703)) + return _sqlite3CorruptError(tls, int32(73705)) } } /* At this point, nFree contains the sum of the offset to the start @@ -122346,7 +115941,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(73715)) + return _sqlite3CorruptError(tls, int32(73717)) } (*TMemPage)(unsafe.Pointer(pPage)).FnFree = int32(uint16(nFree - iCellFirst)) return SQLITE_OK @@ -122377,11 +115972,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(73746)) + return _sqlite3CorruptError(tls, int32(73748)) } 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(73751)) + return _sqlite3CorruptError(tls, int32(73753)) } goto _1 _1: @@ -122410,7 +116005,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(73783)) + return _sqlite3CorruptError(tls, int32(73785)) } (*TMemPage)(unsafe.Pointer(pPage)).FmaskPage = uint16((*TBtShared)(unsafe.Pointer(pBt)).FpageSize - libc.Uint32FromInt32(1)) (*TMemPage)(unsafe.Pointer(pPage)).FnOverflow = uint8(0) @@ -122423,7 +116018,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(73797)) + return _sqlite3CorruptError(tls, int32(73799)) } /* 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 @@ -122574,7 +116169,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(73940)) + return _sqlite3CorruptError(tls, int32(73942)) } rc = _sqlite3PagerGet(tls, (*TBtShared)(unsafe.Pointer(pBt)).FpPager, pgno, bp, bReadOnly) if rc != 0 { @@ -122636,7 +116231,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(74012)) + return _sqlite3CorruptError(tls, int32(74014)) } (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(ppPage)))).FisInit = uint8(0) } else { @@ -123548,7 +117143,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(74950)) + rc = _sqlite3CorruptError(tls, int32(74952)) goto page1_init_failed } else { nPage = *(*Tu32)(unsafe.Pointer(bp + 4)) @@ -123989,7 +117584,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(75405)) + return _sqlite3CorruptError(tls, int32(75407)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData, iTo) } else { @@ -124013,7 +117608,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(75424)) + return _sqlite3CorruptError(tls, int32(75426)) } 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) @@ -124022,7 +117617,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(75433)) + return _sqlite3CorruptError(tls, int32(75435)) } if _sqlite3Get4byte(tls, pCell) == iFrom { _sqlite3Put4byte(tls, pCell, iTo) @@ -124036,7 +117631,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(75445)) + return _sqlite3CorruptError(tls, int32(75447)) } _sqlite3Put4byte(tls, (*TMemPage)(unsafe.Pointer(pPage)).FaData+uintptr(int32((*TMemPage)(unsafe.Pointer(pPage)).FhdrOffset)+int32(8)), iTo) } @@ -124066,7 +117661,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(75480)) + return _sqlite3CorruptError(tls, int32(75482)) } /* 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) @@ -124162,7 +117757,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(75578)) + return _sqlite3CorruptError(tls, int32(75580)) } if int32(*(*Tu8)(unsafe.Pointer(bp))) == int32(PTRMAP_FREEPAGE) { if bCommit == 0 { @@ -124200,7 +117795,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(75630)) + return _sqlite3CorruptError(tls, int32(75632)) } } rc = _relocatePage(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 20)), *(*Tu8)(unsafe.Pointer(bp)), *(*TPgno)(unsafe.Pointer(bp + 4)), *(*TPgno)(unsafe.Pointer(bp + 16)), bCommit) @@ -124267,7 +117862,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(75698)) + rc = _sqlite3CorruptError(tls, int32(75700)) } else { if nFree > uint32(0) { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -124310,7 +117905,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(75749)) + return _sqlite3CorruptError(tls, int32(75751)) } nFree = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer((*TBtShared)(unsafe.Pointer(pBt)).FpPage1)).FaData+36) db = (*TBtree)(unsafe.Pointer(p)).Fdb @@ -124340,7 +117935,7 @@ func _autoVacuumCommit(tls *libc.TLS, p uintptr) (r int32) { } nFin = _finalDbSize(tls, pBt, nOrig, nVac) if nFin > nOrig { - return _sqlite3CorruptError(tls, int32(75776)) + return _sqlite3CorruptError(tls, int32(75778)) } if nFin < nOrig { rc = _saveAllCursors(tls, pBt, uint32(0), uintptr(0)) @@ -124806,7 +118401,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(76240)) + return _sqlite3CorruptError(tls, int32(76242)) } else { if _btreePagecount(tls, pBt) == uint32(0) { iTable = uint32(0) @@ -125198,7 +118793,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(76664)) + return _sqlite3CorruptError(tls, int32(76666)) } _getCellInfo(tls, pCur) aPayload = (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FpPayload @@ -125208,7 +118803,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(76679)) + return _sqlite3CorruptError(tls, int32(76681)) } /* Check if data must be read/written to/from the btree page itself. */ if offset < uint32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) { @@ -125265,7 +118860,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(76750)) + return _sqlite3CorruptError(tls, int32(76752)) } *(*TPgno)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FaOverflow + uintptr(iIdx)*4)) = *(*TPgno)(unsafe.Pointer(bp)) if offset >= ovflSize { @@ -125339,7 +118934,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(76834)) + return _sqlite3CorruptError(tls, int32(76836)) } return rc } @@ -125474,7 +119069,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(76972)) + return _sqlite3CorruptError(tls, int32(76974)) } (*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnSize = uint16(0) p1 = pCur + 1 @@ -125486,7 +119081,7 @@ func _moveToChild(tls *libc.TLS, pCur uintptr, newPgno Tu32) (r int32) { rc = _getAndInitPage(tls, (*TBtCursor)(unsafe.Pointer(pCur)).FpBt, newPgno, 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(76986)) + rc = _sqlite3CorruptError(tls, int32(76988)) } if rc != 0 { v3 = pCur + 68 @@ -125602,7 +119197,7 @@ 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(77121)) + return _sqlite3CorruptError(tls, int32(77123)) } goto skip_init skip_init: @@ -125616,7 +119211,7 @@ skip_init: } else { if !((*TMemPage)(unsafe.Pointer(pRoot)).Fleaf != 0) { if (*TMemPage)(unsafe.Pointer(pRoot)).Fpgno != uint32(1) { - return _sqlite3CorruptError(tls, int32(77133)) + return _sqlite3CorruptError(tls, int32(77135)) } 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) @@ -125850,7 +119445,7 @@ func _sqlite3BtreeTableMoveto(tls *libc.TLS, pCur uintptr, intKey Ti64, biasRigh break } if pCell >= (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(77382)) + return _sqlite3CorruptError(tls, int32(77384)) } } } @@ -125934,7 +119529,7 @@ moveto_table_finish: // ** This routine is part of an optimization. It is always safe to return // ** a positive value as that will cause the optimization to be skipped. // */ -func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, xRecordCompare TRecordCompare) (r int32) { +func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, __ccgo_fp_xRecordCompare TRecordCompare) (r int32) { var c, nCell, v1 int32 var pCell, pPage uintptr var v2 bool @@ -125946,7 +119541,7 @@ func _indexCellCompare(tls *libc.TLS, pCur uintptr, idx int32, pIdxKey uintptr, /* This branch runs if the record-size field of the cell is a ** single byte varint and the record fits entirely on the main ** b-tree page. */ - c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) + c = (*(*func(*libc.TLS, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xRecordCompare})))(tls, nCell, pCell+1, pIdxKey) } else { if v2 = !(int32(*(*Tu8)(unsafe.Pointer(pCell + 1)))&libc.Int32FromInt32(0x80) != 0); v2 { v1 = nCell&libc.Int32FromInt32(0x7f)< (*TBtShared)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pCur)).FpBt)).FnPage { - rc = _sqlite3CorruptError(tls, int32(77665)) + rc = _sqlite3CorruptError(tls, int32(77667)) goto moveto_index_finish } pCellKey = _sqlite3Malloc(tls, uint64(nCell)+uint64(nOverrun)) @@ -126148,7 +119743,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(77697)) + rc = _sqlite3CorruptError(tls, int32(77699)) } goto moveto_index_finish } @@ -126181,7 +119776,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(77728)) + return _sqlite3CorruptError(tls, int32(77730)) } *(*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 @@ -126190,7 +119785,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(77739)) + rc = _sqlite3CorruptError(tls, int32(77741)) } if rc != 0 { v11 = pCur + 68 @@ -126319,7 +119914,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(77840)) + return _sqlite3CorruptError(tls, int32(77842)) } if idx >= int32((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { @@ -126429,7 +120024,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(77933)) + return _sqlite3CorruptError(tls, int32(77935)) } if !((*TMemPage)(unsafe.Pointer(pPage)).Fleaf != 0) { idx = int32((*TBtCursor)(unsafe.Pointer(pCur)).Fix) @@ -126517,7 +120112,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(78023)) + return _sqlite3CorruptError(tls, int32(78025)) } if n > uint32(0) { searchList = uint8(0) /* If the free-list must be searched for 'nearby' */ @@ -126572,7 +120167,7 @@ func _allocateBtreePage(tls *libc.TLS, pBt uintptr, ppPage uintptr, pPgno uintpt nSearch++ } if v2 || v1 > n { - rc = _sqlite3CorruptError(tls, int32(78079)) + rc = _sqlite3CorruptError(tls, int32(78081)) } else { rc = _btreeGetUnusedPage(tls, pBt, iTrunk, bp, 0) } @@ -126598,7 +120193,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(78108)) + rc = _sqlite3CorruptError(tls, int32(78110)) goto end_allocate_page } else { if searchList != 0 && (nearby == iTrunk || iTrunk < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -126625,7 +120220,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(78142)) + rc = _sqlite3CorruptError(tls, int32(78144)) goto end_allocate_page } rc = _btreeGetUnusedPage(tls, pBt, iNewTrunk, bp+8, 0) @@ -126696,7 +120291,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(78207)) + rc = _sqlite3CorruptError(tls, int32(78209)) goto end_allocate_page } if !(searchList != 0) || (iPage == nearby || iPage < nearby && int32(eMode) == int32(BTALLOC_LE)) { @@ -126834,7 +120429,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(78334)) + return _sqlite3CorruptError(tls, int32(78336)) } if pMemPage != 0 { *(*uintptr)(unsafe.Pointer(bp + 4)) = pMemPage @@ -126885,7 +120480,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(78381)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(78383)) goto freepage_out } *(*int32)(unsafe.Pointer(bp + 8)) = _btreeGetPage(tls, pBt, iTrunk, bp, 0) @@ -126894,7 +120489,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 + 8)) = _sqlite3CorruptError(tls, int32(78392)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(78394)) goto freepage_out } if nLeaf < (*TBtShared)(unsafe.Pointer(pBt)).FusableSize/uint32(4)-uint32(8) { @@ -126984,7 +120579,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(78481)) + return _sqlite3CorruptError(tls, int32(78483)) } ovflPgno = _sqlite3Get4byte(tls, pCell+uintptr((*TCellInfo)(unsafe.Pointer(pInfo)).FnSize)-uintptr(4)) pBt = (*TMemPage)(unsafe.Pointer(pPage)).FpBt @@ -127002,7 +120597,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(78498)) + return _sqlite3CorruptError(tls, int32(78500)) } if nOvfl != 0 { rc = _getOverflowPage(tls, pBt, ovflPgno, bp+4, bp) @@ -127025,7 +120620,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(78518)) + rc = _sqlite3CorruptError(tls, int32(78520)) } else { rc = _freePage2(tls, pBt, *(*uintptr)(unsafe.Pointer(bp + 4)), ovflPgno) } @@ -127246,7 +120841,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(78774)) + *(*int32)(unsafe.Pointer(pRC)) = _sqlite3CorruptError(tls, int32(78776)) return } rc = _freeSpace(tls, pPage, int32(pc), sz) @@ -127540,17 +121135,6 @@ type TCellArray = struct { type CellArray = TCellArray -type TCellArray1 = struct { - FnCell int32 - FpRef uintptr - FapCell uintptr - FszCell uintptr - FapEnd [6]uintptr - FixNx [6]int32 -} - -type CellArray1 = TCellArray1 - // C documentation // // /* @@ -127640,12 +121224,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 uint32(pCell) >= uint32(aData+uintptr(j)) && uint32(pCell) < uint32(pEnd) { if uint32(pCell+uintptr(sz)) > uint32(pEnd) { - return _sqlite3CorruptError(tls, int32(79164)) + return _sqlite3CorruptError(tls, int32(79166)) } pCell = pTmp + uintptr(int32(pCell)-int32(aData)) } else { if uint32(pCell+uintptr(sz)) > uint32(pSrcEnd) && uint32(pCell) < uint32(pSrcEnd) { - return _sqlite3CorruptError(tls, int32(79169)) + return _sqlite3CorruptError(tls, int32(79171)) } } pData -= uintptr(sz) @@ -127653,7 +121237,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(79175)) + return _sqlite3CorruptError(tls, int32(79177)) } libc.Xmemmove(tls, pData, pCell, uint32(sz)) i++ @@ -127748,7 +121332,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 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) { - _sqlite3CorruptError(tls, int32(79262)) + _sqlite3CorruptError(tls, int32(79264)) return int32(1) } libc.Xmemmove(tls, pSlot, *(*uintptr)(unsafe.Pointer((*TCellArray)(unsafe.Pointer(pCArray)).FapCell + uintptr(i)*4)), uint32(sz)) @@ -127896,7 +121480,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(79384)) + return _sqlite3CorruptError(tls, int32(79386)) } libc.Xmemmove(tls, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx, (*TMemPage)(unsafe.Pointer(pPg)).FaCellIdx+uintptr(nShift*int32(2)), uint32(nCell*int32(2))) nCell -= nShift @@ -127967,7 +121551,7 @@ editpage_fail: ; /* Unable to edit this page. Rebuild it from scratch instead. */ if nNew < int32(1) { - return _sqlite3CorruptError(tls, int32(79462)) + return _sqlite3CorruptError(tls, int32(79464)) } _populateCellCache(tls, pCArray, iNew, nNew) return _rebuildPage(tls, pCArray, iNew, nNew, pPg) @@ -128012,7 +121596,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(79502)) + return _sqlite3CorruptError(tls, int32(79504)) } /* 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 @@ -128376,7 +121960,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(79926)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79928)) goto balance_cleanup } /* Load b.apCell[] with pointers to all cells in pOld. If pOld @@ -128399,7 +121983,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(79950)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(79952)) goto balance_cleanup } limit = int32(*(*Tu16)(unsafe.Pointer(pOld + 28))) @@ -128530,7 +122114,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(80051)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80053)) goto balance_cleanup } (*(*[5]int32)(unsafe.Pointer(bp + 36)))[k-int32(1)] = 0 @@ -128573,7 +122157,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(80084)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80086)) goto balance_cleanup } } @@ -128632,7 +122216,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(80128)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80130)) goto balance_cleanup } goto _11 @@ -128664,7 +122248,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(80161)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80163)) } if *(*int32)(unsafe.Pointer(bp)) != 0 { goto balance_cleanup @@ -128894,7 +122478,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(80362)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(80364)) goto balance_cleanup } *(*int32)(unsafe.Pointer(bp)) = _insertCell(tls, pParent, nxDiv+i, pCell1, sz2, pTemp1, (*TMemPage)(unsafe.Pointer(pNew2)).Fpgno) @@ -129140,7 +122724,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(80594)) + return _sqlite3CorruptError(tls, int32(80596)) } goto _1 _1: @@ -129213,7 +122797,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(80654)) + rc = _sqlite3CorruptError(tls, int32(80656)) } else { pParent = *(*uintptr)(unsafe.Pointer(pCur + 120 + uintptr(iPage-int32(1))*4)) iIdx = int32(*(*Tu16)(unsafe.Pointer(pCur + 72 + uintptr(iPage-int32(1))*2))) @@ -129372,7 +122956,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(80818)) + rc = _sqlite3CorruptError(tls, int32(80820)) } else { if uint32(iOffset)+ovflPageSize < uint32(nTotal) { ovflPgno = _sqlite3Get4byte(tls, (*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FaData) @@ -129403,7 +122987,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(80846)) + return _sqlite3CorruptError(tls, int32(80848)) } if int32((*TBtCursor)(unsafe.Pointer(pCur)).Finfo.FnLocal) == nTotal { /* The entire cell is local */ @@ -129488,7 +123072,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(80927)) + return _sqlite3CorruptError(tls, int32(80929)) } } /* Ensure that the cursor is not in the CURSOR_FAULT state and that it @@ -129580,7 +123164,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(81050)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(81052)) } else { *(*int32)(unsafe.Pointer(bp)) = _btreeComputeFreeSpace(tls, pPage) } @@ -129616,7 +123200,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(81092)) + return _sqlite3CorruptError(tls, int32(81094)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3PagerWrite(tls, (*TMemPage)(unsafe.Pointer(pPage)).FpDbPage) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -129646,10 +123230,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(81119)) + return _sqlite3CorruptError(tls, int32(81121)) } if oldCell+uintptr(*(*int32)(unsafe.Pointer(bp + 8))) > (*TMemPage)(unsafe.Pointer(pPage)).FaDataEnd { - return _sqlite3CorruptError(tls, int32(81122)) + return _sqlite3CorruptError(tls, int32(81124)) } libc.Xmemcpy(tls, oldCell, newCell, uint32(*(*int32)(unsafe.Pointer(bp + 8)))) return SQLITE_OK @@ -129767,7 +123351,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(81224)) + return _sqlite3CorruptError(tls, int32(81226)) } nRem = (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FnPayload if nIn == nRem && nIn < uint32((*TMemPage)(unsafe.Pointer((*TBtCursor)(unsafe.Pointer(pDest)).FpPage)).FmaxLocal) { @@ -129789,7 +123373,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(81249)) + return _sqlite3CorruptError(tls, int32(81251)) } ovflIn = _sqlite3Get4byte(tls, (*TBtCursor)(unsafe.Pointer(pSrc)).Finfo.FpPayload+uintptr(nIn)) } @@ -129889,21 +123473,21 @@ func _sqlite3BtreeDelete(tls *libc.TLS, pCur uintptr, flags Tu8) (r int32) { return *(*int32)(unsafe.Pointer(bp)) } } else { - return _sqlite3CorruptError(tls, int32(81345)) + return _sqlite3CorruptError(tls, int32(81347)) } } 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(81354)) + return _sqlite3CorruptError(tls, int32(81356)) } 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(81358)) + return _sqlite3CorruptError(tls, int32(81360)) } if pCell < (*TMemPage)(unsafe.Pointer(pPage)).FaCellIdx+uintptr((*TMemPage)(unsafe.Pointer(pPage)).FnCell) { - return _sqlite3CorruptError(tls, int32(81361)) + return _sqlite3CorruptError(tls, int32(81363)) } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -129997,7 +123581,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(81452)) + return _sqlite3CorruptError(tls, int32(81454)) } 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 @@ -130107,7 +123691,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(81568)) + return _sqlite3CorruptError(tls, int32(81570)) } *(*TPgno)(unsafe.Pointer(bp + 4))++ /* The new root-page may not be allocated on a pointer-map page, or the @@ -130148,7 +123732,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(81616)) + *(*int32)(unsafe.Pointer(bp + 8)) = _sqlite3CorruptError(tls, int32(81618)) } if *(*int32)(unsafe.Pointer(bp + 8)) != SQLITE_OK { _releasePage(tls, *(*uintptr)(unsafe.Pointer(bp))) @@ -130229,14 +123813,14 @@ func _clearDatabasePage(tls *libc.TLS, pBt uintptr, pgno TPgno, freePageFlag int var _ /* rc at bp+4 */ int32 _, _, _, _ = hdr, i, pCell, v2 if pgno > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81706)) + return _sqlite3CorruptError(tls, int32(81708)) } *(*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(81713)) + *(*int32)(unsafe.Pointer(bp + 4)) = _sqlite3CorruptError(tls, int32(81715)) goto cleardatabasepage_out } hdr = int32((*TMemPage)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FhdrOffset) @@ -130373,7 +123957,7 @@ func _btreeDropTable(tls *libc.TLS, p uintptr, iTable TPgno, piMoved uintptr) (r *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) pBt = (*TBtree)(unsafe.Pointer(p)).FpBt if iTable > _btreePagecount(tls, pBt) { - return _sqlite3CorruptError(tls, int32(81817)) + return _sqlite3CorruptError(tls, int32(81819)) } *(*int32)(unsafe.Pointer(bp)) = _sqlite3BtreeClearTable(tls, p, int32(iTable), uintptr(0)) if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -131425,14 +125009,14 @@ func _sqlite3BtreeIsInBackup(tls *libc.TLS, p uintptr) (r int32) { // ** blob of allocated memory. The xFree function should not call sqlite3_free() // ** on the memory, the btree layer does that. // */ -func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, xFree uintptr) (r uintptr) { +func _sqlite3BtreeSchema(tls *libc.TLS, p uintptr, nBytes int32, __ccgo_fp_xFree uintptr) (r uintptr) { var pBt uintptr _ = pBt pBt = (*TBtree)(unsafe.Pointer(p)).FpBt _sqlite3BtreeEnter(tls, p) if !((*TBtShared)(unsafe.Pointer(pBt)).FpSchema != 0) && nBytes != 0 { (*TBtShared)(unsafe.Pointer(pBt)).FpSchema = _sqlite3DbMallocZero(tls, uintptr(0), uint64(nBytes)) - (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = xFree + (*TBtShared)(unsafe.Pointer(pBt)).FxFreeSchema = __ccgo_fp_xFree } _sqlite3BtreeLeave(tls, p) return (*TBtShared)(unsafe.Pointer(pBt)).FpSchema @@ -131643,45 +125227,6 @@ func _sqlite3BtreeConnectionCount(tls *libc.TLS, p uintptr) (r int32) { return (*TBtShared)(unsafe.Pointer((*TBtree)(unsafe.Pointer(p)).FpBt)).FnRef } -/************** End of btree.c ***********************************************/ -/************** Begin file backup.c ******************************************/ -/* -** 2009 January 28 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains the implementation of the sqlite3_backup_XXX() -** API functions and the related features. - */ -/* #include "sqliteInt.h" */ -/* #include "btreeInt.h" */ - -/* -** Structure allocated for each backup operation. - */ -type Tsqlite3_backup1 = struct { - FpDestDb uintptr - FpDest uintptr - FiDestSchema Tu32 - FbDestLocked int32 - FiNext TPgno - FpSrcDb uintptr - FpSrc uintptr - Frc int32 - FnRemaining TPgno - FnPagecount TPgno - FisAttached int32 - FpNext uintptr -} - -type sqlite3_backup1 = Tsqlite3_backup1 - /* ** THREAD SAFETY NOTES: ** @@ -133283,7 +126828,7 @@ func _sqlite3NoopDestructor(tls *libc.TLS, p uintptr) { // ** Set the value stored in *pMem should already be a NULL. // ** Also store a pointer to go with it. // */ -func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var v1, v2 uintptr _, _ = v1, v2 _vdbeMemClear(tls, pMem) @@ -133296,8 +126841,8 @@ func _sqlite3VdbeMemSetPointer(tls *libc.TLS, pMem uintptr, pPtr uintptr, zPType (*TMem)(unsafe.Pointer(pMem)).Fz = pPtr (*TMem)(unsafe.Pointer(pMem)).Fflags = uint16(libc.Int32FromInt32(MEM_Null) | libc.Int32FromInt32(MEM_Dyn) | libc.Int32FromInt32(MEM_Subtype) | libc.Int32FromInt32(MEM_Term)) (*TMem)(unsafe.Pointer(pMem)).FeSubtype = uint8('p') - if xDestructor != 0 { - v2 = xDestructor + if __ccgo_fp_xDestructor != 0 { + v2 = __ccgo_fp_xDestructor } else { v2 = __ccgo_fp(_sqlite3NoopDestructor) } @@ -133456,7 +127001,7 @@ func _sqlite3VdbeMemMove(tls *libc.TLS, pTo uintptr, pFrom uintptr) { // ** excluding the first zero character. The n parameter must be // ** non-negative for blobs. // */ -func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, xDel uintptr) (r int32) { +func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc Tu8, __ccgo_fp_xDel uintptr) (r int32) { var flags Tu16 var iLimit, v2, v4 int32 var nAlloc, nByte Ti64 @@ -133498,11 +127043,11 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } } if nByte > int64(iLimit) { - if xDel != 0 && xDel != uintptr(-libc.Int32FromInt32(1)) { - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel != 0 && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { _sqlite3DbFree(tls, (*TMem)(unsafe.Pointer(pMem)).Fdb, z) } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, z) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, z) } } _sqlite3VdbeMemSetNull(tls, pMem) @@ -133512,7 +127057,7 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T ** also sets a flag in local variable "flags" to indicate the memory ** management (one of MEM_Dyn or MEM_Static). */ - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { nAlloc = nByte if int32(flags)&int32(MEM_Term) != 0 { if int32(enc) == int32(SQLITE_UTF8) { @@ -133534,12 +127079,12 @@ func _sqlite3VdbeMemSetStr(tls *libc.TLS, pMem uintptr, z uintptr, n Ti64, enc T } else { _sqlite3VdbeMemRelease(tls, pMem) (*TMem)(unsafe.Pointer(pMem)).Fz = z - if xDel == __ccgo_fp(_sqlite3OomClear) { + if __ccgo_fp_xDel == __ccgo_fp(_sqlite3OomClear) { (*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)).FzMalloc) } else { - (*TMem)(unsafe.Pointer(pMem)).FxDel = xDel - if xDel == libc.UintptrFromInt32(0) { + (*TMem)(unsafe.Pointer(pMem)).FxDel = __ccgo_fp_xDel + if __ccgo_fp_xDel == libc.UintptrFromInt32(0) { v4 = int32(MEM_Static) } else { v4 = int32(MEM_Dyn) @@ -133578,7 +127123,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(85115)) + return _sqlite3CorruptError(tls, int32(85117)) } v1 = _sqlite3VdbeMemClearAndResize(tls, pMem, int32(amt+uint32(1))) rc = v1 @@ -133690,8 +127235,8 @@ func _sqlite3ValueText(tls *libc.TLS, pVal uintptr, enc Tu8) (r uintptr) { // ** TODO: Maybe someday promote this interface into a published API so // ** that third-party extensions can get access to it? // */ -func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, xFree uintptr) (r int32) { - if pVal != uintptr(0) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == xFree { +func _sqlite3ValueIsOfClass(tls *libc.TLS, pVal uintptr, __ccgo_fp_xFree uintptr) (r int32) { + if pVal != uintptr(0) && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&(libc.Int32FromInt32(MEM_Str)|libc.Int32FromInt32(MEM_Blob)) != 0 && int32((*Tsqlite3_value)(unsafe.Pointer(pVal)).Fflags)&int32(MEM_Dyn) != 0 && (*Tsqlite3_value)(unsafe.Pointer(pVal)).FxDel == __ccgo_fp_xFree { return int32(1) } else { return 0 @@ -134281,7 +127826,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr = uint32(uint8(v1)) if *(*Tu32)(unsafe.Pointer(bp + 4)) > uint32(nRec) || iHdr >= *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85801)) + return _sqlite3CorruptError(tls, int32(85803)) } iField = int64(*(*Tu32)(unsafe.Pointer(bp + 4))) i = 0 @@ -134297,7 +127842,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC } iHdr += uint32(uint8(v3)) if iHdr > *(*Tu32)(unsafe.Pointer(bp + 4)) { - return _sqlite3CorruptError(tls, int32(85807)) + return _sqlite3CorruptError(tls, int32(85809)) } szField = _sqlite3VdbeSerialTypeLen(tls, *(*Tu32)(unsafe.Pointer(bp))) iField += int64(szField) @@ -134307,7 +127852,7 @@ func _sqlite3Stat4Column(tls *libc.TLS, db uintptr, pRec uintptr, nRec int32, iC i++ } if iField > int64(nRec) { - return _sqlite3CorruptError(tls, int32(85813)) + return _sqlite3CorruptError(tls, int32(85815)) } if pMem == uintptr(0) { v4 = _sqlite3ValueNew(tls, db) @@ -134358,9 +127903,9 @@ func _sqlite3Stat4ProbeFree(tls *libc.TLS, pRec uintptr) { // /* // ** Change the string value of an sqlite3_value object // */ -func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, xDel uintptr) { +func _sqlite3ValueSetStr(tls *libc.TLS, v uintptr, n int32, z uintptr, enc Tu8, __ccgo_fp_xDel uintptr) { if v != 0 { - _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, xDel) + _sqlite3VdbeMemSetStr(tls, v, z, int64(n), enc, __ccgo_fp_xDel) } } @@ -134434,7 +127979,7 @@ func _sqlite3VdbeCreate(tls *libc.TLS, pParse uintptr) (r uintptr) { libc.Xmemset(tls, p+104, 0, libc.Uint32FromInt64(232)-uint32(libc.UintptrFromInt32(0)+104)) (*TVdbe)(unsafe.Pointer(p)).Fdb = db if (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe != 0 { - (*TVdbe1)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 8 + (*TVdbe)(unsafe.Pointer((*Tsqlite3)(unsafe.Pointer(db)).FpVdbe)).FppVPrev = p + 8 } (*TVdbe)(unsafe.Pointer(p)).FpVNext = (*Tsqlite3)(unsafe.Pointer(db)).FpVdbe (*TVdbe)(unsafe.Pointer(p)).FppVPrev = db + 4 @@ -136560,7 +130105,7 @@ func _sqlite3VdbeSetNumCols(tls *libc.TLS, p uintptr, nResColumn int32) { // ** or SQLITE_TRANSIENT. If it is SQLITE_DYNAMIC, then the buffer pointed // ** to by zName will be freed by sqlite3DbFree() when the vdbe is destroyed. // */ -func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, xDel uintptr) (r int32) { +func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zName uintptr, __ccgo_fp_xDel uintptr) (r int32) { var pColName uintptr var rc int32 _, _ = pColName, rc @@ -136568,7 +130113,7 @@ func _sqlite3VdbeSetColName(tls *libc.TLS, p uintptr, idx int32, var1 int32, zNa return int32(SQLITE_NOMEM) } pColName = (*TVdbe)(unsafe.Pointer(p)).FaColName + uintptr(idx+var1*int32((*TVdbe)(unsafe.Pointer(p)).FnResAlloc))*40 - rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), xDel) + rc = _sqlite3VdbeMemSetStr(tls, pColName, zName, int64(-int32(1)), uint8(SQLITE_UTF8), __ccgo_fp_xDel) return rc } @@ -137395,7 +130940,7 @@ func _sqlite3VdbeFinishMoveto(tls *libc.TLS, p uintptr) (r int32) { return rc } if *(*int32)(unsafe.Pointer(bp)) != 0 { - return _sqlite3CorruptError(tls, int32(89694)) + return _sqlite3CorruptError(tls, int32(89696)) } (*TVdbeCursor)(unsafe.Pointer(p)).FdeferredMoveto = uint8(0) (*TVdbeCursor)(unsafe.Pointer(p)).FcacheStatus = uint32(CACHE_STALE) @@ -138243,7 +131788,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(90653))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90655))) return 0 /* Corruption */ } /* Only needed by assert() statements */ @@ -138333,7 +131878,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(90734))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90736))) return 0 /* Corruption */ } else { if *(*uintptr)(unsafe.Pointer(pKeyInfo + 20 + uintptr(i)*4)) != 0 { @@ -138368,7 +131913,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(90764))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90766))) return 0 /* Corruption */ } else { if int32((*TMem)(unsafe.Pointer(pRhs)).Fflags)&int32(MEM_Zero) != 0 { @@ -138422,7 +131967,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(90815))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90817))) return 0 /* Corrupt index */ } } @@ -138554,7 +132099,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(90978))) + (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).FerrCode = uint8(_sqlite3CorruptError(tls, int32(90980))) return 0 /* Corruption */ } if (*TUnpackedRecord)(unsafe.Pointer(pPKey2)).Fn < nStr { @@ -138706,7 +132251,7 @@ func _sqlite3VdbeIdxRowid(tls *libc.TLS, db uintptr, pCur uintptr, rowid uintptr idx_rowid_corruption: ; _sqlite3VdbeMemReleaseMalloc(tls, bp+8) - return _sqlite3CorruptError(tls, int32(91136)) + return _sqlite3CorruptError(tls, int32(91138)) } // C documentation @@ -138737,7 +132282,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(91169)) + return _sqlite3CorruptError(tls, int32(91171)) } _sqlite3VdbeMemInit(tls, bp, db, uint16(0)) rc = _sqlite3VdbeMemFromBtreeZeroOffset(tls, pCur, uint32(nCellKey), bp) @@ -139154,7 +132699,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(91567)) + return _sqlite3MisuseError(tls, int32(91569)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*TVdbe)(unsafe.Pointer(v)).FstartTime > 0 { @@ -139481,12 +133026,12 @@ func Xsqlite3_value_free(tls *libc.TLS, pOld uintptr) { // ** The invokeValueDestructor(P,X) routine invokes destructor function X() // ** on value P if P is not going to be used and need to be destroyed. // */ -func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, xDel uintptr) { +func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc Tu8, __ccgo_fp_xDel uintptr) { var pOut uintptr 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(n), enc, __ccgo_fp_xDel) if rc != 0 { if rc == int32(SQLITE_TOOBIG) { Xsqlite3_result_error_toobig(tls, pCtx) @@ -139503,29 +133048,33 @@ func _setResultStrOrError(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, enc T } } -func _invokeValueDestructor(tls *libc.TLS, p uintptr, xDel uintptr, pCtx uintptr) (r int32) { - if xDel == uintptr(0) { +func _invokeValueDestructor(tls *libc.TLS, p uintptr, __ccgo_fp_xDel uintptr, pCtx uintptr) (r int32) { + if __ccgo_fp_xDel == uintptr(0) { /* noop */ } else { - if xDel == uintptr(-libc.Int32FromInt32(1)) { + if __ccgo_fp_xDel == uintptr(-libc.Int32FromInt32(1)) { /* noop */ } else { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, p) } } Xsqlite3_result_error_toobig(tls, pCtx) return int32(SQLITE_TOOBIG) } -func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(0), xDel) +type t__ccgo_fp__Xsqlite3_result_blob_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(0), __ccgo_fp_xDel) } -func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr) { +type t__ccgo_fp__Xsqlite3_result_blob64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_blob64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr) { if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, int32(n), uint8(0), xDel) + _setResultStrOrError(tls, pCtx, z, int32(n), uint8(0), __ccgo_fp_xDel) } } @@ -139555,13 +133104,15 @@ func Xsqlite3_result_null(tls *libc.TLS, pCtx uintptr) { _sqlite3VdbeMemSetNull(tls, (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut) } -func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, xDestructor uintptr) { +type t__ccgo_fp__Xsqlite3_result_pointer_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_pointer(tls *libc.TLS, pCtx uintptr, pPtr uintptr, zPType uintptr, __ccgo_fp_xDestructor uintptr) { var pOut uintptr _ = pOut pOut = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpOut _sqlite3VdbeMemRelease(tls, pOut) (*TMem)(unsafe.Pointer(pOut)).Fflags = uint16(MEM_Null) - _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, xDestructor) + _sqlite3VdbeMemSetPointer(tls, pOut, pPtr, zPType, __ccgo_fp_xDestructor) } func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { @@ -139573,11 +133124,15 @@ func Xsqlite3_result_subtype(tls *libc.TLS, pCtx uintptr, eSubtype uint32) { *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | libc.Int32FromInt32(MEM_Subtype)) } -func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, xDel uintptr) { - _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), xDel) +type t__ccgo_fp__Xsqlite3_result_text_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, n, uint8(SQLITE_UTF8), __ccgo_fp_xDel) } -func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, xDel uintptr, enc uint8) { +type t__ccgo_fp__Xsqlite3_result_text64_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) { if int32(enc) != int32(SQLITE_UTF8) { if int32(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) @@ -139585,23 +133140,29 @@ func Xsqlite3_result_text64(tls *libc.TLS, pCtx uintptr, z uintptr, n Tsqlite3_u n &= ^libc.Uint64FromInt32(1) } if n > uint64(0x7fffffff) { - _invokeValueDestructor(tls, z, xDel, pCtx) + _invokeValueDestructor(tls, z, __ccgo_fp_xDel, pCtx) } else { - _setResultStrOrError(tls, pCtx, z, int32(n), enc, xDel) + _setResultStrOrError(tls, pCtx, z, int32(n), enc, __ccgo_fp_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) +type t__ccgo_fp__Xsqlite3_result_text16_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_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) +type t__ccgo_fp__Xsqlite3_result_text16be_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16be(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16BE), __ccgo_fp_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) +type t__ccgo_fp__Xsqlite3_result_text16le_3 = func(*libc.TLS, uintptr) + +func Xsqlite3_result_text16le(tls *libc.TLS, pCtx uintptr, z uintptr, n int32, __ccgo_fp_xDel uintptr) { + _setResultStrOrError(tls, pCtx, z, int32(uint64(n) & ^libc.Uint64FromInt32(1)), uint8(SQLITE_UTF16LE), __ccgo_fp_xDel) } func Xsqlite3_result_value(tls *libc.TLS, pCtx uintptr, pValue uintptr) { @@ -139858,7 +133419,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(92361)) + return _sqlite3MisuseError(tls, int32(92363)) } db = (*TVdbe)(unsafe.Pointer(v)).Fdb Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -139988,7 +133549,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(92482)) + return _sqlite3MisuseError(tls, int32(92484)) } 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) @@ -140157,6 +133718,8 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_auxdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* @@ -140170,7 +133733,7 @@ func Xsqlite3_get_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32) (r uintptr) { // ** to all functions within the current prepared statement using iArg as an // ** access code. // */ -func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, xDelete uintptr) { +func Xsqlite3_set_auxdata(tls *libc.TLS, pCtx uintptr, iArg int32, pAux uintptr, __ccgo_fp_xDelete uintptr) { var pAuxData, pVdbe uintptr _, _ = pAuxData, pVdbe pVdbe = (*Tsqlite3_context)(unsafe.Pointer(pCtx)).FpVdbe @@ -140208,13 +133771,13 @@ 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 + (*TAuxData)(unsafe.Pointer(pAuxData)).FxDeleteAux = __ccgo_fp_xDelete return goto failed failed: ; - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pAux) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pAux) } } @@ -140714,14 +134277,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(93098)) + return _sqlite3MisuseError(tls, int32(93100)) } 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(93102))) + _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, _sqlite3MisuseError(tls, int32(93104))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) Xsqlite3_log(tls, int32(SQLITE_MISUSE), __ccgo_ts+6984, libc.VaList(bp+8, (*TVdbe)(unsafe.Pointer(p)).FzSql)) - return _sqlite3MisuseError(tls, int32(93106)) + return _sqlite3MisuseError(tls, int32(93108)) } if i >= uint32((*TVdbe)(unsafe.Pointer(p)).FnVar) { _sqlite3Error(tls, (*TVdbe)(unsafe.Pointer(p)).Fdb, int32(SQLITE_RANGE)) @@ -140759,7 +134322,7 @@ func _vdbeUnbind(tls *libc.TLS, p uintptr, i uint32) (r int32) { // /* // ** Bind a text or BLOB value. // */ -func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, xDel uintptr, encoding Tu8) (r int32) { +func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, __ccgo_fp_xDel uintptr, encoding Tu8) (r int32) { var p, pVar uintptr var rc int32 _, _, _ = p, pVar, rc @@ -140769,7 +134332,7 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, /* tag-20240917-01 */ if zData != uintptr(0) { pVar = (*TVdbe)(unsafe.Pointer(p)).FaVar + uintptr(i-int32(1))*40 - rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, xDel) + rc = _sqlite3VdbeMemSetStr(tls, pVar, zData, nData, encoding, __ccgo_fp_xDel) if rc == SQLITE_OK && int32(encoding) != 0 { rc = _sqlite3VdbeChangeEncoding(tls, pVar, int32((*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fenc)) } @@ -140780,24 +134343,28 @@ func _bindText(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Ti64, } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDel != libc.UintptrFromInt32(0) && xDel != uintptr(-libc.Int32FromInt32(1)) { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDel})))(tls, zData) + if __ccgo_fp_xDel != libc.UintptrFromInt32(0) && __ccgo_fp_xDel != uintptr(-libc.Int32FromInt32(1)) { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDel})))(tls, zData) } } return rc } +type t__ccgo_fp__Xsqlite3_bind_blob_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** 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)) +func Xsqlite3_bind_blob(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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)) +type t__ccgo_fp__Xsqlite3_bind_blob64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_blob64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_xDel, uint8(0)) } func Xsqlite3_bind_double(tls *libc.TLS, pStmt uintptr, i int32, rValue float64) (r int32) { @@ -140845,7 +134412,9 @@ func Xsqlite3_bind_null(tls *libc.TLS, pStmt uintptr, i int32) (r int32) { return rc } -func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, xDestructor uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_bind_pointer_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, zPTtype uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var p uintptr var rc int32 _, _ = p, rc @@ -140853,32 +134422,38 @@ func Xsqlite3_bind_pointer(tls *libc.TLS, pStmt uintptr, i int32, pPtr uintptr, rc = _vdbeUnbind(tls, p, uint32(i-libc.Int32FromInt32(1))) if rc == SQLITE_OK { /* tag-20240917-01 */ - _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*40, pPtr, zPTtype, xDestructor) + _sqlite3VdbeMemSetPointer(tls, (*TVdbe)(unsafe.Pointer(p)).FaVar+uintptr(i-int32(1))*40, pPtr, zPTtype, __ccgo_fp_xDestructor) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer((*TVdbe)(unsafe.Pointer(p)).Fdb)).Fmutex) } else { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pPtr) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pPtr) } } return rc } -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)) +type t__ccgo_fp__Xsqlite3_bind_text_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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) { +type t__ccgo_fp__Xsqlite3_bind_text64_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text64(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, nData Tsqlite3_uint64, __ccgo_fp_xDel uintptr, enc uint8) (r int32) { if int32(enc) != int32(SQLITE_UTF8) { if int32(enc) == int32(SQLITE_UTF16) { enc = uint8(SQLITE_UTF16LE) } nData &= ^libc.Uint64FromInt32(1) } - return _bindText(tls, pStmt, i, zData, int64(nData), xDel, enc) + return _bindText(tls, pStmt, i, zData, int64(nData), __ccgo_fp_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)) +type t__ccgo_fp__Xsqlite3_bind_text16_4 = func(*libc.TLS, uintptr) + +func Xsqlite3_bind_text16(tls *libc.TLS, pStmt uintptr, i int32, zData uintptr, n int32, __ccgo_fp_xDel uintptr) (r int32) { + return _bindText(tls, pStmt, i, zData, int64(uint64(n) & ^libc.Uint64FromInt32(1)), __ccgo_fp_xDel, uint8(SQLITE_UTF16LE)) } func Xsqlite3_bind_value(tls *libc.TLS, pStmt uintptr, i int32, pValue uintptr) (r int32) { @@ -141295,7 +134870,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(93649)) + rc = _sqlite3MisuseError(tls, int32(93651)) goto preupdate_old_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 { @@ -141357,7 +134932,7 @@ func Xsqlite3_preupdate_old(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp })(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FpTab + 44))).FpDfltList + 8 + uintptr(int32((*TColumn)(unsafe.Pointer(pCol)).FiDflt)-int32(1))*20))).FpExpr rc = _sqlite3ValueFromExpr(tls, db, pDflt, (*Tsqlite3)(unsafe.Pointer(db)).Fenc, uint8((*TColumn)(unsafe.Pointer(pCol)).Faffinity), bp) if rc == SQLITE_OK && *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { - rc = _sqlite3CorruptError(tls, int32(93708)) + rc = _sqlite3CorruptError(tls, int32(93710)) } *(*uintptr)(unsafe.Pointer((*TPreUpdate)(unsafe.Pointer(p)).FapDflt + uintptr(iIdx)*4)) = *(*uintptr)(unsafe.Pointer(bp)) } @@ -141458,7 +135033,7 @@ func Xsqlite3_preupdate_new(tls *libc.TLS, db uintptr, iIdx int32, ppValue uintp iStore = 0 p = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdate if !(p != 0) || (*TPreUpdate)(unsafe.Pointer(p)).Fop == int32(SQLITE_DELETE) { - rc = _sqlite3MisuseError(tls, int32(93804)) + rc = _sqlite3MisuseError(tls, int32(93806)) goto preupdate_new_out } if (*TPreUpdate)(unsafe.Pointer(p)).FpPk != 0 && (*TPreUpdate)(unsafe.Pointer(p)).Fop != int32(SQLITE_UPDATE) { @@ -144819,7 +138394,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { pOp = aOp + uintptr((*(*TOp)(unsafe.Pointer(aOp))).Fp3-int32(1))*20 goto _187 } else { - rc = _sqlite3CorruptError(tls, int32(97568)) + rc = _sqlite3CorruptError(tls, int32(97570)) goto abort_due_to_error } /* Opcode: TypeCheck P1 P2 P3 P4 * @@ -146729,7 +140304,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { ** into an integer without loss of information. Take care to avoid ** changing the datatype of pIn3, however, as it is used by other ** parts of the prepared statement. */ - *(*Tsqlite3_value1)(unsafe.Pointer(bp + 216)) = *(*TMem)(unsafe.Pointer(pIn3)) + *(*Tsqlite3_value)(unsafe.Pointer(bp + 216)) = *(*TMem)(unsafe.Pointer(pIn3)) _applyAffinity(tls, bp+216, int8(SQLITE_AFF_NUMERIC), encoding) if int32((*(*TMem)(unsafe.Pointer(bp + 216))).Fflags)&int32(MEM_Int) == 0 { goto jump_to_p2 @@ -146756,7 +140331,7 @@ func _sqlite3VdbeExec(tls *libc.TLS, p uintptr) (r int32) { (*TVdbeCursor)(unsafe.Pointer(pC10)).FseekResult = *(*int32)(unsafe.Pointer(bp + 208)) if *(*int32)(unsafe.Pointer(bp + 208)) != 0 { if (*TOp)(unsafe.Pointer(pOp)).Fp2 == 0 { - rc = _sqlite3CorruptError(tls, int32(99829)) + rc = _sqlite3CorruptError(tls, int32(99831)) } else { goto jump_to_p2 } @@ -147648,7 +141223,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(101126)) + rc = _sqlite3CorruptError(tls, int32(101128)) goto abort_due_to_error } _sqlite3VdbeMemInit(tls, bp+464, db, uint16(0)) @@ -148030,7 +141605,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(101419)) + rc = _sqlite3CorruptError(tls, int32(101421)) } _sqlite3DbFreeNN(tls, db, zSql) (*Tsqlite3)(unsafe.Pointer(db)).Finit1.Fbusy = uint8(0) @@ -149681,7 +143256,7 @@ abort_due_to_error: rc = int32(SQLITE_NOMEM) } else { if rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(33)< Banana -** aReadr[1] -> Feijoa -** aReadr[2] -> Elderberry -** aReadr[3] -> Currant -** aReadr[4] -> Grapefruit -** aReadr[5] -> Apple -** aReadr[6] -> Durian -** aReadr[7] -> EOF -** -** aTree[] = { X, 5 0, 5 0, 3, 5, 6 } -** -** The current element is "Apple" (the value of the key indicated by -** PmaReader 5). When the Next() operation is invoked, PmaReader 5 will -** be advanced to the next key in its segment. Say the next key is -** "Eggplant": -** -** aReadr[5] -> Eggplant -** -** The contents of aTree[] are updated first by comparing the new PmaReader -** 5 key to the current key of PmaReader 4 (still "Grapefruit"). The PmaReader -** 5 value is still smaller, so aTree[6] is set to 5. And so on up the tree. -** The value of PmaReader 6 - "Durian" - is now smaller than that of PmaReader -** 5, so aTree[3] is set to 6. Key 0 is smaller than key 6 (Bananafile2. And instead of using a -** background thread to prepare data for the PmaReader, with a single -** threaded IncrMerger the allocate part of pTask->file2 is "refilled" with -** keys from pMerger by the calling thread whenever the PmaReader runs out -** of data. - */ -type TIncrMerger1 = struct { - F__ccgo_align [0]uint32 - FpTask uintptr - FpMerger uintptr - FiStartOff Ti64 - FmxSz int32 - FbEof int32 - FbUseThread int32 - F__ccgo_align6 [4]byte - FaFile [2]TSorterFile -} - -type IncrMerger1 = TIncrMerger1 - -/* -** An instance of this object is used for writing a PMA. -** -** The PMA is written one record at a time. Each record is of an arbitrary -** size. But I/O is more efficient if it occurs in page-sized blocks where -** each block is aligned on a page boundary. This object caches writes to -** the PMA so that aligned, page-size blocks are written. - */ -type TPmaWriter1 = struct { - F__ccgo_align [0]uint32 - FeFWErr int32 - FaBuffer uintptr - FnBuffer int32 - FiBufStart int32 - FiBufEnd int32 - F__ccgo_align5 [4]byte - FiWriteOff Ti64 - FpFd uintptr - F__ccgo_pad7 [4]byte -} - -type PmaWriter1 = TPmaWriter1 - -/* -** This object is the header on a single record while that record is being -** held in memory and prior to being written out as part of a PMA. -** -** How the linked list is connected depends on how memory is being managed -** by this module. If using a separate allocation for each in-memory record -** (VdbeSorter.list.aMemory==0), then the list is always connected using the -** SorterRecord.u.pNext pointers. -** -** Or, if using the single large allocation method (VdbeSorter.list.aMemory!=0), -** then while records are being accumulated the list is linked using the -** SorterRecord.u.iNext offset. This is because the aMemory[] array may -** be sqlite3Realloc()ed while records are being accumulated. Once the VM -** has finished passing records to the sorter, or when the in-memory buffer -** is full, the list is sorted. As part of the sorting process, it is -** converted to use the SorterRecord.u.pNext pointers. See function -** vdbeSorterSort() for details. - */ -type TSorterRecord1 = struct { - FnVal int32 - Fu struct { - FiNext [0]int32 - FpNext uintptr - } -} - -type SorterRecord1 = TSorterRecord1 - // C documentation // // /* @@ -151112,7 +144392,7 @@ func _vdbeSorterMapFile(tls *libc.TLS, pTask uintptr, pFile uintptr, pp uintptr) rc = SQLITE_OK if (*TSorterFile)(unsafe.Pointer(pFile)).FiEof <= int64((*Tsqlite3)(unsafe.Pointer((*TVdbeSorter)(unsafe.Pointer((*TSortSubtask)(unsafe.Pointer(pTask)).FpSorter)).Fdb)).FnMaxSorterMmap) { pFd = (*TSorterFile)(unsafe.Pointer(pFile)).FpFd - if (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { rc = _sqlite3OsFetch(tls, pFd, 0, int32((*TSorterFile)(unsafe.Pointer(pFile)).FiEof), pp) } } @@ -151603,8 +144883,8 @@ func _vdbeSorterJoinThread(tls *libc.TLS, pTask uintptr) (r int32) { // /* // ** Launch a background thread to run xTask(pIn). // */ -func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, xTask uintptr, pIn uintptr) (r int32) { - return _sqlite3ThreadCreate(tls, pTask, xTask, pIn) +func _vdbeSorterCreateThread(tls *libc.TLS, pTask uintptr, __ccgo_fp_xTask uintptr, pIn uintptr) (r int32) { + return _sqlite3ThreadCreate(tls, pTask, __ccgo_fp_xTask, pIn) } // C documentation @@ -151799,7 +145079,7 @@ func _vdbeSorterExtendFile(tls *libc.TLS, db uintptr, pFd uintptr, _nByte Ti64) *(*Ti64)(unsafe.Pointer(bp)) = _nByte var _ /* chunksize at bp+12 */ int32 var _ /* p at bp+8 */ uintptr - if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { + if *(*Ti64)(unsafe.Pointer(bp)) <= int64((*Tsqlite3)(unsafe.Pointer(db)).FnMaxSorterMmap) && (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pFd)).FpMethods)).FiVersion >= int32(3) { *(*uintptr)(unsafe.Pointer(bp + 8)) = uintptr(0) *(*int32)(unsafe.Pointer(bp + 12)) = libc.Int32FromInt32(4) * libc.Int32FromInt32(1024) _sqlite3OsFileControlHint(tls, pFd, int32(SQLITE_FCNTL_CHUNK_SIZE), bp+12) @@ -153455,61 +146735,6 @@ type TFileChunk = struct { type FileChunk = TFileChunk -/* -** The rollback journal is composed of a linked list of these structures. -** -** The zChunk array is always at least 8 bytes in size - usually much more. -** Its actual size is stored in the MemJournal.nChunkSize variable. - */ -type TFileChunk1 = struct { - FpNext uintptr - FzChunk [8]Tu8 -} - -type FileChunk1 = TFileChunk1 - -/* -** By default, allocate this many bytes of memory for each FileChunk object. - */ - -/* -** For chunk size nChunkSize, return the number of bytes that should -** be allocated for each FileChunk structure. - */ - -/* -** An instance of this object serves as a cursor into the rollback journal. -** The cursor can be either for reading or writing. - */ -type TFilePoint1 = struct { - F__ccgo_align [0]uint32 - FiOffset Tsqlite3_int64 - FpChunk uintptr - F__ccgo_pad2 [4]byte -} - -type FilePoint1 = TFilePoint1 - -/* -** This structure is a subclass of sqlite3_file. Each open memory-journal -** is an instance of this class. - */ -type TMemJournal1 = struct { - F__ccgo_align [0]uint32 - FpMethod uintptr - FnChunkSize int32 - FnSpill int32 - FpFirst uintptr - Fendpoint TFilePoint - Freadpoint TFilePoint - Fflags int32 - FpVfs uintptr - FzJournal uintptr - F__ccgo_pad9 [4]byte -} - -type MemJournal1 = TMemJournal1 - // C documentation // // /* @@ -153806,7 +147031,7 @@ func _memjrnlFileSize(tls *libc.TLS, pJfd uintptr, pSize uintptr) (r int32) { // /* // ** Table of methods for MemJournal sqlite3_file object. // */ -var _MemJournalMethods = Tsqlite3_io_methods1{ +var _MemJournalMethods = Tsqlite3_io_methods{ FiVersion: int32(1), } @@ -158270,12 +151495,6 @@ type TEdupBuf = struct { type EdupBuf = TEdupBuf -type TEdupBuf1 = struct { - FzAlloc uintptr -} - -type EdupBuf1 = TEdupBuf1 - // C documentation // // /* @@ -161852,6 +155071,11 @@ expr_code_doover: case int32(TK_STRING): _sqlite3VdbeLoadString(tls, v, target, *(*uintptr)(unsafe.Pointer(pExpr + 8))) return target + case int32(TK_NULLS): + /* Set a range of registers to NULL. pExpr->y.nReg registers starting + ** with target */ + _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, target, target+*(*int32)(unsafe.Pointer(&(*TExpr)(unsafe.Pointer(pExpr)).Fy))-int32(1)) + return target default: /* Make NULL the default case so that if a bug causes an illegal ** Expr node to be passed into this function, it will be handled @@ -162389,6 +155613,27 @@ func _sqlite3ExprCodeRunJustOnce(tls *libc.TLS, pParse uintptr, pExpr uintptr, r return regDest } +// C documentation +// +// /* +// ** Make arrangements to invoke OP_Null on a range of registers +// ** during initialization. +// */ +func _sqlite3ExprNullRegisterRange(tls *libc.TLS, pParse uintptr, iReg int32, nReg int32) { + bp := tls.Alloc(64) + defer tls.Free(64) + var okConstFactor Tu8 + var _ /* t at bp+0 */ TExpr + _ = okConstFactor + okConstFactor = uint8(int32(Tbft(*(*uint8)(unsafe.Pointer(pParse + 32)) & 0x4 >> 2))) + libc.Xmemset(tls, bp, 0, uint32(52)) + (*(*TExpr)(unsafe.Pointer(bp))).Fop = uint8(TK_NULLS) + *(*int32)(unsafe.Pointer(bp + 44)) = nReg + libc.SetBitFieldPtr8Uint32(pParse+32, libc.Uint32FromInt32(1), 2, 0x4) + _sqlite3ExprCodeRunJustOnce(tls, pParse, bp, iReg) + libc.SetBitFieldPtr8Uint32(pParse+32, uint32(okConstFactor), 2, 0x4) +} + // C documentation // // /* @@ -162595,7 +155840,7 @@ func _sqlite3ExprCodeExprList(tls *libc.TLS, pParse uintptr, pList uintptr, targ // ** // ** The jumpIfNull parameter is ignored if xJumpIf is NULL. // */ -func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, xJump uintptr, jumpIfNull int32) { +func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, __ccgo_fp_xJump uintptr, jumpIfNull int32) { bp := tls.Alloc(160) defer tls.Free(160) var db, pDel uintptr @@ -162622,8 +155867,8 @@ func _exprCodeBetween(tls *libc.TLS, pParse uintptr, pExpr uintptr, dest int32, (*(*TExpr)(unsafe.Pointer(bp + 104))).FpLeft = pDel (*(*TExpr)(unsafe.Pointer(bp + 104))).FpRight = (*(*TExprList_item)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pExpr + 20)) + 8 + 1*20))).FpExpr _sqlite3ExprToRegister(tls, pDel, _exprCodeVector(tls, pParse, pDel, bp+156)) - if xJump != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{xJump})))(tls, pParse, bp, dest, jumpIfNull) + if __ccgo_fp_xJump != 0 { + (*(*func(*libc.TLS, uintptr, uintptr, int32, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xJump})))(tls, pParse, bp, dest, jumpIfNull) } else { /* Mark the expression is being from the ON or USING clause of a join ** so that the sqlite3ExprCodeTarget() routine will not attempt to move @@ -165040,31 +158285,6 @@ exit_rename_column: return } -/* -** Each RenameToken object maps an element of the parse tree into -** the token that generated that element. The parse tree element -** might be one of: -** -** * A pointer to an Expr that represents an ID -** * The name of a table column in Column.zName -** -** A list of RenameToken objects can be constructed during parsing. -** Each new object is created by sqlite3RenameTokenMap(). -** As the parse tree is transformed, the sqlite3RenameTokenRemap() -** routine is used to keep the mapping current. -** -** After the parse finishes, renameTokenFind() routine can be used -** to look up the actual token value that created some element in -** the parse tree. - */ -type TRenameToken1 = struct { - Fp uintptr - Ft TToken - FpNext uintptr -} - -type RenameToken1 = TRenameToken1 - // C documentation // // /* @@ -165081,16 +158301,6 @@ type TRenameCtx = struct { type RenameCtx = TRenameCtx -type TRenameCtx1 = struct { - FpList uintptr - FnList int32 - FiCol int32 - FpTab uintptr - FzOld uintptr -} - -type RenameCtx1 = TRenameCtx1 - // C documentation // // /* @@ -165393,9 +158603,9 @@ func _renameTokenFind(tls *libc.TLS, pParse uintptr, pCtx uintptr, pPtr uintptr) pToken = *(*uintptr)(unsafe.Pointer(pp)) if pCtx != 0 { *(*uintptr)(unsafe.Pointer(pp)) = (*TRenameToken)(unsafe.Pointer(pToken)).FpNext - (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FpList = pToken - (*TRenameCtx1)(unsafe.Pointer(pCtx)).FnList++ + (*TRenameToken)(unsafe.Pointer(pToken)).FpNext = (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList + (*TRenameCtx)(unsafe.Pointer(pCtx)).FpList = pToken + (*TRenameCtx)(unsafe.Pointer(pCtx)).FnList++ } return pToken } @@ -165589,7 +158799,7 @@ func _renameParseSql(tls *libc.TLS, p uintptr, zDb uintptr, db uintptr, zSql uin return int32(SQLITE_NOMEM) } if Xsqlite3_strnicmp(tls, zSql, __ccgo_ts+12839, int32(7)) != 0 { - return _sqlite3CorruptError(tls, int32(118888)) + return _sqlite3CorruptError(tls, int32(118915)) } if bTemp != 0 { (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(1) @@ -165608,7 +158818,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(118909)) + rc = _sqlite3CorruptError(tls, int32(118936)) } (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FiDb = uint8(0) return rc @@ -166672,7 +159882,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(119877)) + rc = _sqlite3CorruptError(tls, int32(119904)) goto drop_column_done } pCol = _renameTokenFind(tls, bp, uintptr(0), (*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(pTab)).FaCol + uintptr(iCol)*12))).FzCnName) @@ -167232,50 +160442,6 @@ type TStatSample = struct { type StatSample = TStatSample -type TStatSample1 = struct { - F__ccgo_align [0]uint32 - FanDLt uintptr - FanEq uintptr - FanLt uintptr - F__ccgo_align3 [4]byte - Fu struct { - F__ccgo_align [0]uint32 - FaRowid [0]uintptr - FiRowid Ti64 - } - FnRowid Tu32 - FisPSample Tu8 - FiCol int32 - FiHash Tu32 -} - -type StatSample1 = TStatSample1 - -type TStatAccum1 = struct { - F__ccgo_align [0]uint32 - Fdb uintptr - F__ccgo_align1 [4]byte - FnEst TtRowcnt - FnRow TtRowcnt - FnLimit int32 - FnCol int32 - FnKeyCol int32 - FnSkipAhead Tu8 - F__ccgo_align7 [3]byte - Fcurrent TStatSample - FnPSample TtRowcnt - FmxSample int32 - FiPrn Tu32 - FaBest uintptr - FiMin int32 - FnSample int32 - FnMaxEqZero int32 - FiGet int32 - Fa uintptr -} - -type StatAccum1 = TStatAccum1 - // C documentation // // /* Reclaim memory used by a StatSample @@ -168566,13 +161732,6 @@ type TanalysisInfo = struct { type analysisInfo = TanalysisInfo -type TanalysisInfo1 = struct { - Fdb uintptr - FzDatabase uintptr -} - -type analysisInfo1 = TanalysisInfo1 - // C documentation // // /* @@ -169771,6 +162930,8 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 return 0 } +type t__ccgo_fp__Xsqlite3_set_authorizer_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, uintptr, uintptr) int32 + /************** End of attach.c **********************************************/ /************** Begin file auth.c ********************************************/ /* @@ -169843,9 +163004,9 @@ func _sqlite3FixTriggerStep(tls *libc.TLS, pFix uintptr, pStep uintptr) (r int32 // ** Setting the auth function to NULL disables this hook. The default // ** setting of the auth function is NULL. // */ -func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, xAuth uintptr, pArg uintptr) (r int32) { +func Xsqlite3_set_authorizer(tls *libc.TLS, db uintptr, __ccgo_fp_xAuth uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = xAuth + (*Tsqlite3)(unsafe.Pointer(db)).FxAuth = __ccgo_fp_xAuth (*Tsqlite3)(unsafe.Pointer(db)).FpAuthArg = pArg if (*Tsqlite3)(unsafe.Pointer(db)).FxAuth != 0 { _sqlite3ExpirePreparedStatements(tls, db, int32(1)) @@ -170025,47 +163186,6 @@ func _sqlite3AuthContextPop(tls *libc.TLS, pContext uintptr) { } } -/************** End of auth.c ************************************************/ -/************** Begin file build.c *******************************************/ -/* -** 2001 September 15 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains C code routines that are called by the SQLite parser -** when syntax rules are reduced. The routines in this file handle the -** following kinds of SQL syntax: -** -** CREATE TABLE -** DROP TABLE -** CREATE INDEX -** DROP INDEX -** creating ID lists -** BEGIN TRANSACTION -** COMMIT -** ROLLBACK - */ -/* #include "sqliteInt.h" */ - -/* -** The TableLock structure is only used by the sqlite3TableLock() and -** codeTableLocks() functions. - */ -type TTableLock1 = struct { - FiDb int32 - FiTab TPgno - FisWriteLock Tu8 - FzLockName uintptr -} - -type TableLock1 = TTableLock1 - // C documentation // // /* @@ -170693,9 +163813,9 @@ func _sqlite3CollapseDatabaseArray(tls *libc.TLS, db uintptr) { break } pDb = (*Tsqlite3)(unsafe.Pointer(db)).FaDb + uintptr(i)*16 - if (*TDb1)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { - _sqlite3DbFree(tls, db, (*TDb1)(unsafe.Pointer(pDb)).FzDbSName) - (*TDb1)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) + if (*TDb)(unsafe.Pointer(pDb)).FpBt == uintptr(0) { + _sqlite3DbFree(tls, db, (*TDb)(unsafe.Pointer(pDb)).FzDbSName) + (*TDb)(unsafe.Pointer(pDb)).FzDbSName = uintptr(0) goto _1 } if j < i { @@ -174941,7 +168061,7 @@ func _sqlite3CreateIndex(tls *libc.TLS, pParse uintptr, pName1 uintptr, pName2 u (*TIndex)(unsafe.Pointer(pIndex)).Ftnum = (*Tsqlite3)(unsafe.Pointer(db)).Finit1.FnewTnum if _sqlite3IndexHasDuplicateRootPage(tls, pIndex) != 0 { _sqlite3ErrorMsg(tls, pParse, __ccgo_ts+16101, 0) - (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127355)) + (*TParse)(unsafe.Pointer(pParse)).Frc = _sqlite3CorruptError(tls, int32(127382)) goto exit_create_index } } @@ -180382,19 +173502,6 @@ type TSumCtx = struct { type SumCtx = TSumCtx -type TSumCtx1 = struct { - F__ccgo_align [0]uint32 - FrSum float64 - FrErr float64 - FiSum Ti64 - Fcnt Ti64 - Fapprox Tu8 - Fovrfl Tu8 - F__ccgo_pad6 [6]byte -} - -type SumCtx1 = TSumCtx1 - // C documentation // // /* @@ -180609,13 +173716,6 @@ type TCountCtx = struct { type CountCtx = TCountCtx -type TCountCtx1 = struct { - F__ccgo_align [0]uint32 - Fn Ti64 -} - -type CountCtx1 = TCountCtx1 - // C documentation // // /* @@ -183897,7 +176997,7 @@ func _exprColumnFlagUnion(tls *libc.TLS, pWalker uintptr, pExpr uintptr) (r int3 _ = p1 if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) == int32(TK_COLUMN) && int32((*TExpr)(unsafe.Pointer(pExpr)).FiColumn) >= 0 { p1 = pWalker + 20 - *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | int32((*(*TColumn)(unsafe.Pointer((*TTable1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 24)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*12))).FcolFlags)) + *(*Tu16)(unsafe.Pointer(p1)) = Tu16(int32(*(*Tu16)(unsafe.Pointer(p1))) | int32((*(*TColumn)(unsafe.Pointer((*TTable)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalker + 24)))).FaCol + uintptr((*TExpr)(unsafe.Pointer(pExpr)).FiColumn)*12))).FcolFlags)) } return WRC_Continue } @@ -185391,33 +178491,6 @@ type TIndexIterator = struct { type IndexIterator = TIndexIterator -type TIndexIterator1 = struct { - FeType int32 - Fi int32 - Fu struct { - Fax [0]struct { - FnIdx int32 - FaIdx uintptr - } - Flx struct { - FpIdx uintptr - } - F__ccgo_pad2 [4]byte - } -} - -type IndexIterator1 = TIndexIterator1 - -/* When IndexIterator.eType==1, then each index is an array of instances -** of the following object - */ -type TIndexListTerm1 = struct { - Fp uintptr - Fix int32 -} - -type IndexListTerm1 = TIndexListTerm1 - // C documentation // // /* Return the first index on the list */ @@ -186971,6 +180044,8 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin return r } +type t__ccgo_fp__Xsqlite3_exec_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + /************** End of insert.c **********************************************/ /************** Begin file legacy.c ******************************************/ /* @@ -187004,7 +180079,7 @@ func _xferOptimization(tls *libc.TLS, pParse uintptr, pDest uintptr, pSelect uin // ** argument to xCallback(). If xCallback=NULL then no callback // ** is invoked, even for queries. // */ -func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { +func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, __ccgo_fp_xCallback Tsqlite3_callback, pArg uintptr, pzErrMsg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var azCols, azVals uintptr @@ -187016,7 +180091,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c *(*uintptr)(unsafe.Pointer(bp + 4)) = uintptr(0) /* The current SQL statement */ azCols = uintptr(0) /* True if callback data is initialized */ if !(_sqlite3SafetyCheckOk(tls, db) != 0) { - return _sqlite3MisuseError(tls, int32(138224)) + return _sqlite3MisuseError(tls, int32(138251)) } if zSql == uintptr(0) { zSql = __ccgo_ts + 1674 @@ -187040,7 +180115,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c for int32(1) != 0 { rc = Xsqlite3_step(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) /* Invoke the callback function if required */ - if xCallback != 0 && (int32(SQLITE_ROW) == rc || int32(SQLITE_DONE) == rc && !(callbackIsInit != 0) && (*Tsqlite3)(unsafe.Pointer(db)).Fflags&uint64(SQLITE_NullCallback) != 0) { + if __ccgo_fp_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 + 4))) azCols = _sqlite3DbMallocRaw(tls, db, uint64(uint32(libc.Int32FromInt32(2)*nCol+libc.Int32FromInt32(1))*uint32(4))) @@ -187081,7 +180156,7 @@ func Xsqlite3_exec(tls *libc.TLS, db uintptr, zSql uintptr, xCallback Tsqlite3_c } *(*uintptr)(unsafe.Pointer(azVals + uintptr(i)*4)) = uintptr(0) } - if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { + if (*(*func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, pArg, nCol, azVals, azCols) != 0 { /* EVIDENCE-OF: R-38229-40159 If the callback function to ** sqlite3_exec() returns non-zero, then sqlite3_exec() will ** return SQLITE_ABORT. */ @@ -187128,330 +180203,6 @@ exec_out: return rc } -/************** End of legacy.c **********************************************/ -/************** Begin file loadext.c *****************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to dynamically load extensions into -** the SQLite library. - */ - -/************** Include sqlite3ext.h in the middle of loadext.c **************/ -/************** Begin file sqlite3ext.h **************************************/ -/* -** 2006 June 7 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This header file defines the SQLite interface for use by -** shared libraries that want to be imported as extensions into -** an SQLite instance. Shared libraries that intend to be loaded -** as extensions by SQLite should #include this file instead of -** sqlite3.h. - */ -/* #include "sqlite3.h" */ - -/* -** The following structure holds pointers to all of the SQLite API -** routines. -** -** WARNING: In order to maintain backwards compatibility, add new -** interfaces to the end of this structure only. If you insert new -** interfaces in the middle of this structure, then older different -** versions of SQLite will not be able to load each other's shared -** libraries! - */ -type Tsqlite3_api_routines1 = struct { - Faggregate_context uintptr - Faggregate_count uintptr - Fbind_blob uintptr - Fbind_double uintptr - Fbind_int uintptr - Fbind_int64 uintptr - Fbind_null uintptr - Fbind_parameter_count uintptr - Fbind_parameter_index uintptr - Fbind_parameter_name uintptr - Fbind_text uintptr - Fbind_text16 uintptr - Fbind_value uintptr - Fbusy_handler uintptr - Fbusy_timeout uintptr - Fchanges uintptr - Fclose1 uintptr - Fcollation_needed uintptr - Fcollation_needed16 uintptr - Fcolumn_blob uintptr - Fcolumn_bytes uintptr - Fcolumn_bytes16 uintptr - Fcolumn_count uintptr - Fcolumn_database_name uintptr - Fcolumn_database_name16 uintptr - Fcolumn_decltype uintptr - Fcolumn_decltype16 uintptr - Fcolumn_double uintptr - Fcolumn_int uintptr - Fcolumn_int64 uintptr - Fcolumn_name uintptr - Fcolumn_name16 uintptr - Fcolumn_origin_name uintptr - Fcolumn_origin_name16 uintptr - Fcolumn_table_name uintptr - Fcolumn_table_name16 uintptr - Fcolumn_text uintptr - Fcolumn_text16 uintptr - Fcolumn_type uintptr - Fcolumn_value uintptr - Fcommit_hook uintptr - Fcomplete uintptr - Fcomplete16 uintptr - Fcreate_collation uintptr - Fcreate_collation16 uintptr - Fcreate_function uintptr - Fcreate_function16 uintptr - Fcreate_module uintptr - Fdata_count uintptr - Fdb_handle uintptr - Fdeclare_vtab uintptr - Fenable_shared_cache uintptr - Ferrcode uintptr - Ferrmsg uintptr - Ferrmsg16 uintptr - Fexec uintptr - Fexpired uintptr - Ffinalize uintptr - Ffree uintptr - Ffree_table uintptr - Fget_autocommit uintptr - Fget_auxdata uintptr - Fget_table uintptr - Fglobal_recover uintptr - Finterruptx uintptr - Flast_insert_rowid uintptr - Flibversion uintptr - Flibversion_number uintptr - Fmalloc uintptr - Fmprintf uintptr - Fopen uintptr - Fopen16 uintptr - Fprepare uintptr - Fprepare16 uintptr - Fprofile uintptr - Fprogress_handler uintptr - Frealloc uintptr - Freset uintptr - Fresult_blob uintptr - Fresult_double uintptr - Fresult_error uintptr - Fresult_error16 uintptr - Fresult_int uintptr - Fresult_int64 uintptr - Fresult_null uintptr - Fresult_text uintptr - Fresult_text16 uintptr - Fresult_text16be uintptr - Fresult_text16le uintptr - Fresult_value uintptr - Frollback_hook uintptr - Fset_authorizer uintptr - Fset_auxdata uintptr - Fxsnprintf uintptr - Fstep uintptr - Ftable_column_metadata uintptr - Fthread_cleanup uintptr - Ftotal_changes uintptr - Ftrace uintptr - Ftransfer_bindings uintptr - Fupdate_hook uintptr - Fuser_data uintptr - Fvalue_blob uintptr - Fvalue_bytes uintptr - Fvalue_bytes16 uintptr - Fvalue_double uintptr - Fvalue_int uintptr - Fvalue_int64 uintptr - Fvalue_numeric_type uintptr - Fvalue_text uintptr - Fvalue_text16 uintptr - Fvalue_text16be uintptr - Fvalue_text16le uintptr - Fvalue_type uintptr - Fvmprintf uintptr - Foverload_function uintptr - Fprepare_v2 uintptr - Fprepare16_v2 uintptr - Fclear_bindings uintptr - Fcreate_module_v2 uintptr - Fbind_zeroblob uintptr - Fblob_bytes uintptr - Fblob_close uintptr - Fblob_open uintptr - Fblob_read uintptr - Fblob_write uintptr - Fcreate_collation_v2 uintptr - Ffile_control uintptr - Fmemory_highwater uintptr - Fmemory_used uintptr - Fmutex_alloc uintptr - Fmutex_enter uintptr - Fmutex_free uintptr - Fmutex_leave uintptr - Fmutex_try uintptr - Fopen_v2 uintptr - Frelease_memory uintptr - Fresult_error_nomem uintptr - Fresult_error_toobig uintptr - Fsleep uintptr - Fsoft_heap_limit uintptr - Fvfs_find uintptr - Fvfs_register uintptr - Fvfs_unregister uintptr - Fxthreadsafe uintptr - Fresult_zeroblob uintptr - Fresult_error_code uintptr - Ftest_control uintptr - Frandomness uintptr - Fcontext_db_handle uintptr - Fextended_result_codes uintptr - Flimit uintptr - Fnext_stmt uintptr - Fsql uintptr - Fstatus uintptr - Fbackup_finish uintptr - Fbackup_init uintptr - Fbackup_pagecount uintptr - Fbackup_remaining uintptr - Fbackup_step uintptr - Fcompileoption_get uintptr - Fcompileoption_used uintptr - Fcreate_function_v2 uintptr - Fdb_config uintptr - Fdb_mutex uintptr - Fdb_status uintptr - Fextended_errcode uintptr - Flog uintptr - Fsoft_heap_limit64 uintptr - Fsourceid uintptr - Fstmt_status uintptr - Fstrnicmp uintptr - Funlock_notify uintptr - Fwal_autocheckpoint uintptr - Fwal_checkpoint uintptr - Fwal_hook uintptr - Fblob_reopen uintptr - Fvtab_config uintptr - Fvtab_on_conflict uintptr - Fclose_v2 uintptr - Fdb_filename uintptr - Fdb_readonly uintptr - Fdb_release_memory uintptr - Ferrstr uintptr - Fstmt_busy uintptr - Fstmt_readonly uintptr - Fstricmp uintptr - Furi_boolean uintptr - Furi_int64 uintptr - Furi_parameter uintptr - Fxvsnprintf uintptr - Fwal_checkpoint_v2 uintptr - Fauto_extension uintptr - Fbind_blob64 uintptr - Fbind_text64 uintptr - Fcancel_auto_extension uintptr - Fload_extension uintptr - Fmalloc64 uintptr - Fmsize uintptr - Frealloc64 uintptr - Freset_auto_extension uintptr - Fresult_blob64 uintptr - Fresult_text64 uintptr - Fstrglob uintptr - Fvalue_dup uintptr - Fvalue_free uintptr - Fresult_zeroblob64 uintptr - Fbind_zeroblob64 uintptr - Fvalue_subtype uintptr - Fresult_subtype uintptr - Fstatus64 uintptr - Fstrlike uintptr - Fdb_cacheflush uintptr - Fsystem_errno uintptr - Ftrace_v2 uintptr - Fexpanded_sql uintptr - Fset_last_insert_rowid uintptr - Fprepare_v3 uintptr - Fprepare16_v3 uintptr - Fbind_pointer uintptr - Fresult_pointer uintptr - Fvalue_pointer uintptr - Fvtab_nochange uintptr - Fvalue_nochange uintptr - Fvtab_collation uintptr - Fkeyword_count uintptr - Fkeyword_name uintptr - Fkeyword_check uintptr - Fstr_new uintptr - Fstr_finish uintptr - Fstr_appendf uintptr - Fstr_vappendf uintptr - Fstr_append uintptr - Fstr_appendall uintptr - Fstr_appendchar uintptr - Fstr_reset uintptr - Fstr_errcode uintptr - Fstr_length uintptr - Fstr_value uintptr - Fcreate_window_function uintptr - Fnormalized_sql uintptr - Fstmt_isexplain uintptr - Fvalue_frombind uintptr - Fdrop_modules uintptr - Fhard_heap_limit64 uintptr - Furi_key uintptr - Ffilename_database uintptr - Ffilename_journal uintptr - Ffilename_wal uintptr - Fcreate_filename uintptr - Ffree_filename uintptr - Fdatabase_file_object uintptr - Ftxn_state uintptr - Fchanges64 uintptr - Ftotal_changes64 uintptr - Fautovacuum_pages uintptr - Ferror_offset uintptr - Fvtab_rhs_value uintptr - Fvtab_distinct uintptr - Fvtab_in uintptr - Fvtab_in_first uintptr - Fvtab_in_next uintptr - Fdeserialize uintptr - Fserialize uintptr - Fdb_name uintptr - Fvalue_encoding uintptr - Fis_interrupted uintptr - Fstmt_explain uintptr - Fget_clientdata uintptr - Fset_clientdata uintptr - Fsetlk_timeout uintptr -} - -type sqlite3_api_routines1 = Tsqlite3_api_routines1 - // C documentation // // /* @@ -188056,14 +180807,9 @@ type Tsqlite3AutoExtList = struct { type sqlite3AutoExtList = Tsqlite3AutoExtList -type Tsqlite3AutoExtList1 = struct { - FnExt Tu32 - FaExt uintptr -} - -type sqlite3AutoExtList1 = Tsqlite3AutoExtList1 +var _sqlite3Autoext = Tsqlite3AutoExtList{} -var _sqlite3Autoext = Tsqlite3AutoExtList1{} +type t__ccgo_fp__Xsqlite3_auto_extension_0 = func(*libc.TLS) /* The "wsdAutoext" macro will resolve to the autoextension ** state vector. If writable static data is unsupported on the target, @@ -188078,7 +180824,7 @@ var _sqlite3Autoext = Tsqlite3AutoExtList1{} // ** Register a statically linked extension that is automatically // ** loaded by every new database connection. // */ -func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var aNew, mutex uintptr var i Tu32 var nByte Tu64 @@ -188096,7 +180842,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i < _sqlite3Autoext.FnExt) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == __ccgo_fp_xInit { break } goto _1 @@ -188111,7 +180857,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { rc = int32(SQLITE_NOMEM) } else { _sqlite3Autoext.FaExt = aNew - *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) = xInit + *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) = __ccgo_fp_xInit _sqlite3Autoext.FnExt++ } } @@ -188121,6 +180867,8 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { return r } +type t__ccgo_fp__Xsqlite3_cancel_auto_extension_0 = func(*libc.TLS) + // C documentation // // /* @@ -188132,7 +180880,7 @@ func Xsqlite3_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { // ** Return 1 if xInit was found on the list and removed. Return 0 if xInit // ** was not on the list. // */ -func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { +func Xsqlite3_cancel_auto_extension(tls *libc.TLS, __ccgo_fp_xInit uintptr) (r int32) { var i, n int32 var mutex uintptr _, _, _ = i, mutex, n @@ -188144,7 +180892,7 @@ func Xsqlite3_cancel_auto_extension(tls *libc.TLS, xInit uintptr) (r int32) { if !(i >= 0) { break } - if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == xInit { + if *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) == __ccgo_fp_xInit { _sqlite3Autoext.FnExt-- *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(i)*4)) = *(*uintptr)(unsafe.Pointer(_sqlite3Autoext.FaExt + uintptr(_sqlite3Autoext.FnExt)*4)) n++ @@ -191915,26 +184663,6 @@ type TPragmaVtabCursor = struct { type PragmaVtabCursor = TPragmaVtabCursor -type TPragmaVtab1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr - FpName uintptr - FnHidden Tu8 - FiHidden Tu8 -} - -type PragmaVtab1 = TPragmaVtab1 - -type TPragmaVtabCursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FpPragma uintptr - FiRowid Tsqlite_int64 - FazArg [2]uintptr -} - -type PragmaVtabCursor1 = TPragmaVtabCursor1 - // C documentation // // /* @@ -192336,7 +185064,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) (*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(143765)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143792)) } else { if *(*uintptr)(unsafe.Pointer(azObj + 1*4)) != 0 { v1 = *(*uintptr)(unsafe.Pointer(azObj + 1*4)) @@ -192349,7 +185077,7 @@ func _corruptSchema(tls *libc.TLS, pData uintptr, azObj uintptr, zExtra uintptr) z = _sqlite3MPrintf(tls, db, __ccgo_ts+20374, libc.VaList(bp+8, z, zExtra)) } *(*uintptr)(unsafe.Pointer((*TInitData)(unsafe.Pointer(pData)).FpzErrMsg)) = z - (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143772)) + (*TInitData)(unsafe.Pointer(pData)).Frc = _sqlite3CorruptError(tls, int32(143799)) } } } @@ -192943,7 +185671,7 @@ func _sqlite3ParseObjectReset(tls *libc.TLS, pParse uintptr) { // ** // ** pObj = sqlite3ParserAddCleanup(pParse, destructor, pObj); // */ -func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, pPtr uintptr) (r uintptr) { +func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, __ccgo_fp_xCleanup uintptr, pPtr uintptr) (r uintptr) { var pCleanup uintptr _ = pCleanup if _sqlite3FaultSim(tls, int32(300)) != 0 { @@ -192956,9 +185684,9 @@ func _sqlite3ParserAddCleanup(tls *libc.TLS, pParse uintptr, xCleanup uintptr, p (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpNext = (*TParse)(unsafe.Pointer(pParse)).FpCleanup (*TParse)(unsafe.Pointer(pParse)).FpCleanup = pCleanup (*TParseCleanup)(unsafe.Pointer(pCleanup)).FpPtr = pPtr - (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = xCleanup + (*TParseCleanup)(unsafe.Pointer(pCleanup)).FxCleanup = __ccgo_fp_xCleanup } else { - (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) + (*(*func(*libc.TLS, uintptr, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCleanup})))(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pPtr) pPtr = uintptr(0) } return pPtr @@ -193145,7 +185873,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(144572)) + return _sqlite3MisuseError(tls, int32(144599)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _sqlite3BtreeEnterAll(tls, db) @@ -193279,7 +186007,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(144721)) + return _sqlite3MisuseError(tls, int32(144748)) } /* Make sure nBytes is non-negative and correct. It should be the ** number of bytes until the end of the input buffer or until the first @@ -193401,15 +186129,6 @@ type TDistinctCtx = struct { type DistinctCtx = TDistinctCtx -type TDistinctCtx1 = struct { - FisTnct Tu8 - FeTnctType Tu8 - FtabTnct int32 - FaddrTnct int32 -} - -type DistinctCtx1 = TDistinctCtx1 - // C documentation // // /* @@ -193445,21 +186164,6 @@ type TSortCtx = struct { type SortCtx = TSortCtx -type TSortCtx1 = struct { - FpOrderBy uintptr - FnOBSat int32 - FiECursor int32 - FregReturn int32 - FlabelBkOut int32 - FaddrSortIndex int32 - FlabelDone int32 - FlabelOBLopt int32 - FsortFlags Tu8 - FpDeferredRowLoad uintptr -} - -type SortCtx1 = TSortCtx1 - // C documentation // // /* @@ -194146,13 +186850,6 @@ type TRowLoadInfo = struct { type RowLoadInfo = TRowLoadInfo -type TRowLoadInfo1 = struct { - FregResult int32 - FecelFlags Tu8 -} - -type RowLoadInfo1 = TRowLoadInfo1 - // C documentation // // /* @@ -198127,18 +190824,6 @@ type TWhereConst = struct { type WhereConst = TWhereConst -type TWhereConst1 = struct { - FpParse uintptr - FpOomFault uintptr - FnConst int32 - FnChng int32 - FbHasAffBlob int32 - FmExcludeOn Tu32 - FapExpr uintptr -} - -type WhereConst1 = TWhereConst1 - // C documentation // // /* @@ -201731,6 +194416,7 @@ func _sqlite3Select(tls *libc.TLS, pParse uintptr, p uintptr, pDest uintptr) (r *(*int32)(unsafe.Pointer(pParse + 52)) += (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr _sqlite3VdbeAddOp2(tls, v, int32(OP_Integer), 0, iAbortFlag) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, iAMem, iAMem+(*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr-int32(1)) + _sqlite3ExprNullRegisterRange(tls, pParse, iAMem, (*TExprList)(unsafe.Pointer(pGroupBy)).FnExpr) /* Begin a loop that will extract all source rows in GROUP BY order. ** This might involve two separate loops with an OP_Sort in between, or ** it might be a single loop that uses an index to extract information @@ -206035,39 +198721,6 @@ var _aCopy = [10]uint8{ 8: uint8(BTREE_APPLICATION_ID), } -/************** End of vacuum.c **********************************************/ -/************** Begin file vtab.c ********************************************/ -/* -** 2006 June 10 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -************************************************************************* -** This file contains code used to help implement virtual tables. - */ -/* #include "sqliteInt.h" */ - -/* -** Before a virtual table xCreate() or xConnect() method is invoked, the -** sqlite3.pVtabCtx member variable is set to point to an instance of -** this struct allocated on the stack. It is used by the implementation of -** the sqlite3_declare_vtab() and sqlite3_vtab_config() APIs, both of which -** are invoked only from within xCreate and xConnect methods. - */ -type TVtabCtx1 = struct { - FpVTable uintptr - FpTab uintptr - FpPrior uintptr - FbDeclared int32 -} - -type VtabCtx1 = TVtabCtx1 - // C documentation // // /* @@ -206078,7 +198731,7 @@ type VtabCtx1 = TVtabCtx1 // ** If there already exists a module with zName, replace it with the new one. // ** If pModule==0, then delete the module zName if it exists. // */ -func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r uintptr) { +func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r uintptr) { var nName int32 var pDel, pMod, zCopy uintptr _, _, _, _ = nName, pDel, pMod, zCopy @@ -206097,7 +198750,7 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule (*TModule)(unsafe.Pointer(pMod)).FzName = zCopy (*TModule)(unsafe.Pointer(pMod)).FpModule = pModule (*TModule)(unsafe.Pointer(pMod)).FpAux = pAux - (*TModule)(unsafe.Pointer(pMod)).FxDestroy = xDestroy + (*TModule)(unsafe.Pointer(pMod)).FxDestroy = __ccgo_fp_xDestroy (*TModule)(unsafe.Pointer(pMod)).FpEpoTab = uintptr(0) (*TModule)(unsafe.Pointer(pMod)).FnRefModule = int32(1) } @@ -206122,15 +198775,15 @@ func _sqlite3VtabCreateModule(tls *libc.TLS, db uintptr, zName uintptr, pModule // ** This function implements the sqlite3_create_module() and // ** sqlite3_create_module_v2() interfaces. // */ -func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { +func _createModule(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, xDestroy) + _sqlite3VtabCreateModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) rc = _sqlite3ApiExit(tls, db, rc) - if rc != SQLITE_OK && xDestroy != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, pAux) + if rc != SQLITE_OK && __ccgo_fp_xDestroy != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, pAux) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc @@ -206145,13 +198798,15 @@ func Xsqlite3_create_module(tls *libc.TLS, db uintptr, zName uintptr, pModule ui return _createModule(tls, db, zName, pModule, pAux, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_module_v2_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** External API function used to create a new virtual-table module. // */ -func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, xDestroy uintptr) (r int32) { - return _createModule(tls, db, zName, pModule, pAux, xDestroy) +func Xsqlite3_create_module_v2(tls *libc.TLS, db uintptr, zName uintptr, pModule uintptr, pAux uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createModule(tls, db, zName, pModule, pAux, __ccgo_fp_xDestroy) } // C documentation @@ -206673,7 +199328,7 @@ func _sqlite3VtabArgExtend(tls *libc.TLS, pParse uintptr, p uintptr) { // ** pointer to the function to invoke is passed as the fourth parameter // ** to this procedure. // */ -func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, xConstruct uintptr, pzErr uintptr) (r int32) { +func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, __ccgo_fp_xConstruct uintptr, pzErr uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var azArg, pCtx, pVTable, zFormat, zModuleName, zType, p6 uintptr @@ -206734,7 +199389,7 @@ func _vtabCallConstructor(tls *libc.TLS, db uintptr, pTab uintptr, pMod uintptr, (*(*TVtabCtx)(unsafe.Pointer(bp))).FbDeclared = 0 (*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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConstruct})))(tls, db, (*TModule)(unsafe.Pointer(pMod)).FpAux, nArg, azArg, pVTable+8, bp+16) _sqlite3DeleteTable(tls, db, pTab) (*Tsqlite3)(unsafe.Pointer(db)).FpVtabCtx = (*(*TVtabCtx)(unsafe.Pointer(bp))).FpPrior if rc == int32(SQLITE_NOMEM) { @@ -207018,9 +199673,9 @@ func Xsqlite3_declare_vtab(tls *libc.TLS, db uintptr, zCreateTable uintptr) (r 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(158372))) + _sqlite3Error(tls, db, _sqlite3MisuseError(tls, int32(158400))) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - return _sqlite3MisuseError(tls, int32(158374)) + return _sqlite3MisuseError(tls, int32(158402)) } pTab = (*TVtabCtx)(unsafe.Pointer(pCtx)).FpTab _sqlite3ParseObjectInit(tls, bp, db) @@ -207602,7 +200257,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(158869)) + rc = _sqlite3MisuseError(tls, int32(158897)) } else { ap = va switch op { @@ -207615,7 +200270,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(158891)) + rc = _sqlite3MisuseError(tls, int32(158919)) break } _ = ap @@ -207782,289 +200437,9 @@ type TWhereLoop = struct { FaLTermSpace [3]uintptr } -type WhereLoop = TWhereLoop - -type TWherePath = struct { - F__ccgo_align [0]uint32 - FmaskLoop TBitmask - FrevLoop TBitmask - FnRow TLogEst - FrCost TLogEst - FrUnsort TLogEst - FisOrdered Ti8 - FaLoop uintptr - F__ccgo_pad7 [4]byte -} - -type WherePath = TWherePath - -type TWhereTerm = struct { - F__ccgo_align [0]uint32 - FpExpr uintptr - FpWC uintptr - FtruthProb TLogEst - FwtFlags Tu16 - FeOperator Tu16 - FnChild Tu8 - FeMatchOp Tu8 - FiParent int32 - FleftCursor int32 - Fu struct { - FpOrInfo [0]uintptr - FpAndInfo [0]uintptr - Fx struct { - FleftColumn int32 - FiField int32 - } - } - FprereqRight TBitmask - FprereqAll TBitmask -} - -type WhereTerm = TWhereTerm - -type TWhereLoopBuilder = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 -} - -type WhereLoopBuilder = TWhereLoopBuilder - -type TWhereScan = struct { - FpOrigWC uintptr - FpWC uintptr - FzCollName uintptr - FpIdxExpr uintptr - Fk int32 - FopMask Tu32 - Fidxaff int8 - FiEquiv uint8 - FnEquiv uint8 - FaiCur [11]int32 - FaiColumn [11]Ti16 -} - -type WhereScan = TWhereScan - -type TWhereOrCost = struct { - F__ccgo_align [0]uint32 - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst - F__ccgo_pad3 [4]byte -} - -type WhereOrCost = TWhereOrCost - -type TWhereOrSet = struct { - F__ccgo_align [0]uint32 - Fn Tu16 - F__ccgo_align1 [6]byte - Fa [3]TWhereOrCost -} - -type WhereOrSet = TWhereOrSet - -type TWhereMemBlock = struct { - F__ccgo_align [0]uint32 - FpNext uintptr - F__ccgo_align1 [4]byte - Fsz Tu64 -} - -type WhereMemBlock = TWhereMemBlock - -type TWhereRightJoin = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin = TWhereRightJoin - -/* -** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo object is destructed. - */ -type TWhereMemBlock1 = struct { - F__ccgo_align [0]uint32 - FpNext uintptr - F__ccgo_align1 [4]byte - Fsz Tu64 -} - -type WhereMemBlock1 = TWhereMemBlock1 - -/* -** Extra information attached to a WhereLevel that is a RIGHT JOIN. - */ -type TWhereRightJoin1 = struct { - FiMatch int32 - FregBloom int32 - FregReturn int32 - FaddrSubrtn int32 - FendSubrtn int32 -} - -type WhereRightJoin1 = TWhereRightJoin1 - -/* -** This object contains information needed to implement a single nested -** loop in WHERE clause. -** -** Contrast this object with WhereLoop. This object describes the -** implementation of the loop. WhereLoop describes the algorithm. -** This object contains a pointer to the WhereLoop algorithm as one of -** its elements. -** -** The WhereInfo object contains a single instance of this object for -** each term in the FROM clause (which is to say, for each of the -** nested loops as implemented). The order of WhereLevel objects determines -** the loop nested order, with WhereInfo.a[0] being the outer loop and -** WhereInfo.a[WhereInfo.nLevel-1] being the inner loop. - */ -type TWhereLevel1 = struct { - F__ccgo_align [0]uint32 - FiLeftJoin int32 - FiTabCur int32 - FiIdxCur int32 - FaddrBrk int32 - FaddrNxt int32 - FaddrSkip int32 - FaddrCont int32 - FaddrFirst int32 - FaddrBody int32 - FregBignull int32 - FaddrBignull int32 - FregFilter int32 - FpRJ uintptr - FiFrom Tu8 - Fop Tu8 - Fp3 Tu8 - Fp5 Tu8 - Fp1 int32 - Fp2 int32 - Fu struct { - FpCoveringIdx [0]uintptr - Fin struct { - FnIn int32 - FaInLoop uintptr - } - } - FpWLoop uintptr - F__ccgo_align21 [4]byte - FnotReady TBitmask -} - -type WhereLevel1 = TWhereLevel1 - -/* -** Each instance of this object represents an algorithm for evaluating one -** term of a join. Every term of the FROM clause will have at least -** one corresponding WhereLoop object (unless INDEXED BY constraints -** prevent a query solution - which is an error) and many terms of the -** FROM clause will have multiple WhereLoop objects, each describing a -** potential way of implementing that FROM-clause term, together with -** dependencies and cost estimates for using the chosen algorithm. -** -** Query planning consists of building up a collection of these WhereLoop -** objects, then computing a particular sequence of WhereLoop objects, with -** one WhereLoop object per FROM clause term, that satisfy all dependencies -** and that minimize the overall cost. - */ -type TWhereLoop1 = struct { - F__ccgo_align [0]uint32 - Fprereq TBitmask - FmaskSelf TBitmask - FiTab Tu8 - FiSortIdx Tu8 - FrSetup TLogEst - FrRun TLogEst - FnOut TLogEst - Fu struct { - Fvtab [0]struct { - FidxNum int32 - F__ccgo4 uint8 - FisOrdered Ti8 - FomitMask Tu16 - FidxStr uintptr - FmHandleIn Tu32 - } - Fbtree struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - } - } - FwsFlags Tu32 - FnLTerm Tu16 - FnSkip Tu16 - FnLSlot Tu16 - FaLTerm uintptr - FpNextLoop uintptr - FaLTermSpace [3]uintptr -} - -type WhereLoop1 = TWhereLoop1 - -/* This object holds the prerequisites and the cost of running a -** subquery on one operand of an OR operator in the WHERE clause. -** See WhereOrSet for additional information - */ -type TWhereOrCost1 = struct { - F__ccgo_align [0]uint32 - Fprereq TBitmask - FrRun TLogEst - FnOut TLogEst - F__ccgo_pad3 [4]byte -} - -type WhereOrCost1 = TWhereOrCost1 - -/* The WhereOrSet object holds a set of possible WhereOrCosts that -** correspond to the subquery(s) of OR-clause processing. Only the -** best N_OR_COST elements are retained. - */ -type TWhereOrSet1 = struct { - F__ccgo_align [0]uint32 - Fn Tu16 - F__ccgo_align1 [6]byte - Fa [3]TWhereOrCost -} - -type WhereOrSet1 = TWhereOrSet1 +type WhereLoop = TWhereLoop -/* -** Each instance of this object holds a sequence of WhereLoop objects -** that implement some or all of a query plan. -** -** Think of each WhereLoop object as a node in a graph with arcs -** showing dependencies and costs for travelling between nodes. (That is -** not a completely accurate description because WhereLoop costs are a -** vector, not a scalar, and because dependencies are many-to-one, not -** one-to-one as are graph nodes. But it is a useful visualization aid.) -** Then a WherePath object is a path through the graph that visits some -** or all of the WhereLoop objects once. -** -** The "solver" works by creating the N best WherePath objects of length -** 1. Then using those as a basis to compute the N best WherePath objects -** of length 2. And so forth until the length of WherePaths equals the -** number of nodes in the FROM clause. The best (lowest cost) WherePath -** at the end is the chosen query plan. - */ -type TWherePath1 = struct { +type TWherePath = struct { F__ccgo_align [0]uint32 FmaskLoop TBitmask FrevLoop TBitmask @@ -208076,60 +200451,9 @@ type TWherePath1 = struct { F__ccgo_pad7 [4]byte } -type WherePath1 = TWherePath1 +type WherePath = TWherePath -/* -** The query generator uses an array of instances of this structure to -** help it analyze the subexpressions of the WHERE clause. Each WHERE -** clause subexpression is separated from the others by AND operators, -** usually, or sometimes subexpressions separated by OR. -** -** All WhereTerms are collected into a single WhereClause structure. -** The following identity holds: -** -** WhereTerm.pWC->a[WhereTerm.idx] == WhereTerm -** -** When a term is of the form: -** -** X -** -** where X is a column name and is one of certain operators, -** then WhereTerm.leftCursor and WhereTerm.u.leftColumn record the -** cursor number and column number for X. WhereTerm.eOperator records -** the using a bitmask encoding defined by WO_xxx below. The -** use of a bitmask encoding for the operator allows us to search -** quickly for terms that match any of several different operators. -** -** A WhereTerm might also be two or more subterms connected by OR: -** -** (t1.X ) OR (t1.Y ) OR .... -** -** In this second case, wtFlag has the TERM_ORINFO bit set and eOperator==WO_OR -** and the WhereTerm.u.pOrInfo field points to auxiliary information that -** is collected about the OR clause. -** -** If a term in the WHERE clause does not match either of the two previous -** categories, then eOperator==0. The WhereTerm.pExpr field is still set -** to the original subexpression content and wtFlags is set up appropriately -** but no other fields in the WhereTerm object are meaningful. -** -** When eOperator!=0, prereqRight and prereqAll record sets of cursor numbers, -** but they do so indirectly. A single WhereMaskSet structure translates -** cursor number into bits and the translated bit is stored in the prereq -** fields. The translation is used in order to maximize the number of -** bits that will fit in a Bitmask. The VDBE cursor numbers might be -** spread out over the non-negative integers. For example, the cursor -** numbers might be 3, 8, 9, 10, 20, 23, 41, and 45. The WhereMaskSet -** translates these sparse cursor numbers into consecutive integers -** beginning with 0 in order to make the best possible use of the available -** bits in the Bitmask. So, in the example above, the cursor numbers -** would be mapped into integers 0 through 7. -** -** The number of terms in a join is limited by the number of bits -** in prereqRight and prereqAll. The default is 64 bits, hence SQLite -** is only able to process joins with 64 or fewer tables. - */ -type TWhereTerm1 = struct { +type TWhereTerm = struct { F__ccgo_align [0]uint32 FpExpr uintptr FpWC uintptr @@ -208152,17 +200476,23 @@ type TWhereTerm1 = struct { FprereqAll TBitmask } -type WhereTerm1 = TWhereTerm1 +type WhereTerm = TWhereTerm -/* -** Allowed values of WhereTerm.wtFlags - */ +type TWhereLoopBuilder = struct { + FpWInfo uintptr + FpWC uintptr + FpNew uintptr + FpOrSet uintptr + FpRec uintptr + FnRecValid int32 + FbldFlags1 uint8 + FbldFlags2 uint8 + FiPlanLimit uint32 +} -/* -** An instance of the WhereScan object is used as an iterator for locating -** terms in the WHERE clause that are useful to the query planner. - */ -type TWhereScan1 = struct { +type WhereLoopBuilder = TWhereLoopBuilder + +type TWhereScan = struct { FpOrigWC uintptr FpWC uintptr FzCollName uintptr @@ -208176,167 +200506,45 @@ type TWhereScan1 = struct { FaiColumn [11]Ti16 } -type WhereScan1 = TWhereScan1 - -/* -** An instance of the following structure holds all information about a -** WHERE clause. Mostly this is a container for one or more WhereTerms. -** -** Explanation of pOuter: For a WHERE clause of the form -** -** a AND ((b AND c) OR (d AND e)) AND f -** -** There are separate WhereClause objects for the whole clause and for -** the subclauses "(b AND c)" and "(d AND e)". The pOuter field of the -** subclauses points to the WhereClause object for the whole clause. - */ -type TWhereClause1 = struct { - F__ccgo_align [0]uint32 - FpWInfo uintptr - FpOuter uintptr - Fop Tu8 - FhasOr Tu8 - FnTerm int32 - FnSlot int32 - FnBase int32 - Fa uintptr - F__ccgo_align8 [4]byte - FaStatic [8]TWhereTerm -} - -type WhereClause1 = TWhereClause1 - -/* -** A WhereTerm with eOperator==WO_OR has its u.pOrInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereOrInfo1 = struct { - F__ccgo_align [0]uint32 - Fwc TWhereClause - Findexable TBitmask -} - -type WhereOrInfo1 = TWhereOrInfo1 +type WhereScan = TWhereScan -/* -** A WhereTerm with eOperator==WO_AND has its u.pAndInfo pointer set to -** a dynamically allocated instance of the following structure. - */ -type TWhereAndInfo1 = struct { +type TWhereOrCost = struct { F__ccgo_align [0]uint32 - Fwc TWhereClause + Fprereq TBitmask + FrRun TLogEst + FnOut TLogEst + F__ccgo_pad3 [4]byte } -type WhereAndInfo1 = TWhereAndInfo1 +type WhereOrCost = TWhereOrCost -/* -** An instance of the following structure keeps track of a mapping -** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. -** -** The VDBE cursor numbers are small integers contained in -** SrcItem.iCursor and Expr.iTable fields. For any given WHERE -** clause, the cursor numbers might not begin with 0 and they might -** contain gaps in the numbering sequence. But we want to make maximum -** use of the bits in our bitmasks. This structure provides a mapping -** from the sparse cursor numbers into consecutive integers beginning -** with 0. -** -** If WhereMaskSet.ix[A]==B it means that The A-th bit of a Bitmask -** corresponds VDBE cursor number B. The A-th bit of a bitmask is 1<3, 5->1, 8->2, 29->0, -** 57->5, 73->4. Or one of 719 other combinations might be used. It -** does not really matter. What is important is that sparse cursor -** numbers all get mapped into bit numbers that begin with 0 and contain -** no gaps. - */ -type TWhereMaskSet1 = struct { - FbVarSelect int32 - Fn int32 - Fix [64]int32 +type TWhereOrSet = struct { + F__ccgo_align [0]uint32 + Fn Tu16 + F__ccgo_align1 [6]byte + Fa [3]TWhereOrCost } -type WhereMaskSet1 = TWhereMaskSet1 +type WhereOrSet = TWhereOrSet -/* -** This object is a convenience wrapper holding all information needed -** to construct WhereLoop objects for a particular query. - */ -type TWhereLoopBuilder1 = struct { - FpWInfo uintptr - FpWC uintptr - FpNew uintptr - FpOrSet uintptr - FpRec uintptr - FnRecValid int32 - FbldFlags1 uint8 - FbldFlags2 uint8 - FiPlanLimit uint32 +type TWhereMemBlock = struct { + F__ccgo_align [0]uint32 + FpNext uintptr + F__ccgo_align1 [4]byte + Fsz Tu64 } -type WhereLoopBuilder1 = TWhereLoopBuilder1 - -/* Allowed values for WhereLoopBuider.bldFlags */ - -/* The WhereLoopBuilder.iPlanLimit is used to limit the number of -** index+constraint combinations the query planner will consider for a -** particular query. If this parameter is unlimited, then certain -** pathological queries can spend excess time in the sqlite3WhereBegin() -** routine. The limit is high enough that is should not impact real-world -** queries. -** -** SQLITE_QUERY_PLANNER_LIMIT is the baseline limit. The limit is -** increased by SQLITE_QUERY_PLANNER_LIMIT_INCR before each term of the FROM -** clause is processed, so that every table in a join is guaranteed to be -** able to propose a some index+constraint combinations even if the initial -** baseline limit was exhausted by prior tables of the join. - */ +type WhereMemBlock = TWhereMemBlock -/* -** The WHERE clause processing routine has two halves. The -** first part does the start of the WHERE loop and the second -** half does the tail of the WHERE loop. An instance of -** this structure is returned by the first half and passed -** into the second half to give some continuity. -** -** An instance of this object holds the complete state of the query -** planner. - */ -type TWhereInfo1 = struct { - F__ccgo_align [0]uint32 - FpParse uintptr - FpTabList uintptr - FpOrderBy uintptr - FpResultSet uintptr - FpSelect uintptr - FaiCurOnePass [2]int32 - FiContinue int32 - FiBreak int32 - FsavedNQueryLoop int32 - FwctrlFlags Tu16 - FiLimit TLogEst - FnLevel Tu8 - FnOBSat Ti8 - FeOnePass Tu8 - FeDistinct Tu8 - F__ccgo48 uint8 - FnRowOut TLogEst - FiTop int32 - FiEndWhere int32 - FpLoops uintptr - FpMemToFree uintptr - F__ccgo_align26 [4]byte - FrevMask TBitmask - FsWC TWhereClause - FsMaskSet TWhereMaskSet +type TWhereRightJoin = struct { + FiMatch int32 + FregBloom int32 + FregReturn int32 + FaddrSubrtn int32 + FendSubrtn int32 } -type WhereInfo1 = TWhereInfo1 +type WhereRightJoin = TWhereRightJoin /* ** Bitmasks for the operators on WhereTerm objects. These are all @@ -208682,10 +200890,10 @@ func _sqlite3WhereExplainOneScan(tls *libc.TLS, pParse uintptr, pTabList uintptr v1 = pParse } if int32((*TParse)(unsafe.Pointer(v1)).Fexplain) == int32(2) || libc.Bool(0 != 0) { - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_MULTI_OR) == uint32(0) && int32(wctrlFlags)&int32(WHERE_OR_SUBCLAUSE) == 0 { v = (*TParse)(unsafe.Pointer(pParse)).FpVdbe addr = _sqlite3VdbeCurrentAddr(tls, v) - ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) + ret = _sqlite3VdbeAddOp3(tls, v, int32(OP_Explain), addr, (*TParse)(unsafe.Pointer(pParse)).FaddrExplain, int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FrRun)) _sqlite3WhereAddExplainText(tls, pParse, addr, pTabList, pLevel, wctrlFlags) } } @@ -209308,7 +201516,7 @@ func _codeEqualityTerm(tls *libc.TLS, pParse uintptr, pTerm uintptr, pLevel uint ** not a transitive constraint. For an example of where that does not ** work, see https://sqlite.org/forum/forumpost/eb8613976a (2021-05-04) */ - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags&uint32(WHERE_TRANSCONS) == uint32(0) || int32((*TWhereTerm)(unsafe.Pointer(pTerm)).FeOperator)&int32(WO_EQUIV) == 0 { _disableTerm(tls, pLevel, pTerm) } return iReg @@ -209658,7 +201866,7 @@ func _filterPullDown(tls *libc.TLS, pParse uintptr, pWInfo uintptr, iLevel int32 if (*TWhereLevel)(unsafe.Pointer(pLevel)).FregFilter == 0 { continue } - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FnSkip != 0 { continue } /* ,--- Because sqlite3ConstructBloomFilter() has will not have set @@ -211204,7 +203412,7 @@ func _sqlite3WhereRightJoinLoop(tls *libc.TLS, pWInfo uintptr, iLevel int32, pLe break } pRight = (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FiFrom)*48 - mAll |= (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FpWLoop)).FmaskSelf + mAll |= (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760 + uintptr(k)*88))).FpWLoop)).FmaskSelf if int32(*(*uint32)(unsafe.Pointer(pRight + 12 + 4))&0x40>>6) != 0 { pSubq = *(*uintptr)(unsafe.Pointer(pRight + 44)) _sqlite3VdbeAddOp3(tls, v, int32(OP_Null), 0, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult, (*TSubquery)(unsafe.Pointer(pSubq)).FregResult+(*TExprList)(unsafe.Pointer((*TSelect)(unsafe.Pointer((*TSubquery)(unsafe.Pointer(pSubq)).FpSelect)).FpEList)).FnExpr-int32(1)) @@ -213343,16 +205551,6 @@ type THiddenIndexInfo = struct { type HiddenIndexInfo = THiddenIndexInfo -type THiddenIndexInfo1 = struct { - FpWC uintptr - FpParse uintptr - FeDistinct int32 - FmIn Tu32 - FmHandleIn Tu32 -} - -type HiddenIndexInfo1 = THiddenIndexInfo1 - // C documentation // // /* @@ -213465,7 +205663,7 @@ func _sqlite3WhereMinMaxOptEarlyOut(tls *libc.TLS, v uintptr, pWInfo uintptr) { break } pInner = pWInfo + 760 + uintptr(i)*88 - if (*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { + if (*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pInner)).FpWLoop)).FwsFlags&uint32(WHERE_COLUMN_IN) != uint32(0) { _sqlite3VdbeGoto(tls, v, (*TWhereLevel)(unsafe.Pointer(pInner)).FaddrNxt) return } @@ -214983,10 +207181,10 @@ func _allocateIndexInfo(tls *libc.TLS, pWInfo uintptr, pWC uintptr, mUnusable TB i++ } } - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpWC = pWC - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FpParse = pParse - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct - (*THiddenIndexInfo1)(unsafe.Pointer(pHidden)).FmIn = uint32(0) + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpWC = pWC + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FpParse = pParse + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FeDistinct = eDistinct + (*THiddenIndexInfo)(unsafe.Pointer(pHidden)).FmIn = uint32(0) p = pWC v10 = libc.Int32FromInt32(0) j = v10 @@ -217267,15 +209465,6 @@ type TCoveringIndexCheck = struct { type CoveringIndexCheck = TCoveringIndexCheck -type TCoveringIndexCheck1 = struct { - FpIdx uintptr - FiTabCur int32 - FbExpr Tu8 - FbUnidx Tu8 -} - -type CoveringIndexCheck1 = TCoveringIndexCheck1 - // C documentation // // /* @@ -217307,7 +209496,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp if (*TExpr)(unsafe.Pointer(pExpr)).FiTable != (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FiTabCur { return WRC_Continue } - pIdx = (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FpIdx + pIdx = (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FpIdx aiColumn = (*TIndex)(unsafe.Pointer(pIdx)).FaiColumn nColumn = (*TIndex)(unsafe.Pointer(pIdx)).FnColumn i = 0 @@ -217326,7 +209515,7 @@ func _whereIsCoveringIndexWalkCallback(tls *libc.TLS, pWalk uintptr, pExpr uintp (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbUnidx = uint8(1) return int32(WRC_Abort) } else { - if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck1)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FiTabCur) != 0 { + if int32(uint32(*(*uint16)(unsafe.Pointer(pIdx + 56))&0x800>>11)) != 0 && _exprIsCoveredByIndex(tls, pExpr, pIdx, (*TCoveringIndexCheck)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(pWalk + 24)))).FiTabCur) != 0 { (*TCoveringIndexCheck)(unsafe.Pointer(pCk)).FbExpr = uint8(1) return int32(WRC_Prune) } @@ -217363,7 +209552,7 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur bp := tls.Alloc(48) defer tls.Free(48) var i, rc int32 - var _ /* ck at bp+0 */ TCoveringIndexCheck1 + var _ /* ck at bp+0 */ TCoveringIndexCheck var _ /* w at bp+12 */ TWalker _, _ = i, rc if (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect == uintptr(0) { @@ -217392,19 +209581,19 @@ func _whereIsCoveringIndex(tls *libc.TLS, pWInfo uintptr, pIdx uintptr, iTabCur return uint32(0) } } - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FpIdx = pIdx - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FiTabCur = iTabCur - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr = uint8(0) - (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FpIdx = pIdx + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FiTabCur = iTabCur + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr = uint8(0) + (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx = uint8(0) libc.Xmemset(tls, bp+12, 0, uint32(28)) (*(*TWalker)(unsafe.Pointer(bp + 12))).FxExprCallback = __ccgo_fp(_whereIsCoveringIndexWalkCallback) (*(*TWalker)(unsafe.Pointer(bp + 12))).FxSelectCallback = __ccgo_fp(_sqlite3SelectWalkNoop) *(*uintptr)(unsafe.Pointer(bp + 12 + 24)) = bp _sqlite3WalkSelect(tls, bp+12, (*TWhereInfo)(unsafe.Pointer(pWInfo)).FpSelect) - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbUnidx != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbUnidx != 0 { rc = 0 } else { - if (*(*TCoveringIndexCheck1)(unsafe.Pointer(bp))).FbExpr != 0 { + if (*(*TCoveringIndexCheck)(unsafe.Pointer(bp))).FbExpr != 0 { rc = int32(WHERE_EXPRIDX) } else { rc = int32(WHERE_IDX_ONLY) @@ -217706,6 +209895,14 @@ func _whereLoopAddBtree(tls *libc.TLS, pBuilder uintptr, mPrereq TBitmask) (r in FpIndex uintptr FpOrderBy uintptr })(unsafe.Pointer(pNew + 24))).FnTop = uint16(0) + (*(*struct { + FnEq Tu16 + FnBtm Tu16 + FnTop Tu16 + FnDistinctCol Tu16 + FpIndex uintptr + FpOrderBy uintptr + })(unsafe.Pointer(pNew + 24))).FnDistinctCol = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnSkip = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FnLTerm = uint16(0) (*TWhereLoop)(unsafe.Pointer(pNew)).FiSortIdx = uint8(0) @@ -218248,7 +210445,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(168932)) /* EV: R-30545-25046 */ + rc = _sqlite3MisuseError(tls, int32(168961)) /* EV: R-30545-25046 */ } else { if *(*uintptr)(unsafe.Pointer(pH + 20 + uintptr(iCons)*4)) == uintptr(0) { pTerm = _termFromWhereClause(tls, (*THiddenIndexInfo)(unsafe.Pointer(pH)).FpWC, (*(*Tsqlite3_index_constraint)(unsafe.Pointer((*Tsqlite3_index_info)(unsafe.Pointer(pIdxInfo)).FaConstraint + uintptr(iCons)*12))).FiTermOffset) @@ -218913,17 +211110,6 @@ func _wherePathSatisfiesOrderBy(tls *libc.TLS, pWInfo uintptr, pOrderBy uintptr, *(*TBitmask)(unsafe.Pointer(bp)) = obDone } break - } else { - if int32(wctrlFlags)&int32(WHERE_DISTINCTBY) != 0 { - (*(*struct { - FnEq Tu16 - FnBtm Tu16 - FnTop Tu16 - FnDistinctCol Tu16 - FpIndex uintptr - FpOrderBy uintptr - })(unsafe.Pointer(pLoop + 24))).FnDistinctCol = uint16(0) - } } iCur = (*(*TSrcItem)(unsafe.Pointer((*TWhereInfo)(unsafe.Pointer(pWInfo)).FpTabList + 8 + uintptr((*TWhereLoop)(unsafe.Pointer(pLoop)).FiTab)*48))).FiCursor /* Mark off any ORDER BY term X that is a column in the table of @@ -220898,7 +213084,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere ** that use the OR optimization. */ if int32(wctrlFlags)&int32(WHERE_ONEPASS_DESIRED) != 0 { - wsFlags = int32((*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760))).FpWLoop)).FwsFlags) + wsFlags = int32((*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760))).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))).FpSTab)).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 { @@ -220911,7 +213097,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere if int32(wctrlFlags)&int32(WHERE_ONEPASS_MULTIROW) != 0 { bFordelete = uint8(OPFLAG_FORDELETE) } - (*TWhereLoop1)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760))).FpWLoop)).FwsFlags = uint32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) + (*TWhereLoop)(unsafe.Pointer((*(*TWhereLevel)(unsafe.Pointer(pWInfo + 760))).FpWLoop)).FwsFlags = uint32(wsFlags & ^libc.Int32FromInt32(WHERE_IDX_ONLY)) } } } @@ -221090,7 +213276,7 @@ func _sqlite3WhereBegin(tls *libc.TLS, pParse uintptr, pTabList uintptr, pWhere goto whereBeginError } pLevel = pWInfo + 760 + uintptr(ii)*88 - wsFlags1 = int32((*TWhereLoop1)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) + wsFlags1 = int32((*TWhereLoop)(unsafe.Pointer((*TWhereLevel)(unsafe.Pointer(pLevel)).FpWLoop)).FwsFlags) pSrc = pTabList + 8 + uintptr((*TWhereLevel)(unsafe.Pointer(pLevel)).FiFrom)*48 if int32(*(*uint32)(unsafe.Pointer(pSrc + 12 + 4))&0x20>>5) != 0 { iOnce = 0 @@ -222429,16 +214615,6 @@ type TWindowRewrite = struct { type WindowRewrite = TWindowRewrite -type TWindowRewrite1 = struct { - FpWin uintptr - FpSrc uintptr - FpSub uintptr - FpTab uintptr - FpSubSelect uintptr -} - -type WindowRewrite1 = TWindowRewrite1 - // C documentation // // /* @@ -222457,17 +214633,17 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( ** TK_COLUMN expressions that refer to it (the outer SELECT). Do ** not process aggregates or window functions at all, as they belong ** to the scalar sub-select. */ - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect != 0 { if int32((*TExpr)(unsafe.Pointer(pExpr)).Fop) != int32(TK_COLUMN) { return WRC_Continue } else { - nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc)).FnSrc + nSrc = (*TSrcList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc)).FnSrc i = 0 for { if !(i < nSrc) { break } - if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*48))).FiCursor { + if (*TExpr)(unsafe.Pointer(pExpr)).FiTable == (*(*TSrcItem)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSrc + 8 + uintptr(i)*48))).FiCursor { break } goto _1 @@ -222485,7 +214661,7 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if !((*TExpr)(unsafe.Pointer(pExpr)).Fflags&uint32(libc.Int32FromInt32(EP_WinFunc)) != libc.Uint32FromInt32(0)) { break } else { - pWin = (*TWindowRewrite1)(unsafe.Pointer(p)).FpWin + pWin = (*TWindowRewrite)(unsafe.Pointer(p)).FpWin for { if !(pWin != 0) { break @@ -222509,13 +214685,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { return int32(WRC_Abort) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { i1 = 0 for { - if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr) { + if !(i1 < (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr) { break } - if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*20))).FpExpr, pExpr, -int32(1)) { + if 0 == _sqlite3ExprCompare(tls, uintptr(0), (*(*TExprList_item)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub + 8 + uintptr(i1)*20))).FpExpr, pExpr, -int32(1)) { iCol = i1 break } @@ -222530,9 +214706,9 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( if pDup != 0 && int32((*TExpr)(unsafe.Pointer(pDup)).Fop) == int32(TK_AGG_FUNCTION) { (*TExpr)(unsafe.Pointer(pDup)).Fop = uint8(TK_FUNCTION) } - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub, pDup) + (*TWindowRewrite)(unsafe.Pointer(p)).FpSub = _sqlite3ExprListAppend(tls, pParse, (*TWindowRewrite)(unsafe.Pointer(p)).FpSub, pDup) } - if (*TWindowRewrite1)(unsafe.Pointer(p)).FpSub != 0 { + if (*TWindowRewrite)(unsafe.Pointer(p)).FpSub != 0 { f = int32((*TExpr)(unsafe.Pointer(pExpr)).Fflags & uint32(EP_Collate)) *(*Tu32)(unsafe.Pointer(pExpr + 4)) |= uint32(libc.Int32FromInt32(EP_Static)) _sqlite3ExprDelete(tls, (*TParse)(unsafe.Pointer(pParse)).Fdb, pExpr) @@ -222540,13 +214716,13 @@ func _selectWindowRewriteExprCb(tls *libc.TLS, pWalker uintptr, pExpr uintptr) ( libc.Xmemset(tls, pExpr, 0, uint32(52)) (*TExpr)(unsafe.Pointer(pExpr)).Fop = uint8(TK_COLUMN) if iCol < 0 { - v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) + v4 = (*TExprList)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpSub)).FnExpr - int32(1) } else { v4 = iCol } (*TExpr)(unsafe.Pointer(pExpr)).FiColumn = int16(v4) - (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite1)(unsafe.Pointer(p)).FpWin)).FiEphCsr - (*TExpr)(unsafe.Pointer(pExpr)).Fy.FpTab = (*TWindowRewrite1)(unsafe.Pointer(p)).FpTab + (*TExpr)(unsafe.Pointer(pExpr)).FiTable = (*TWindow)(unsafe.Pointer((*TWindowRewrite)(unsafe.Pointer(p)).FpWin)).FiEphCsr + (*TExpr)(unsafe.Pointer(pExpr)).Fy.FpTab = (*TWindowRewrite)(unsafe.Pointer(p)).FpTab (*TExpr)(unsafe.Pointer(pExpr)).Fflags = uint32(f) } if (*Tsqlite3)(unsafe.Pointer((*TParse)(unsafe.Pointer(pParse)).Fdb)).FmallocFailed != 0 { @@ -222562,13 +214738,13 @@ func _selectWindowRewriteSelectCb(tls *libc.TLS, pWalker uintptr, pSelect uintpt var p, pSave uintptr _, _ = p, pSave p = *(*uintptr)(unsafe.Pointer(pWalker + 24)) - pSave = (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect + pSave = (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect if pSave == pSelect { return WRC_Continue } else { - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSelect + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSelect _sqlite3WalkSelect(tls, pWalker, pSelect) - (*TWindowRewrite1)(unsafe.Pointer(p)).FpSubSelect = pSave + (*TWindowRewrite)(unsafe.Pointer(p)).FpSubSelect = pSave } return int32(WRC_Prune) } @@ -223345,87 +215521,6 @@ type TWindowCsrAndReg = struct { type WindowCsrAndReg = TWindowCsrAndReg -/* -** See comments above struct WindowCodeArg. - */ -type TWindowCsrAndReg1 = struct { - Fcsr int32 - Freg int32 -} - -type WindowCsrAndReg1 = TWindowCsrAndReg1 - -/* -** A single instance of this structure is allocated on the stack by -** sqlite3WindowCodeStep() and a pointer to it passed to the various helper -** routines. This is to reduce the number of arguments required by each -** helper function. -** -** regArg: -** Each window function requires an accumulator register (just as an -** ordinary aggregate function does). This variable is set to the first -** in an array of accumulator registers - one for each window function -** in the WindowCodeArg.pMWin list. -** -** eDelete: -** The window functions implementation sometimes caches the input rows -** that it processes in a temporary table. If it is not zero, this -** variable indicates when rows may be removed from the temp table (in -** order to reduce memory requirements - it would always be safe just -** to leave them there). Possible values for eDelete are: -** -** WINDOW_RETURN_ROW: -** An input row can be discarded after it is returned to the caller. -** -** WINDOW_AGGINVERSE: -** An input row can be discarded after the window functions xInverse() -** callbacks have been invoked in it. -** -** WINDOW_AGGSTEP: -** An input row can be discarded after the window functions xStep() -** callbacks have been invoked in it. -** -** start,current,end -** Consider a window-frame similar to the following: -** -** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) -** -** The windows functions implementation caches the input rows in a temp -** table, sorted by "a, b" (it actually populates the cache lazily, and -** aggressively removes rows once they are no longer required, but that's -** a mere detail). It keeps three cursors open on the temp table. One -** (current) that points to the next row to return to the query engine -** once its window function values have been calculated. Another (end) -** points to the next row to call the xStep() method of each window function -** on (so that it is 2 groups ahead of current). And a third (start) that -** points to the next row to call the xInverse() method of each window -** function on. -** -** Each cursor (start, current and end) consists of a VDBE cursor -** (WindowCsrAndReg.csr) and an array of registers (starting at -** WindowCodeArg.reg) that always contains a copy of the peer values -** read from the corresponding cursor. -** -** Depending on the window-frame in question, all three cursors may not -** be required. In this case both WindowCodeArg.csr and reg are set to -** 0. - */ -type TWindowCodeArg1 = struct { - FpParse uintptr - FpMWin uintptr - FpVdbe uintptr - FaddrGosub int32 - FregGosub int32 - FregArg int32 - FeDelete int32 - FregRowid int32 - Fstart TWindowCsrAndReg - Fcurrent TWindowCsrAndReg - Fend TWindowCsrAndReg -} - -type WindowCodeArg1 = TWindowCodeArg1 - // C documentation // // /* @@ -231674,14 +223769,6 @@ var _yyFallback = [187]uint16{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type TyyStackEntry1 = struct { - Fstateno uint16 - Fmajor uint16 - Fminor TYYMINORTYPE -} - -type yyStackEntry1 = TyyStackEntry1 - type TyyStackEntry = struct { Fstateno uint16 Fmajor uint16 @@ -231692,16 +223779,6 @@ type yyStackEntry = TyyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type TyyParser1 = struct { - Fyytos uintptr - FpParse uintptr - FyystackEnd uintptr - Fyystack uintptr - Fyystk0 [100]TyyStackEntry -} - -type yyParser1 = TyyParser1 - type TyyParser = struct { Fyytos uintptr FpParse uintptr @@ -238675,7 +230752,7 @@ func Xsqlite3_config(tls *libc.TLS, op int32, va uintptr) (r int32) { */ if libc.AtomicLoadPInt32(uintptr(unsafe.Pointer(&_sqlite3Config))+208) != 0 { if op < 0 || op > int32(63) || libc.Uint64FromInt32(1)< 0 { - (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = xProgress + (*Tsqlite3)(unsafe.Pointer(db)).FxProgress = __ccgo_fp_xProgress (*Tsqlite3)(unsafe.Pointer(db)).FnProgressOps = uint32(nOps) (*Tsqlite3)(unsafe.Pointer(db)).FpProgressArg = pArg } else { @@ -240047,12 +232128,12 @@ func Xsqlite3_is_interrupted(tls *libc.TLS, db uintptr) (r int32) { // ** that if a malloc() fails in sqlite3_create_function(), an error code // ** is returned and the mallocFailed flag cleared. // */ -func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, pDestructor uintptr) (r int32) { +func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, enc int32, pUserData uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, pDestructor uintptr) (r int32) { var extraFlags, rc int32 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(184559)) + if zFunctionName == uintptr(0) || __ccgo_fp_xSFunc != uintptr(0) && __ccgo_fp_xFinal != uintptr(0) || libc.BoolInt32(__ccgo_fp_xFinal == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xStep == uintptr(0)) || libc.BoolInt32(__ccgo_fp_xValue == uintptr(0)) != libc.BoolInt32(__ccgo_fp_xInverse == uintptr(0)) || (nArg < -int32(1) || nArg > int32(SQLITE_MAX_FUNCTION_ARG)) || int32(255) < _sqlite3Strlen30(tls, zFunctionName) { + return _sqlite3MisuseError(tls, int32(184586)) } extraFlags = enc & (libc.Int32FromInt32(SQLITE_DETERMINISTIC) | libc.Int32FromInt32(SQLITE_DIRECTONLY) | libc.Int32FromInt32(SQLITE_SUBTYPE) | libc.Int32FromInt32(SQLITE_INNOCUOUS) | libc.Int32FromInt32(SQLITE_RESULT_SUBTYPE) | libc.Int32FromInt32(SQLITE_SELFORDER1)) enc &= libc.Int32FromInt32(SQLITE_FUNC_ENCMASK) | libc.Int32FromInt32(SQLITE_ANY) @@ -240070,9 +232151,9 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i case int32(SQLITE_UTF16): enc = int32(SQLITE_UTF16LE) case int32(SQLITE_ANY): - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF8)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) if rc == SQLITE_OK { - rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor) + rc = _sqlite3CreateFunc(tls, db, zFunctionName, nArg, int32(SQLITE_UTF16LE)|extraFlags^int32(SQLITE_FUNC_UNSAFE), pUserData, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pDestructor) } if rc != SQLITE_OK { return rc @@ -240101,7 +232182,7 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i _sqlite3ExpirePreparedStatements(tls, db, 0) } } else { - if xSFunc == uintptr(0) && xFinal == uintptr(0) { + if __ccgo_fp_xSFunc == uintptr(0) && __ccgo_fp_xFinal == uintptr(0) { /* Trying to delete a function that does not exist. This is a no-op. ** https://sqlite.org/forum/forumpost/726219164b */ return SQLITE_OK @@ -240119,15 +232200,15 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i } *(*uintptr)(unsafe.Pointer(p + 36)) = pDestructor (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags = (*TFuncDef)(unsafe.Pointer(p)).FfuncFlags&uint32(SQLITE_FUNC_ENCMASK) | uint32(extraFlags) - if xSFunc != 0 { - v1 = xSFunc + if __ccgo_fp_xSFunc != 0 { + v1 = __ccgo_fp_xSFunc } else { - v1 = xStep + v1 = __ccgo_fp_xStep } (*TFuncDef)(unsafe.Pointer(p)).FxSFunc = v1 - (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = xFinal - (*TFuncDef)(unsafe.Pointer(p)).FxValue = xValue - (*TFuncDef)(unsafe.Pointer(p)).FxInverse = xInverse + (*TFuncDef)(unsafe.Pointer(p)).FxFinalize = __ccgo_fp_xFinal + (*TFuncDef)(unsafe.Pointer(p)).FxValue = __ccgo_fp_xValue + (*TFuncDef)(unsafe.Pointer(p)).FxInverse = __ccgo_fp_xInverse (*TFuncDef)(unsafe.Pointer(p)).FpUserData = pUserData (*TFuncDef)(unsafe.Pointer(p)).FnArg = int16(uint16(nArg)) return SQLITE_OK @@ -240142,27 +232223,27 @@ func _sqlite3CreateFunc(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg i // ** sqlite3_create_function_v2() // ** sqlite3_create_window_function() // */ -func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { +func _createFunctionApi(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { var pArg uintptr var rc int32 _, _ = pArg, rc rc = int32(SQLITE_ERROR) pArg = uintptr(0) Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - if xDestroy != 0 { + if __ccgo_fp_xDestroy != 0 { pArg = _sqlite3Malloc(tls, uint64(12)) if !(pArg != 0) { _sqlite3OomFault(tls, db) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) goto out } (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef = 0 - (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = xDestroy + (*TFuncDestructor)(unsafe.Pointer(pArg)).FxDestroy = __ccgo_fp_xDestroy (*TFuncDestructor)(unsafe.Pointer(pArg)).FpUserData = p } - rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, xValue, xInverse, pArg) + rc = _sqlite3CreateFunc(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, pArg) if pArg != 0 && (*TFuncDestructor)(unsafe.Pointer(pArg)).FnRef == 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestroy})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestroy})))(tls, p) Xsqlite3_free(tls, pArg) } goto out @@ -240173,30 +232254,60 @@ out: return rc } +type t__ccgo_fp__Xsqlite3_create_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_7 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Create new user functions. // */ -func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) +func Xsqlite3_create_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) } -func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), xDestroy) +type t__ccgo_fp__Xsqlite3_create_function_v2_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function_v2_8 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function_v2(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), __ccgo_fp_xDestroy) } -func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, xStep uintptr, xFinal uintptr, xValue uintptr, xInverse uintptr, xDestroy uintptr) (r int32) { - return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), xStep, xFinal, xValue, xInverse, xDestroy) +type t__ccgo_fp__Xsqlite3_create_window_function_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_6 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_7 = func(*libc.TLS, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_8 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_window_function_9 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_window_function(tls *libc.TLS, db uintptr, zFunc uintptr, nArg int32, enc int32, p uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr, __ccgo_fp_xValue uintptr, __ccgo_fp_xInverse uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { + return _createFunctionApi(tls, db, zFunc, nArg, enc, p, uintptr(0), __ccgo_fp_xStep, __ccgo_fp_xFinal, __ccgo_fp_xValue, __ccgo_fp_xInverse, __ccgo_fp_xDestroy) } -func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, xSFunc uintptr, xStep uintptr, xFinal uintptr) (r int32) { +type t__ccgo_fp__Xsqlite3_create_function16_5 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_6 = func(*libc.TLS, uintptr, int32, uintptr) + +type t__ccgo_fp__Xsqlite3_create_function16_7 = func(*libc.TLS, uintptr) + +func Xsqlite3_create_function16(tls *libc.TLS, db uintptr, zFunctionName uintptr, nArg int32, eTextRep int32, p uintptr, __ccgo_fp_xSFunc uintptr, __ccgo_fp_xStep uintptr, __ccgo_fp_xFinal uintptr) (r int32) { var rc int32 var zFunc8 uintptr _, _ = rc, zFunc8 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) zFunc8 = _sqlite3Utf16to8(tls, db, zFunctionName, -int32(1), uint8(SQLITE_UTF16LE)) - rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, xSFunc, xStep, xFinal, uintptr(0), uintptr(0), uintptr(0)) + rc = _sqlite3CreateFunc(tls, db, zFunc8, nArg, eTextRep, p, __ccgo_fp_xSFunc, __ccgo_fp_xStep, __ccgo_fp_xFinal, uintptr(0), uintptr(0), uintptr(0)) _sqlite3DbFree(tls, db, zFunc8) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) @@ -240259,6 +232370,8 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i return Xsqlite3_create_function_v2(tls, db, zName, nArg, int32(SQLITE_UTF8), zCopy, __ccgo_fp(_sqlite3InvalidFunction), uintptr(0), uintptr(0), __ccgo_fp(Xsqlite3_free)) } +type t__ccgo_fp__Xsqlite3_trace_1 = func(*libc.TLS, uintptr, uintptr) + // C documentation // // /* @@ -240269,43 +232382,47 @@ func Xsqlite3_overload_function(tls *libc.TLS, db uintptr, zName uintptr, nArg i // ** trace is a pointer to a function that is invoked at the start of each // ** SQL statement. // */ -func Xsqlite3_trace(tls *libc.TLS, db uintptr, xTrace uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_trace(tls *libc.TLS, db uintptr, __ccgo_fp_xTrace uintptr, pArg uintptr) (r uintptr) { var pOld uintptr var v1 int32 _, _ = pOld, v1 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg - if xTrace != 0 { + if __ccgo_fp_xTrace != 0 { v1 = int32(SQLITE_TRACE_LEGACY) } else { v1 = 0 } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(v1) - *(*uintptr)(unsafe.Pointer(db + 216)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 216)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_trace_v2_2 = func(*libc.TLS, uint32, uintptr, uintptr, uintptr) int32 + // C documentation // // /* Register a trace callback using the version-2 interface. // */ -func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, pArg uintptr) (r int32) { +func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, __ccgo_fp_xTrace uintptr, pArg uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if mTrace == uint32(0) { - xTrace = uintptr(0) + __ccgo_fp_xTrace = uintptr(0) } - if xTrace == uintptr(0) { + if __ccgo_fp_xTrace == uintptr(0) { mTrace = uint32(0) } (*Tsqlite3)(unsafe.Pointer(db)).FmTrace = uint8(mTrace) - *(*uintptr)(unsafe.Pointer(db + 216)) = xTrace + *(*uintptr)(unsafe.Pointer(db + 216)) = __ccgo_fp_xTrace (*Tsqlite3)(unsafe.Pointer(db)).FpTraceArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_profile_1 = func(*libc.TLS, uintptr, uintptr, uint64) + // C documentation // // /* @@ -240316,12 +232433,12 @@ func Xsqlite3_trace_v2(tls *libc.TLS, db uintptr, mTrace uint32, xTrace uintptr, // ** profile is a pointer to a function that is invoked at the conclusion of // ** each SQL statement that is run. // */ -func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_profile(tls *libc.TLS, db uintptr, __ccgo_fp_xProfile uintptr, pArg uintptr) (r uintptr) { var pOld, p1, p2 uintptr _, _, _ = pOld, p1, p2 Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg - (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = xProfile + (*Tsqlite3)(unsafe.Pointer(db)).FxProfile = __ccgo_fp_xProfile (*Tsqlite3)(unsafe.Pointer(db)).FpProfileArg = pArg p1 = db + 94 *(*Tu8)(unsafe.Pointer(p1)) = Tu8(int32(*(*Tu8)(unsafe.Pointer(p1))) & libc.Int32FromInt32(SQLITE_TRACE_NONLEGACY_MASK)) @@ -240333,6 +232450,8 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) return pOld } +type t__ccgo_fp__Xsqlite3_commit_hook_1 = func(*libc.TLS, uintptr) int32 + // C documentation // // /* @@ -240340,82 +232459,92 @@ func Xsqlite3_profile(tls *libc.TLS, db uintptr, xProfile uintptr, pArg uintptr) // ** If the invoked function returns non-zero, then the commit becomes a // ** rollback. // */ -func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_commit_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pOld uintptr _ = pOld Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pOld = (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg - (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxCommitCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpCommitArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pOld } +type t__ccgo_fp__Xsqlite3_update_hook_1 = func(*libc.TLS, uintptr, int32, uintptr, uintptr, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_update_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_rollback_hook_1 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is rolled // ** back by this database connection. // */ -func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_rollback_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg - (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxRollbackCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpRollbackArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_preupdate_hook_1 = func(*libc.TLS, uintptr, uintptr, int32, uintptr, uintptr, int64, int64) + // C documentation // // /* // ** Register a callback to be invoked each time a row is updated, // ** inserted or deleted using this database connection. // */ -func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_preupdate_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg - (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxPreUpdateCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpPreUpdateArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet } +type t__ccgo_fp__Xsqlite3_autovacuum_pages_1 = func(*libc.TLS, uintptr, uintptr, uint32, uint32, uint32) uint32 + +type t__ccgo_fp__Xsqlite3_autovacuum_pages_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a function to be invoked prior to each autovacuum that // ** determines the number of pages to vacuum. // */ -func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_autovacuum_pages(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr != 0 { (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr})))(tls, (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg) } - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacPages = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpAutovacPagesArg = pArg - (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = xDestructor + (*Tsqlite3)(unsafe.Pointer(db)).FxAutovacDestr = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -240459,18 +232588,20 @@ func Xsqlite3_wal_autocheckpoint(tls *libc.TLS, db uintptr, nFrame int32) (r int return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_wal_hook_1 = func(*libc.TLS, uintptr, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Register a callback to be invoked each time a transaction is written // ** into the write-ahead-log by this database connection. // */ -func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, xCallback uintptr, pArg uintptr) (r uintptr) { +func Xsqlite3_wal_hook(tls *libc.TLS, db uintptr, __ccgo_fp_xCallback uintptr, pArg uintptr) (r uintptr) { var pRet uintptr _ = pRet Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) pRet = (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg - (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = xCallback + (*Tsqlite3)(unsafe.Pointer(db)).FxWalCallback = __ccgo_fp_xCallback (*Tsqlite3)(unsafe.Pointer(db)).FpWalArg = pArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return pRet @@ -240496,7 +232627,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(185175)) + return _sqlite3MisuseError(tls, int32(185202)) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if zDb != 0 && *(*int8)(unsafe.Pointer(zDb)) != 0 { @@ -240628,7 +232759,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(185311))) + return _sqlite3ErrStr(tls, _sqlite3MisuseError(tls, int32(185338))) } Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) if (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { @@ -240760,7 +232891,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(185390)) + return _sqlite3MisuseError(tls, int32(185417)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -240770,7 +232901,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(185399)) + return _sqlite3MisuseError(tls, int32(185426)) } if !(db != 0) || (*Tsqlite3)(unsafe.Pointer(db)).FmallocFailed != 0 { return int32(SQLITE_NOMEM) @@ -240806,7 +232937,7 @@ func Xsqlite3_errstr(tls *libc.TLS, rc int32) (r uintptr) { // ** Create a new collating function for database "db". The name is zName // ** and the encoding is enc. // */ -func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { var aColl, p, pColl uintptr var enc2, j int32 _, _, _, _, _ = aColl, enc2, j, p, pColl @@ -240819,7 +232950,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(185447)) + return _sqlite3MisuseError(tls, int32(185474)) } /* Check if this call is removing or replacing an existing collation ** sequence. If so, and there are active VMs, return busy. If there @@ -240863,9 +232994,9 @@ func _createCollation(tls *libc.TLS, db uintptr, zName uintptr, enc Tu8, pCtx ui if pColl == uintptr(0) { return int32(SQLITE_NOMEM) } - (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = xCompare + (*TCollSeq)(unsafe.Pointer(pColl)).FxCmp = __ccgo_fp_xCompare (*TCollSeq)(unsafe.Pointer(pColl)).FpUser = pCtx - (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = xDel + (*TCollSeq)(unsafe.Pointer(pColl)).FxDel = __ccgo_fp_xDel (*TCollSeq)(unsafe.Pointer(pColl)).Fenc = uint8(enc2 | int32(enc)&libc.Int32FromInt32(SQLITE_UTF16_ALIGNED)) _sqlite3Error(tls, db, SQLITE_OK) return SQLITE_OK @@ -241367,7 +233498,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(186122)) /* IMP: R-18321-05872 */ + rc = _sqlite3MisuseError(tls, int32(186149)) /* IMP: R-18321-05872 */ } else { if zFilename == uintptr(0) { zFilename = __ccgo_ts + 5652 @@ -241521,36 +233652,44 @@ func Xsqlite3_open16(tls *libc.TLS, zFilename uintptr, ppDb uintptr) (r int32) { return rc & int32(0xff) } +type t__ccgo_fp__Xsqlite3_create_collation_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { - return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, xCompare, uintptr(0)) +func Xsqlite3_create_collation(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { + return Xsqlite3_create_collation_v2(tls, db, zName, enc, pCtx, __ccgo_fp_xCompare, uintptr(0)) } +type t__ccgo_fp__Xsqlite3_create_collation_v2_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_create_collation_v2_5 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr, xDel uintptr) (r int32) { +func Xsqlite3_create_collation_v2(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr, __ccgo_fp_xDel uintptr) (r int32) { 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(enc), pCtx, __ccgo_fp_xCompare, __ccgo_fp_xDel) rc = _sqlite3ApiExit(tls, db, rc) Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return rc } +type t__ccgo_fp__Xsqlite3_create_collation16_4 = func(*libc.TLS, uintptr, int32, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Register a new collation sequence with the database handle db. // */ -func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, xCompare uintptr) (r int32) { +func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc int32, pCtx uintptr, __ccgo_fp_xCompare uintptr) (r int32) { var rc int32 var zName8 uintptr _, _ = rc, zName8 @@ -241558,7 +233697,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(enc), pCtx, __ccgo_fp_xCompare, uintptr(0)) _sqlite3DbFree(tls, db, zName8) } rc = _sqlite3ApiExit(tls, db, rc) @@ -241566,31 +233705,35 @@ func Xsqlite3_create_collation16(tls *libc.TLS, db uintptr, zName uintptr, enc i return rc } +type t__ccgo_fp__Xsqlite3_collation_needed_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded uintptr) (r int32) { +func Xsqlite3_collation_needed(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = xCollNeeded + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = __ccgo_fp_xCollNeeded (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } +type t__ccgo_fp__Xsqlite3_collation_needed16_2 = func(*libc.TLS, uintptr, uintptr, int32, uintptr) + // C documentation // // /* // ** Register a collation sequence factory callback with the database handle // ** db. Replace any previously installed collation sequence factory. // */ -func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, xCollNeeded16 uintptr) (r int32) { +func Xsqlite3_collation_needed16(tls *libc.TLS, db uintptr, pCollNeededArg uintptr, __ccgo_fp_xCollNeeded16 uintptr) (r int32) { Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded = uintptr(0) - (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = xCollNeeded16 + (*Tsqlite3)(unsafe.Pointer(db)).FxCollNeeded16 = __ccgo_fp_xCollNeeded16 (*Tsqlite3)(unsafe.Pointer(db)).FpCollNeededArg = pCollNeededArg Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK @@ -241624,12 +233767,14 @@ func Xsqlite3_get_clientdata(tls *libc.TLS, db uintptr, zName uintptr) (r uintpt return uintptr(0) } +type t__ccgo_fp__Xsqlite3_set_clientdata_3 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Add new client data to a database connection. // */ -func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var n Tsize_t var p, pp uintptr _, _, _ = n, p, pp @@ -241664,8 +233809,8 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin n = libc.Xstrlen(tls, zName) p = Xsqlite3_malloc64(tls, uint64(uint32(libc.UintptrFromInt32(0)+12)+(n+libc.Uint32FromInt32(1)))) if p == uintptr(0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pData) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pData) } Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return int32(SQLITE_NOMEM) @@ -241676,7 +233821,7 @@ func Xsqlite3_set_clientdata(tls *libc.TLS, db uintptr, zName uintptr, pData uin } } (*TDbClientData)(unsafe.Pointer(p)).FpData = pData - (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = xDestructor + (*TDbClientData)(unsafe.Pointer(p)).FxDestructor = __ccgo_fp_xDestructor Xsqlite3_mutex_leave(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) return SQLITE_OK } @@ -243028,6 +235173,8 @@ func _leaveMutex(tls *libc.TLS) { Xsqlite3_mutex_leave(tls, _sqlite3MutexAlloc(tls, int32(SQLITE_MUTEX_STATIC_MAIN))) } +type t__ccgo_fp__Xsqlite3_unlock_notify_1 = func(*libc.TLS, uintptr, int32) + // C documentation // // /* @@ -243051,7 +235198,7 @@ func _leaveMutex(tls *libc.TLS) { // ** on the same "db". If xNotify==0 then any prior callbacks are immediately // ** cancelled. // */ -func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg uintptr) (r int32) { +func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, __ccgo_fp_xNotify uintptr, _pArg uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) *(*uintptr)(unsafe.Pointer(bp)) = _pArg @@ -243061,7 +235208,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = SQLITE_OK Xsqlite3_mutex_enter(tls, (*Tsqlite3)(unsafe.Pointer(db)).Fmutex) _enterMutex(tls) - if xNotify == uintptr(0) { + if __ccgo_fp_xNotify == uintptr(0) { _removeFromBlockedList(tls, db) (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection = uintptr(0) (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = uintptr(0) @@ -243073,7 +235220,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui ** blocking transaction. In either case, invoke the notify callback ** immediately. */ - (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xNotify})))(tls, bp, int32(1)) + (*(*func(*libc.TLS, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xNotify})))(tls, bp, int32(1)) } else { p = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection for { @@ -243089,7 +235236,7 @@ func Xsqlite3_unlock_notify(tls *libc.TLS, db uintptr, xNotify uintptr, _pArg ui rc = int32(SQLITE_LOCKED) /* Deadlock detected. */ } else { (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockConnection = (*Tsqlite3)(unsafe.Pointer(db)).FpBlockingConnection - (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = xNotify + (*Tsqlite3)(unsafe.Pointer(db)).FxUnlockNotify = __ccgo_fp_xNotify (*Tsqlite3)(unsafe.Pointer(db)).FpUnlockArg = *(*uintptr)(unsafe.Pointer(bp)) _removeFromBlockedList(tls, db) _addToBlockedList(tls, db) @@ -244307,108 +236454,6 @@ type TJsonParse = struct { type JsonParse = TJsonParse -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() - */ - -/* -** jsonUnescapeOneChar() returns this invalid code point if it encounters -** a syntax error. - */ - -/* A cache mapping JSON text into JSONB blobs. -** -** Each cache entry is a JsonParse object with the following restrictions: -** -** * The bReadOnly flag must be set -** -** * The aBlob[] array must be owned by the JsonParse object. In other -** words, nBlobAlloc must be non-zero. -** -** * eEdit and delta must be zero. -** -** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. - */ -type TJsonCache1 = struct { - Fdb uintptr - FnUsed int32 - Fa [4]uintptr -} - -type JsonCache1 = TJsonCache1 - -/* An instance of this object represents a JSON string -** under construction. Really, this is a generic string accumulator -** that can be and is used to create strings other than JSON. -** -** If the generated string is longer than will fit into the zSpace[] buffer, -** then it will be an RCStr string. This aids with caching of large -** JSON strings. - */ -type TJsonString1 = struct { - F__ccgo_align [0]uint32 - FpCtx uintptr - FzBuf uintptr - FnAlloc Tu64 - FnUsed Tu64 - FbStatic Tu8 - FeErr Tu8 - FzSpace [100]int8 - F__ccgo_pad7 [2]byte -} - -type JsonString1 = TJsonString1 - -/* Allowed values for JsonString.eErr */ - -/* The "subtype" set for text JSON values passed through using -** sqlite3_result_subtype() and sqlite3_value_subtype(). - */ - -/* -** Bit values for the flags passed into various SQL function implementations -** via the sqlite3_user_data() value. - */ - -/* A parsed JSON value. Lifecycle: -** -** 1. JSON comes in and is parsed into a JSONB value in aBlob. The -** original text is stored in zJson. This step is skipped if the -** input is JSONB instead of text JSON. -** -** 2. The aBlob[] array is searched using the JSON path notation, if needed. -** -** 3. Zero or more changes are made to aBlob[] (via json_remove() or -** json_replace() or json_patch() or similar). -** -** 4. New JSON text is generated from the aBlob[] for output. This step -** is skipped if the function is one of the jsonb_* functions that -** returns JSONB instead of text JSON. - */ -type TJsonParse1 = struct { - FaBlob uintptr - FnBlob Tu32 - FnBlobAlloc Tu32 - FzJson uintptr - Fdb uintptr - FnJson int32 - FnJPRef Tu32 - FiErr Tu32 - FiDepth Tu16 - FnErr Tu8 - Foom Tu8 - FbJsonIsRCStr Tu8 - FhasNonstd Tu8 - FbReadOnly Tu8 - FeEdit Tu8 - Fdelta int32 - FnIns Tu32 - FiLabel Tu32 - FaIns uintptr -} - -type JsonParse1 = TJsonParse1 - /************************************************************************** ** Utility routines for dealing with JsonCache objects **************************************************************************/ @@ -247019,16 +239064,6 @@ type TJsonPretty = struct { 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 */ @@ -249856,17 +241891,6 @@ type TJsonParent = struct { type JsonParent = TJsonParent -type TJsonParent1 = struct { - F__ccgo_align [0]uint32 - FiHead Tu32 - FiValue Tu32 - FiEnd Tu32 - FnPath Tu32 - FiKey Ti64 -} - -type JsonParent1 = TJsonParent1 - type TJsonEachCursor = struct { F__ccgo_align [0]uint32 Fbase Tsqlite3_vtab_cursor @@ -249886,25 +241910,6 @@ type TJsonEachCursor = struct { type JsonEachCursor = TJsonEachCursor -type TJsonEachCursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FiRowid Tu32 - Fi Tu32 - FiEnd Tu32 - FnRoot Tu32 - FeType Tu8 - FbRecursive Tu8 - FnParent Tu32 - FnParentAlloc Tu32 - FaParent uintptr - Fdb uintptr - Fpath TJsonString - FsParse TJsonParse -} - -type JsonEachCursor1 = TJsonEachCursor1 - type TJsonEachConnection = struct { Fbase Tsqlite3_vtab Fdb uintptr @@ -249912,13 +241917,6 @@ type TJsonEachConnection = struct { type JsonEachConnection = TJsonEachConnection -type TJsonEachConnection1 = struct { - Fbase Tsqlite3_vtab - Fdb uintptr -} - -type JsonEachConnection1 = TJsonEachConnection1 - // C documentation // // /* Constructor for the json_each virtual table */ @@ -250992,64 +242990,6 @@ type TRtreeSearchPoint = struct { type RtreeSearchPoint = TRtreeSearchPoint -/* The rtree may have between 1 and RTREE_MAX_DIMENSIONS dimensions. */ - -/* Maximum number of auxiliary columns */ - -/* Size of hash table Rtree.aHash. This hash table is not expected to -** ever contain very many entries, so a fixed number of buckets is -** used. - */ - -/* The xBestIndex method of this virtual table requires an estimate of -** the number of rows in the virtual table to calculate the costs of -** various strategies. If possible, this estimate is loaded from the -** sqlite_stat1 table (with RTREE_MIN_ROWEST as a hard-coded minimum). -** Otherwise, if no sqlite_stat1 entry is available, use -** RTREE_DEFAULT_ROWEST. - */ - -/* -** An rtree virtual-table object. - */ -type TRtree1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab - Fdb uintptr - FiNodeSize int32 - FnDim Tu8 - FnDim2 Tu8 - FeCoordType Tu8 - FnBytesPerCell Tu8 - FinWrTrans Tu8 - FnAux Tu8 - FnAuxNotNull Tu8 - FiDepth int32 - FzDb uintptr - FzName uintptr - FzNodeName uintptr - FnBusy Tu32 - FnRowEst Ti64 - FnCursor Tu32 - FnNodeRef Tu32 - FzReadAuxSql uintptr - FpDeleted uintptr - FpNodeBlob uintptr - FpWriteNode uintptr - FpDeleteNode uintptr - FpReadRowid uintptr - FpWriteRowid uintptr - FpDeleteRowid uintptr - FpReadParent uintptr - FpWriteParent uintptr - FpDeleteParent uintptr - FpWriteAux uintptr - FaHash [97]uintptr - F__ccgo_pad31 [4]byte -} - -type Rtree1 = TRtree1 - /* Possible values for Rtree.eCoordType: */ // C documentation @@ -251069,197 +243009,6 @@ type TRtreeValue = float32 type RtreeValue = TRtreeValue -/* Low accuracy coordinate */ - -/* -** Set the Rtree.bCorrupt flag - */ - -/* -** When doing a search of an r-tree, instances of the following structure -** record intermediate results from the tree walk. -** -** The id is always a node-id. For iLevel>=1 the id is the node-id of -** the node that the RtreeSearchPoint represents. When iLevel==0, however, -** the id is of the parent node and the cell that RtreeSearchPoint -** represents is the iCell-th entry in the parent node. - */ -type TRtreeSearchPoint1 = struct { - F__ccgo_align [0]uint32 - FrScore TRtreeDValue - Fid Tsqlite3_int64 - FiLevel Tu8 - FeWithin Tu8 - FiCell Tu8 - F__ccgo_pad5 [5]byte -} - -type RtreeSearchPoint1 = TRtreeSearchPoint1 - -/* -** The minimum number of cells allowed for a node is a third of the -** maximum. In Gutman's notation: -** -** m = M/3 -** -** If an R*-tree "Reinsert" operation is required, the same number of -** cells are removed from the overfull node and reinserted into the tree. - */ - -/* -** The smallest possible node-size is (512-64)==448 bytes. And the largest -** supported cell size is 48 bytes (8 byte rowid + ten 4 byte coordinates). -** Therefore all non-root nodes must contain at least 3 entries. Since -** 3^40 is greater than 2^64, an r-tree structure always has a depth of -** 40 or less. - */ - -/* -** Number of entries in the cursor RtreeNode cache. The first entry is -** used to cache the RtreeNode for RtreeCursor.sPoint. The remaining -** entries cache the RtreeNode for the first elements of the priority queue. - */ - -/* -** An rtree cursor object. - */ -type TRtreeCursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FatEOF Tu8 - FbPoint Tu8 - FbAuxValid Tu8 - FiStrategy int32 - FnConstraint int32 - FaConstraint uintptr - FnPointAlloc int32 - FnPoint int32 - FmxLevel int32 - FaPoint uintptr - FpReadAux uintptr - FsPoint TRtreeSearchPoint - FaNode [5]uintptr - FanQueue [41]Tu32 -} - -type RtreeCursor1 = TRtreeCursor1 - -/* Return the Rtree of a RtreeCursor */ - -/* -** A coordinate can be either a floating point number or a integer. All -** coordinates within a single R-Tree are always of the same time. - */ -type TRtreeCoord1 = struct { - Fi [0]int32 - Fu [0]Tu32 - Ff TRtreeValue -} - -type RtreeCoord1 = TRtreeCoord1 - -/* -** The argument is an RtreeCoord. Return the value stored within the RtreeCoord -** formatted as a RtreeDValue (double or int64). This macro assumes that local -** variable pRtree points to the Rtree structure associated with the -** RtreeCoord. - */ - -/* -** A search constraint. - */ -type TRtreeConstraint1 = struct { - F__ccgo_align [0]uint32 - FiCoord int32 - Fop int32 - Fu struct { - F__ccgo_align [0]uint32 - FxGeom [0]uintptr - FxQueryFunc [0]uintptr - FrValue TRtreeDValue - } - FpInfo uintptr - F__ccgo_pad4 [4]byte -} - -type RtreeConstraint1 = TRtreeConstraint1 - -/* Possible values for RtreeConstraint.op */ - -/* Special operators available only on cursors. Needs to be consecutive -** with the normal values above, but must be less than RTREE_MATCH. These -** are used in the cursor for contraints such as x=NULL (RTREE_FALSE) or -** x<'xyz' (RTREE_TRUE) */ - -/* -** An rtree structure node. - */ -type TRtreeNode1 = struct { - F__ccgo_align [0]uint32 - FpParent uintptr - F__ccgo_align1 [4]byte - FiNode Ti64 - FnRef int32 - FisDirty int32 - FzData uintptr - FpNext uintptr -} - -type RtreeNode1 = TRtreeNode1 - -/* Return the number of cells in a node */ - -/* -** A single cell from a node, deserialized - */ -type TRtreeCell1 = struct { - F__ccgo_align [0]uint32 - FiRowid Ti64 - FaCoord [10]TRtreeCoord -} - -type RtreeCell1 = TRtreeCell1 - -/* -** This object becomes the sqlite3_user_data() for the SQL functions -** that are created by sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() and which appear on the right of MATCH -** operators in order to constrain a search. -** -** xGeom and xQueryFunc are the callback functions. Exactly one of -** xGeom and xQueryFunc fields is non-NULL, depending on whether the -** SQL function was created using sqlite3_rtree_geometry_callback() or -** sqlite3_rtree_query_callback(). -** -** This object is deleted automatically by the destructor mechanism in -** sqlite3_create_function_v2(). - */ -type TRtreeGeomCallback1 = struct { - FxGeom uintptr - FxQueryFunc uintptr - FxDestructor uintptr - FpContext uintptr -} - -type RtreeGeomCallback1 = TRtreeGeomCallback1 - -/* -** An instance of this structure (in the form of a BLOB) is returned by -** the SQL functions that sqlite3_rtree_geometry_callback() and -** sqlite3_rtree_query_callback() create, and is read as the right-hand -** operand to the MATCH operator of an R-Tree. - */ -type TRtreeMatchArg1 = struct { - F__ccgo_align [0]uint32 - FiSize Tu32 - Fcb TRtreeGeomCallback - FnParam int32 - FapSqlParam uintptr - F__ccgo_pad5 [4]byte -} - -type RtreeMatchArg1 = TRtreeMatchArg1 - /* Size of an RtreeMatchArg object with N parameters */ /* What version of GCC is being used. 0 means GCC is not being used . @@ -254214,9 +245963,9 @@ func _rtreeValueDown(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) > d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -254231,9 +245980,9 @@ func _rtreeValueUp(tls *libc.TLS, v uintptr) (r TRtreeValue) { f = float32(d) if float64(f) < d { if d < libc.Float64FromInt32(0) { - v1 = float64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) - libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } else { - v1 = float64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) + v1 = libc.Float64FromFloat64(1) + libc.Float64FromFloat64(1)/libc.Float64FromFloat64(8.388608e+06) } f = float32(float64(d * v1)) } @@ -255133,23 +246882,6 @@ type TRtreeCheck = struct { type RtreeCheck = TRtreeCheck -type TRtreeCheck1 = struct { - Fdb uintptr - FzDb uintptr - FzTab uintptr - FbInt int32 - FnDim int32 - FpGetNode uintptr - FaCheckMapping [2]uintptr - FnLeaf int32 - FnNonLeaf int32 - Frc int32 - FzReport uintptr - FnErr int32 -} - -type RtreeCheck1 = TRtreeCheck1 - // C documentation // // /* @@ -255734,14 +247466,6 @@ type TGeoPoly = struct { type GeoPoly = TGeoPoly -type TGeoPoly1 = struct { - FnVertex int32 - Fhdr [4]uint8 - Fa [8]TGeoCoord -} - -type GeoPoly1 = TGeoPoly1 - /* The size of a memory allocation needed for a GeoPoly object sufficient ** to hold N coordinate pairs. */ @@ -255766,16 +247490,6 @@ type TGeoParse = struct { type GeoParse = TGeoParse -type TGeoParse1 = struct { - Fz uintptr - FnVertex int32 - FnAlloc int32 - FnErr int32 - Fa uintptr -} - -type GeoParse1 = TGeoParse1 - // C documentation // // /* Do a 4-byte byte swap */ @@ -256558,13 +248272,6 @@ type TGeoBBox = struct { type GeoBBox = TGeoBBox -type TGeoBBox1 = struct { - FisInit int32 - Fa [4]TRtreeCoord -} - -type GeoBBox1 = TGeoBBox1 - // C documentation // // /* @@ -256802,39 +248509,6 @@ type TGeoOverlap = struct { type GeoOverlap = TGeoOverlap -type TGeoEvent1 = struct { - F__ccgo_align [0]uint32 - Fx float64 - FeType int32 - FpSeg uintptr - FpNext uintptr - F__ccgo_pad4 [4]byte -} - -type GeoEvent1 = TGeoEvent1 - -type TGeoSegment1 = struct { - F__ccgo_align [0]uint32 - FC float64 - FB float64 - Fy float64 - Fy0 float32 - Fside uint8 - Fidx uint32 - FpNext uintptr -} - -type GeoSegment1 = TGeoSegment1 - -type TGeoOverlap1 = struct { - FaEvent uintptr - FaSegment uintptr - FnEvent int32 - FnSegment int32 -} - -type GeoOverlap1 = TGeoOverlap1 - // C documentation // // /* @@ -257805,16 +249479,16 @@ geopoly_update_end: // ** Report that geopoly_overlap() is an overloaded function suitable // ** for use in xBestIndex. // */ -func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _geopolyFindFunction(tls *libc.TLS, pVtab uintptr, nArg int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { _ = pVtab _ = nArg if Xsqlite3_stricmp(tls, zName, __ccgo_ts+30063) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyOverlapFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return int32(SQLITE_INDEX_CONSTRAINT_FUNCTION) } if Xsqlite3_stricmp(tls, zName, __ccgo_ts+30079) == 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_geopolyWithinFunc) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_geopolyWithinFunc) *(*uintptr)(unsafe.Pointer(ppArg)) = uintptr(0) return libc.Int32FromInt32(SQLITE_INDEX_CONSTRAINT_FUNCTION) + libc.Int32FromInt32(1) } @@ -258123,12 +249797,14 @@ func _geomCallback(tls *libc.TLS, ctx uintptr, nArg int32, aArg uintptr) { } } +type t__ccgo_fp__Xsqlite3_rtree_geometry_callback_2 = func(*libc.TLS, uintptr, int32, uintptr, uintptr) int32 + // C documentation // // /* // ** Register a new geometry function for use with the r-tree MATCH operator. // */ -func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, xGeom uintptr, pContext uintptr) (r int32) { +func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, __ccgo_fp_xGeom uintptr, pContext uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ @@ -258136,33 +249812,37 @@ func Xsqlite3_rtree_geometry_callback(tls *libc.TLS, db uintptr, zGeom uintptr, if !(pGeomCtx != 0) { return int32(SQLITE_NOMEM) } - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = xGeom + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = __ccgo_fp_xGeom (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = uintptr(0) (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zGeom, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } +type t__ccgo_fp__Xsqlite3_rtree_query_callback_2 = func(*libc.TLS, uintptr) int32 + +type t__ccgo_fp__Xsqlite3_rtree_query_callback_4 = func(*libc.TLS, uintptr) + // C documentation // // /* // ** Register a new 2nd-generation geometry function for use with the // ** r-tree MATCH operator. // */ -func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, xQueryFunc uintptr, pContext uintptr, xDestructor uintptr) (r int32) { +func Xsqlite3_rtree_query_callback(tls *libc.TLS, db uintptr, zQueryFunc uintptr, __ccgo_fp_xQueryFunc uintptr, pContext uintptr, __ccgo_fp_xDestructor uintptr) (r int32) { var pGeomCtx uintptr _ = pGeomCtx /* Context object for new user-function */ /* Allocate and populate the context object. */ pGeomCtx = Xsqlite3_malloc(tls, int32(16)) if !(pGeomCtx != 0) { - if xDestructor != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDestructor})))(tls, pContext) + if __ccgo_fp_xDestructor != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDestructor})))(tls, pContext) } return int32(SQLITE_NOMEM) } (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxGeom = uintptr(0) - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = xQueryFunc - (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = xDestructor + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxQueryFunc = __ccgo_fp_xQueryFunc + (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FxDestructor = __ccgo_fp_xDestructor (*TRtreeGeomCallback)(unsafe.Pointer(pGeomCtx)).FpContext = pContext return Xsqlite3_create_function_v2(tls, db, zQueryFunc, -int32(1), int32(SQLITE_ANY), pGeomCtx, __ccgo_fp(_geomCallback), uintptr(0), uintptr(0), __ccgo_fp(_rtreeFreeCallback)) } @@ -258787,255 +250467,6 @@ type TRbuUpdateStmt = struct { type RbuUpdateStmt = TRbuUpdateStmt -/* -** These values must match the values defined in wal.c for the equivalent -** locks. These are not magic numbers as they are part of the SQLite file -** format. - */ - -/* -** A structure to store values read from the rbu_state table in memory. - */ -type TRbuState1 = struct { - F__ccgo_align [0]uint32 - FeStage int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiWalCksum Ti64 - FnRow int32 - F__ccgo_align6 [4]byte - FnProgress Ti64 - FiCookie Tu32 - F__ccgo_align8 [4]byte - FiOalSz Ti64 - FnPhaseOneStep Ti64 -} - -type RbuState1 = TRbuState1 - -type TRbuUpdateStmt1 = struct { - FzMask uintptr - FpUpdate uintptr - FpNext uintptr -} - -type RbuUpdateStmt1 = TRbuUpdateStmt1 - -type TRbuSpan1 = struct { - FzSpan uintptr - FnSpan int32 -} - -type RbuSpan1 = TRbuSpan1 - -/* -** An iterator of this type is used to iterate through all objects in -** the target database that require updating. For each such table, the -** iterator visits, in order: -** -** * the table itself, -** * each index of the table (zero or more points to visit), and -** * a special "cleanup table" state. -** -** abIndexed: -** If the table has no indexes on it, abIndexed is set to NULL. Otherwise, -** it points to an array of flags nTblCol elements in size. The flag is -** set for each column that is either a part of the PK or a part of an -** index. Or clear otherwise. -** -** If there are one or more partial indexes on the table, all fields of -** this array set set to 1. This is because in that case, the module has -** no way to tell which fields will be required to add and remove entries -** from the partial indexes. -** - */ -type TRbuObjIter1 = struct { - FpTblIter uintptr - FpIdxIter uintptr - FnTblCol int32 - FazTblCol uintptr - FazTblType uintptr - FaiSrcOrder uintptr - FabTblPk uintptr - FabNotNull uintptr - FabIndexed uintptr - FeType int32 - FbCleanup int32 - FzTbl uintptr - FzDataTbl uintptr - FzIdx uintptr - FiTnum int32 - FiPkTnum int32 - FbUnique int32 - FnIndex int32 - FnCol int32 - FpSelect uintptr - FpInsert uintptr - FpDelete uintptr - FpTmpInsert uintptr - FnIdxCol int32 - FaIdxCol uintptr - FzIdxSql uintptr - FpRbuUpdate uintptr -} - -type RbuObjIter1 = TRbuObjIter1 - -/* -** Values for RbuObjIter.eType -** -** 0: Table does not exist (error) -** 1: Table has an implicit rowid. -** 2: Table has an explicit IPK column. -** 3: Table has an external PK index. -** 4: Table is WITHOUT ROWID. -** 5: Table is a virtual table. - */ - -/* -** Within the RBU_STAGE_OAL stage, each call to sqlite3rbu_step() performs -** one of the following operations. - */ - -/* -** A single step of an incremental checkpoint - frame iWalFrame of the wal -** file should be copied to page iDbPage of the database file. - */ -type TRbuFrame1 = struct { - FiDbPage Tu32 - FiWalFrame Tu32 -} - -type RbuFrame1 = TRbuFrame1 - -/* -** RBU handle. -** -** nPhaseOneStep: -** If the RBU database contains an rbu_count table, this value is set to -** a running estimate of the number of b-tree operations required to -** finish populating the *-oal file. This allows the sqlite3_bp_progress() -** API to calculate the permyriadage progress of populating the *-oal file -** using the formula: -** -** permyriadage = (10000 * nProgress) / nPhaseOneStep -** -** nPhaseOneStep is initialized to the sum of: -** -** nRow * (nIndex + 1) -** -** for all source tables in the RBU database, where nRow is the number -** of rows in the source table and nIndex the number of indexes on the -** corresponding target database table. -** -** This estimate is accurate if the RBU update consists entirely of -** INSERT operations. However, it is inaccurate if: -** -** * the RBU update contains any UPDATE operations. If the PK specified -** for an UPDATE operation does not exist in the target table, then -** no b-tree operations are required on index b-trees. Or if the -** specified PK does exist, then (nIndex*2) such operations are -** required (one delete and one insert on each index b-tree). -** -** * the RBU update contains any DELETE operations for which the specified -** PK does not exist. In this case no operations are required on index -** b-trees. -** -** * the RBU update contains REPLACE operations. These are similar to -** UPDATE operations. -** -** nPhaseOneStep is updated to account for the conditions above during the -** first pass of each source table. The updated nPhaseOneStep value is -** stored in the rbu_state table if the RBU update is suspended. - */ -type Tsqlite3rbu1 = struct { - F__ccgo_align [0]uint32 - FeStage int32 - FdbMain uintptr - FdbRbu uintptr - FzTarget uintptr - FzRbu uintptr - FzState uintptr - FzStateDb [5]int8 - Frc int32 - FzErrmsg uintptr - FnStep int32 - F__ccgo_align10 [4]byte - FnProgress Tsqlite3_int64 - Fobjiter TRbuObjIter - FzVfsName uintptr - FpTargetFd uintptr - FnPagePerSector int32 - FiOalSz Ti64 - FnPhaseOneStep Ti64 - FpRenameArg uintptr - FxRename uintptr - FiMaxFrame Tu32 - FmLock Tu32 - FnFrame int32 - FnFrameAlloc int32 - FaFrame uintptr - Fpgsz int32 - FaBuf uintptr - F__ccgo_align26 [4]byte - FiWalCksum Ti64 - FszTemp Ti64 - FszTempLimit Ti64 - FnRbu int32 - FpRbuFd uintptr -} - -type sqlite3rbu1 = Tsqlite3rbu1 - -/* -** An rbu VFS is implemented using an instance of this structure. -** -** Variable pRbu is only non-NULL for automatically created RBU VFS objects. -** It is NULL for RBU VFS objects created explicitly using -** sqlite3rbu_create_vfs(). It is used to track the total amount of temp -** space used by the RBU handle. - */ -type Trbu_vfs1 = struct { - Fbase Tsqlite3_vfs - FpRealVfs uintptr - Fmutex uintptr - FpRbu uintptr - FpMain uintptr - FpMainRbu uintptr -} - -type rbu_vfs1 = Trbu_vfs1 - -/* -** Each file opened by an rbu VFS is represented by an instance of -** the following structure. -** -** If this is a temporary file (pRbu!=0 && flags&DELETE_ON_CLOSE), variable -** "sz" is set to the current size of the database file. - */ -type Trbu_file1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_file - FpReal uintptr - FpRbuVfs uintptr - FpRbu uintptr - Fsz Ti64 - FopenFlags int32 - FiCookie Tu32 - FiWriteVer Tu8 - FbNolock Tu8 - FnShm int32 - FapShm uintptr - FzDel uintptr - FzWal uintptr - FpWalFd uintptr - FpMainNext uintptr - FpMainRbuNext uintptr -} - -type rbu_file1 = Trbu_file1 - /* ** True for an RBU vacuum handle, or false otherwise. */ @@ -261749,7 +253180,7 @@ func _rbuShmChecksum(tls *libc.TLS, p uintptr) (r Ti64) { iRet = 0 if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { 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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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(uint64(libc.AtomicLoadPUint32(*(*uintptr)(unsafe.Pointer(bp))+libc.UintptrFromInt32(10)*4))< (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz { (*Tsqlite3rbu)(unsafe.Pointer(p)).FnPagePerSector = nSectorSize / (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz } else { @@ -261851,7 +253282,7 @@ func _rbuSetupCheckpoint(tls *libc.TLS, p uintptr, pState uintptr) { ** directory in which the target database and the wal file reside, in ** case it has not been synced since the rename() call in ** rbuMoveOalFile(). */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxSync})))(tls, pWal, int32(SQLITE_SYNC_NORMAL)) } } } @@ -261924,12 +253355,12 @@ func _rbuCheckpointFrame(tls *libc.TLS, p uintptr, pFrame uintptr) { pWal = (*Trbu_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpWalFd)).FpReal pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal iOff = int64((*TRbuFrame)(unsafe.Pointer(pFrame)).FiWalFrame-libc.Uint32FromInt32(1))*int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz+libc.Int32FromInt32(24)) + int64(32) + int64(24) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pWal)).FpMethods)).FxRead})))(tls, pWal, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc != 0 { return } iOff = int64((*TRbuFrame)(unsafe.Pointer(pFrame)).FiDbPage-libc.Uint32FromInt32(1)) * int64((*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz) - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxWrite})))(tls, pDb, (*Tsqlite3rbu)(unsafe.Pointer(p)).FaBuf, (*Tsqlite3rbu)(unsafe.Pointer(p)).Fpgsz, iOff) } /* @@ -261954,18 +253385,18 @@ func _rbuLockDatabase(tls *libc.TLS, db uintptr) (r int32) { Xsqlite3_file_control(tls, db, __ccgo_ts+8107, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { Xsqlite3_file_control(tls, db, __ccgo_ts+8107, int32(SQLITE_FCNTL_FILE_POINTER), bp) - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxUnlock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), SQLITE_LOCK_NONE) } Xsqlite3_file_control(tls, db, __ccgo_ts+8107, int32(RBU_ZIPVFS_CTRL_FILE_POINTER), bp) } else { Xsqlite3_file_control(tls, db, __ccgo_ts+8107, int32(SQLITE_FCNTL_FILE_POINTER), bp) } if rc == SQLITE_OK && (*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods != 0 { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_SHARED)) if rc == SQLITE_OK { - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FpMethods)).FxLock})))(tls, *(*uintptr)(unsafe.Pointer(bp)), int32(SQLITE_LOCK_EXCLUSIVE)) } } return rc @@ -262483,10 +253914,10 @@ func Xsqlite3rbu_step(tls *libc.TLS, p uintptr) (r int32) { if (*Tsqlite3rbu)(unsafe.Pointer(p)).FnStep >= (*Tsqlite3rbu)(unsafe.Pointer(p)).FnFrame { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal /* Sync the db file */ - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) /* Update nBackfill */ if (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc == SQLITE_OK { - (*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) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32, int32, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 { *(*Tu32)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)) + 24*4)) = (*Tsqlite3rbu)(unsafe.Pointer(p)).FiMaxFrame } @@ -263005,7 +254436,7 @@ func Xsqlite3rbu_close(tls *libc.TLS, p uintptr, pzErrmsg uintptr) (r int32) { /* 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) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } _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) { @@ -263126,7 +254557,7 @@ func Xsqlite3rbu_savestate(tls *libc.TLS, p uintptr) (r int32) { /* Sync the db file */ if rc == SQLITE_OK && (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage == int32(RBU_STAGE_CKPT) { pDb = (*Trbu_file)(unsafe.Pointer((*Tsqlite3rbu)(unsafe.Pointer(p)).FpTargetFd)).FpReal - rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) + rc = (*(*func(*libc.TLS, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer(pDb)).FpMethods)).FxSync})))(tls, pDb, int32(SQLITE_SYNC_NORMAL)) } (*Tsqlite3rbu)(unsafe.Pointer(p)).Frc = rc _rbuSaveState(tls, p, (*Tsqlite3rbu)(unsafe.Pointer(p)).FeStage) @@ -263171,9 +254602,11 @@ func _xDefaultRename(tls *libc.TLS, pArg uintptr, zOld uintptr, zNew uintptr) (r return rc } -func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, xRename uintptr) { - if xRename != 0 { - (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = xRename +type t__ccgo_fp__Xsqlite3rbu_rename_handler_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3rbu_rename_handler(tls *libc.TLS, pRbu uintptr, pArg uintptr, __ccgo_fp_xRename uintptr) { + if __ccgo_fp_xRename != 0 { + (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp_xRename (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FpRenameArg = pArg } else { (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FxRename = __ccgo_fp(_xDefaultRename) @@ -263245,7 +254678,7 @@ func _rbuUnlockShm(tls *libc.TLS, p uintptr) { var xShmLock uintptr _, _ = i, xShmLock if (*Trbu_file)(unsafe.Pointer(p)).FpRbu != 0 { - xShmLock = (*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock + xShmLock = (*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxShmLock i = 0 for { if !(i < int32(SQLITE_SHM_NLOCK)) { @@ -263448,7 +254881,7 @@ func _rbuVfsClose(tls *libc.TLS, pFile uintptr) (r int32) { } } /* Close the underlying file handle */ - rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods1)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) + rc = (*(*func(*libc.TLS, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(unsafe.Pointer((*Tsqlite3_file)(unsafe.Pointer((*Trbu_file)(unsafe.Pointer(p)).FpReal)).FpMethods)).FxClose})))(tls, (*Trbu_file)(unsafe.Pointer(p)).FpReal) return rc } @@ -263499,14 +254932,14 @@ func _rbuVfsRead(tls *libc.TLS, pFile uintptr, zBuf uintptr, iAmt int32, iOfst T rc = SQLITE_OK libc.Xmemset(tls, zBuf, 0, uint32(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) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, Tsqlite3_int64) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tsqlite3_io_methods)(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 ** database as part of an rbu vacuum operation, synthesize the ** contents of the first page if it does not yet exist. Otherwise, ** SQLite will not check for a *-wal file. */ if pRbu != 0 && (*Tsqlite3rbu)(unsafe.Pointer(pRbu)).FzTarget == uintptr(0) && rc == libc.Int32FromInt32(SQLITE_IOERR)|libc.Int32FromInt32(2)<= int32(libc.Uint32FromInt64(1280)/libc.Uint32FromInt64(40)) { _statResetCsr(tls, pCsr) - return _sqlite3CorruptError(tls, int32(227354)) + return _sqlite3CorruptError(tls, int32(227381)) } if (*TStatPage)(unsafe.Pointer(p)).FiCell == (*TStatPage)(unsafe.Pointer(p)).FnCell { (*(*TStatPage)(unsafe.Pointer(p + 1*40))).FiPgno = (*TStatPage)(unsafe.Pointer(p)).FiRightChildPg @@ -265433,316 +256804,6 @@ type TSessionHook = struct { type SessionHook = TSessionHook -type TSessionHook1 = struct { - FpCtx uintptr - FxOld uintptr - FxNew uintptr - FxCount uintptr - FxDepth uintptr -} - -type SessionHook1 = TSessionHook1 - -/* -** Session handle structure. - */ -type Tsqlite3_session1 = struct { - F__ccgo_align [0]uint32 - Fdb uintptr - FzDb uintptr - FbEnableSize int32 - FbEnable int32 - FbIndirect int32 - FbAutoAttach int32 - FbImplicitPK int32 - Frc int32 - FpFilterCtx uintptr - FxTableFilter uintptr - FnMalloc Ti64 - FnMaxChangesetSize Ti64 - FpZeroBlob uintptr - FpNext uintptr - FpTable uintptr - Fhook TSessionHook -} - -type sqlite3_session1 = Tsqlite3_session1 - -/* -** Instances of this structure are used to build strings or binary records. - */ -type TSessionBuffer1 = struct { - FaBuf uintptr - FnBuf int32 - FnAlloc int32 -} - -type SessionBuffer1 = TSessionBuffer1 - -/* -** An object of this type is used internally as an abstraction for -** input data. Input data may be supplied either as a single large buffer -** (e.g. sqlite3changeset_start()) or using a stream function (e.g. -** sqlite3changeset_start_strm()). -** -** bNoDiscard: -** If true, then the only time data is discarded is as a result of explicit -** sessionDiscardData() calls. Not within every sessionInputBuffer() call. - */ -type TSessionInput1 = struct { - FbNoDiscard int32 - FiCurrent int32 - FiNext int32 - FaData uintptr - FnData int32 - Fbuf TSessionBuffer - FxInput uintptr - FpIn uintptr - FbEof int32 -} - -type SessionInput1 = TSessionInput1 - -/* -** Structure for changeset iterators. - */ -type Tsqlite3_changeset_iter1 = struct { - Fin TSessionInput - Ftblhdr TSessionBuffer - FbPatchset int32 - FbInvert int32 - FbSkipEmpty int32 - Frc int32 - FpConflict uintptr - FzTab uintptr - FnCol int32 - Fop int32 - FbIndirect int32 - FabPK uintptr - FapValue uintptr -} - -type sqlite3_changeset_iter1 = Tsqlite3_changeset_iter1 - -/* -** Each session object maintains a set of the following structures, one -** for each table the session object is monitoring. The structures are -** stored in a linked list starting at sqlite3_session.pTable. -** -** The keys of the SessionTable.aChange[] hash table are all rows that have -** been modified in any way since the session object was attached to the -** table. -** -** The data associated with each hash-table entry is a structure containing -** a subset of the initial values that the modified row contained at the -** start of the session. Or no initial values if the row was inserted. -** -** pDfltStmt: -** This is only used by the sqlite3changegroup_xxx() APIs, not by -** regular sqlite3_session objects. It is a SELECT statement that -** selects the default value for each table column. For example, -** if the table is -** -** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') -** -** then this variable is the compiled version of: -** -** SELECT 1, NULL, 'abc' - */ -type TSessionTable1 = struct { - FpNext uintptr - FzName uintptr - FnCol int32 - FnTotalCol int32 - FbStat1 int32 - FbRowid int32 - FazCol uintptr - FazDflt uintptr - FaiIdx uintptr - FabPK uintptr - FnEntry int32 - FnChange int32 - FapChange uintptr - FpDfltStmt uintptr -} - -type SessionTable1 = TSessionTable1 - -/* -** RECORD FORMAT: -** -** The following record format is similar to (but not compatible with) that -** used in SQLite database files. This format is used as part of the -** change-set binary format, and so must be architecture independent. -** -** Unlike the SQLite database record format, each field is self-contained - -** there is no separation of header and data. Each field begins with a -** single byte describing its type, as follows: -** -** 0x00: Undefined value. -** 0x01: Integer value. -** 0x02: Real value. -** 0x03: Text value. -** 0x04: Blob value. -** 0x05: SQL NULL value. -** -** Note that the above match the definitions of SQLITE_INTEGER, SQLITE_TEXT -** and so on in sqlite3.h. For undefined and NULL values, the field consists -** only of the single type byte. For other types of values, the type byte -** is followed by: -** -** Text values: -** A varint containing the number of bytes in the value (encoded using -** UTF-8). Followed by a buffer containing the UTF-8 representation -** of the text value. There is no nul terminator. -** -** Blob values: -** A varint containing the number of bytes in the value, followed by -** a buffer containing the value itself. -** -** Integer values: -** An 8-byte big-endian integer value. -** -** Real values: -** An 8-byte big-endian IEEE 754-2008 real value. -** -** Varint values are encoded in the same way as varints in the SQLite -** record format. -** -** CHANGESET FORMAT: -** -** A changeset is a collection of DELETE, UPDATE and INSERT operations on -** one or more tables. Operations on a single table are grouped together, -** but may occur in any order (i.e. deletes, updates and inserts are all -** mixed together). -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** old.* record: (delete and update only) -** new.* record: (insert and update only) -** -** The "old.*" and "new.*" records, if present, are N field records in the -** format described above under "RECORD FORMAT", where N is the number of -** columns in the table. The i'th field of each record is associated with -** the i'th column of the table, counting from left to right in the order -** in which columns were declared in the CREATE TABLE statement. -** -** The new.* record that is part of each INSERT change contains the values -** that make up the new row. Similarly, the old.* record that is part of each -** DELETE change contains the values that made up the row that was deleted -** from the database. In the changeset format, the records that are part -** of INSERT or DELETE changes never contain any undefined (type byte 0x00) -** fields. -** -** Within the old.* record associated with an UPDATE change, all fields -** associated with table columns that are not PRIMARY KEY columns and are -** not modified by the UPDATE change are set to "undefined". Other fields -** are set to the values that made up the row before the UPDATE that the -** change records took place. Within the new.* record, fields associated -** with table columns modified by the UPDATE change contain the new -** values. Fields associated with table columns that are not modified -** are set to "undefined". -** -** PATCHSET FORMAT: -** -** A patchset is also a collection of changes. It is similar to a changeset, -** but leaves undefined those fields that are not useful if no conflict -** resolution is required when applying the changeset. -** -** Each group of changes begins with a table header: -** -** 1 byte: Constant 0x50 (capital 'P') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more changes to the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), UPDATE (0x17) or DELETE (0x09). -** 1 byte: The "indirect-change" flag. -** single record: (PK fields for DELETE, PK and modified fields for UPDATE, -** full record for INSERT). -** -** As in the changeset format, each field of the single record that is part -** of a patchset change is associated with the correspondingly positioned -** table column, counting from left to right within the CREATE TABLE -** statement. -** -** For a DELETE change, all fields within the record except those associated -** with PRIMARY KEY columns are omitted. The PRIMARY KEY fields contain the -** values identifying the row to delete. -** -** For an UPDATE change, all fields except those associated with PRIMARY KEY -** columns and columns that are modified by the UPDATE are set to "undefined". -** PRIMARY KEY fields contain the values identifying the table row to update, -** and fields associated with modified columns contain the new column values. -** -** The records associated with INSERT changes are in the same format as for -** changesets. It is not possible for a record associated with an INSERT -** change to contain a field set to "undefined". -** -** REBASE BLOB FORMAT: -** -** A rebase blob may be output by sqlite3changeset_apply_v2() and its -** streaming equivalent for use with the sqlite3_rebaser APIs to rebase -** existing changesets. A rebase blob contains one entry for each conflict -** resolved using either the OMIT or REPLACE strategies within the apply_v2() -** call. -** -** The format used for a rebase blob is very similar to that used for -** changesets. All entries related to a single table are grouped together. -** -** Each group of entries begins with a table header in changeset format: -** -** 1 byte: Constant 0x54 (capital 'T') -** Varint: Number of columns in the table. -** nCol bytes: 0x01 for PK columns, 0x00 otherwise. -** N bytes: Unqualified table name (encoded using UTF-8). Nul-terminated. -** -** Followed by one or more entries associated with the table. -** -** 1 byte: Either SQLITE_INSERT (0x12), DELETE (0x09). -** 1 byte: Flag. 0x01 for REPLACE, 0x00 for OMIT. -** record: (in the record format defined above). -** -** In a rebase blob, the first field is set to SQLITE_INSERT if the change -** that caused the conflict was an INSERT or UPDATE, or to SQLITE_DELETE if -** it was a DELETE. The second field is set to 0x01 if the conflict -** resolution strategy was REPLACE, or 0x00 if it was OMIT. -** -** If the change that caused the conflict was a DELETE, then the single -** record is a copy of the old.* record from the original changeset. If it -** was an INSERT, then the single record is a copy of the new.* record. If -** the conflicting change was an UPDATE, then the single record is a copy -** of the new.* record with the PK fields filled in based on the original -** old.* record. - */ - -/* -** For each row modified during a session, there exists a single instance of -** this structure stored in a SessionTable.aChange[] hash table. - */ -type TSessionChange1 = struct { - Fop Tu8 - FbIndirect Tu8 - FnRecordField Tu16 - FnMaxSize int32 - FnRecord int32 - FaRecord uintptr - FpNext uintptr -} - -type SessionChange1 = TSessionChange1 - // C documentation // // /* @@ -267147,13 +258208,6 @@ type TSessionStat1Ctx = struct { type SessionStat1Ctx = TSessionStat1Ctx -type TSessionStat1Ctx1 = struct { - Fhook TSessionHook - FpSession uintptr -} - -type SessionStat1Ctx1 = TSessionStat1Ctx1 - func _sessionStat1Old(tls *libc.TLS, pCtx uintptr, iCol int32, ppVal uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -267645,14 +258699,6 @@ type TSessionDiffCtx = struct { type SessionDiffCtx = TSessionDiffCtx -type TSessionDiffCtx1 = struct { - FpStmt uintptr - FbRowid int32 - FnOldOff int32 -} - -type SessionDiffCtx1 = TSessionDiffCtx1 - // C documentation // // /* @@ -268160,15 +259206,17 @@ func Xsqlite3session_delete(tls *libc.TLS, pSession uintptr) { Xsqlite3_free(tls, pSession) } +type t__ccgo_fp__Xsqlite3session_table_filter_1 = func(*libc.TLS, uintptr, uintptr) int32 + // C documentation // // /* // ** Set a table filter on a Session Object. // */ -func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, xFilter uintptr, pCtx uintptr) { +func Xsqlite3session_table_filter(tls *libc.TLS, pSession uintptr, __ccgo_fp_xFilter uintptr, pCtx uintptr) { (*Tsqlite3_session)(unsafe.Pointer(pSession)).FbAutoAttach = int32(1) (*Tsqlite3_session)(unsafe.Pointer(pSession)).FpFilterCtx = pCtx - (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = xFilter + (*Tsqlite3_session)(unsafe.Pointer(pSession)).FxTableFilter = __ccgo_fp_xFilter } // C documentation @@ -268790,7 +259838,7 @@ func _sessionAppendTableHdr(tls *libc.TLS, pBuf uintptr, bPatchset int32, pTab u // ** occurs, an SQLite error code is returned and both output variables set // ** to 0. // */ -func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { +func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, __ccgo_fp_xOutput uintptr, pOut uintptr, pnChangeset uintptr, ppChangeset uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var db, p, pTab, zName uintptr @@ -268804,7 +259852,7 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, /* Zero the output variables in case an error occurs. If this session ** object is already in the error state (sqlite3_session.rc != SQLITE_OK), ** this call will be a no-op. */ - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = 0 *(*uintptr)(unsafe.Pointer(ppChangeset)) = uintptr(0) } @@ -268880,8 +259928,8 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, } /* If the buffer is now larger than sessions_strm_chunk_size, pass ** its contents to the xOutput() callback. */ - if xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + if __ccgo_fp_xOutput != 0 && *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > nNoop && (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) nNoop = -int32(1) (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf = 0 } @@ -268906,13 +259954,13 @@ func _sessionGenerateChangeset(tls *libc.TLS, pSession uintptr, bPatchset int32, pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp + 12)) == SQLITE_OK { - if xOutput == uintptr(0) { + if __ccgo_fp_xOutput == uintptr(0) { *(*int32)(unsafe.Pointer(pnChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf *(*uintptr)(unsafe.Pointer(ppChangeset)) = (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf = uintptr(0) } else { if (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) + *(*int32)(unsafe.Pointer(bp + 12)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp))).FnBuf) } } } @@ -268941,28 +259989,32 @@ func Xsqlite3session_changeset(tls *libc.TLS, pSession uintptr, pnChangeset uint return rc } +type t__ccgo_fp__Xsqlite3session_changeset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_changeset(). // */ -func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_changeset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, 0, xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, 0, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } +type t__ccgo_fp__Xsqlite3session_patchset_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3session_patchset(). // */ -func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, xOutput uintptr, pOut uintptr) (r int32) { - if xOutput == uintptr(0) { +func Xsqlite3session_patchset_strm(tls *libc.TLS, pSession uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + if __ccgo_fp_xOutput == uintptr(0) { return int32(SQLITE_MISUSE) } - return _sessionGenerateChangeset(tls, pSession, int32(1), xOutput, pOut, uintptr(0), uintptr(0)) + return _sessionGenerateChangeset(tls, pSession, int32(1), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -269101,7 +260153,7 @@ func Xsqlite3session_changeset_size(tls *libc.TLS, pSession uintptr) (r Tsqlite3 // /* // ** Do the work for either sqlite3changeset_start() or start_strm(). // */ -func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { +func _sessionChangesetStart(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, nChangeset int32, pChangeset uintptr, bInvert int32, bSkipEmpty int32) (r int32) { var nByte, v1 int32 var pRet uintptr _, _, _ = nByte, pRet, v1 /* Number of bytes to allocate for iterator */ @@ -269116,9 +260168,9 @@ func _sessionChangesetStart(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintp libc.Xmemset(tls, pRet, 0, uint32(100)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FaData = pChangeset (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FnData = nChangeset - (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = xInput + (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FxInput = __ccgo_fp_xInput (*Tsqlite3_changeset_iter)(unsafe.Pointer(pRet)).Fin.FpIn = pIn - if xInput != 0 { + if __ccgo_fp_xInput != 0 { v1 = 0 } else { v1 = int32(1) @@ -269147,20 +260199,24 @@ func Xsqlite3changeset_start_v2(tls *libc.TLS, pp uintptr, nChangeset int32, pCh return _sessionChangesetStart(tls, pp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInvert, 0) } +type t__ccgo_fp__Xsqlite3changeset_start_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_start(). // */ -func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr) (r int32) { - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), 0, 0) +func Xsqlite3changeset_start_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), 0, 0) } -func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, xInput uintptr, pIn uintptr, flags int32) (r int32) { +type t__ccgo_fp__Xsqlite3changeset_start_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +func Xsqlite3changeset_start_v2_strm(tls *libc.TLS, pp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, flags int32) (r int32) { var bInvert int32 _ = bInvert bInvert = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETSTART_INVERT) != 0)) - return _sessionChangesetStart(tls, pp, xInput, pIn, 0, uintptr(0), bInvert, 0) + return _sessionChangesetStart(tls, pp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInvert, 0) } // C documentation @@ -269335,7 +260391,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(231641)) + rc = _sqlite3CorruptError(tls, int32(231668)) } else { v3 = pIn + 8 v2 = *(*int32)(unsafe.Pointer(v3)) @@ -269359,7 +260415,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(231661)) + rc = _sqlite3CorruptError(tls, int32(231688)) } else { if eType == int32(SQLITE_TEXT) { v4 = int32(SQLITE_UTF8) @@ -269374,7 +260430,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(231671)) + rc = _sqlite3CorruptError(tls, int32(231698)) } else { *(*Tsqlite3_int64)(unsafe.Pointer(bp + 8)) = _sessionGetI64(tls, aVal) if eType == int32(SQLITE_INTEGER) { @@ -269430,7 +260486,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(231719)) + rc = _sqlite3CorruptError(tls, int32(231746)) } else { rc = _sessionInputBuffer(tls, pIn, nRead+*(*int32)(unsafe.Pointer(bp))+int32(100)) nRead += *(*int32)(unsafe.Pointer(bp)) @@ -269535,7 +260591,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(231807)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(231834)) } } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -269641,7 +260697,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(231893)) + v7 = _sqlite3CorruptError(tls, int32(231920)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v7 return v7 } @@ -269651,7 +260707,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(231899)) + v10 = _sqlite3CorruptError(tls, int32(231926)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v10 return v10 } @@ -269730,7 +260786,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)*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(231943)) + v16 = _sqlite3CorruptError(tls, int32(231970)) (*Tsqlite3_changeset_iter)(unsafe.Pointer(p)).Frc = v16 return v16 } @@ -269991,7 +261047,7 @@ func Xsqlite3changeset_finalize(tls *libc.TLS, p uintptr) (r int32) { return rc } -func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { +func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnInverted uintptr, ppInverted uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var abPK, apVal, pVal, pVal1, v7 uintptr @@ -270140,11 +261196,11 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu goto finished_invert } default: - *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232308)) + *(*int32)(unsafe.Pointer(bp)) = _sqlite3CorruptError(tls, int32(232335)) goto finished_invert } - if xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf = 0 if *(*int32)(unsafe.Pointer(bp)) != SQLITE_OK { goto finished_invert @@ -270156,8 +261212,8 @@ func _sessionChangesetInvert(tls *libc.TLS, pInput uintptr, xOutput uintptr, pOu *(*uintptr)(unsafe.Pointer(ppInverted)) = (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf = uintptr(0) } else { - if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 && xOutput != uintptr(0) { - *(*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) + if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 && __ccgo_fp_xOutput != uintptr(0) { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) } } goto finished_invert @@ -270185,12 +261241,16 @@ func Xsqlite3changeset_invert(tls *libc.TLS, nChangeset int32, pChangeset uintpt return _sessionChangesetInvert(tls, bp, uintptr(0), uintptr(0), pnInverted, ppInverted) } +type t__ccgo_fp__Xsqlite3changeset_invert_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_invert_strm_2 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_invert(). // */ -func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_invert_strm(tls *libc.TLS, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(48) defer tls.Free(48) var rc int32 @@ -270198,9 +261258,9 @@ func Xsqlite3changeset_invert_strm(tls *libc.TLS, xInput uintptr, pIn uintptr, x _ = rc /* Set up the input stream */ libc.Xmemset(tls, bp, 0, uint32(44)) - (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = xInput + (*(*TSessionInput)(unsafe.Pointer(bp))).FxInput = __ccgo_fp_xInput (*(*TSessionInput)(unsafe.Pointer(bp))).FpIn = pIn - rc = _sessionChangesetInvert(tls, bp, xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionChangesetInvert(tls, bp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3_free(tls, (*(*TSessionInput)(unsafe.Pointer(bp))).Fbuf.FaBuf) return rc } @@ -270213,14 +261273,6 @@ type TSessionUpdate = struct { type SessionUpdate = TSessionUpdate -type TSessionUpdate1 = struct { - FpStmt uintptr - FaMask uintptr - FpNext uintptr -} - -type SessionUpdate1 = TSessionUpdate1 - type TSessionApplyCtx = struct { Fdb uintptr FpDelete uintptr @@ -270244,29 +261296,6 @@ type TSessionApplyCtx = struct { type SessionApplyCtx = TSessionApplyCtx -type TSessionApplyCtx1 = struct { - Fdb uintptr - FpDelete uintptr - FpInsert uintptr - FpSelect uintptr - FnCol int32 - FazCol uintptr - FabPK uintptr - FaUpdateMask uintptr - FpUp uintptr - FbStat1 int32 - FbDeferConstraints int32 - FbInvertConstraints int32 - Fconstraints TSessionBuffer - Frebase TSessionBuffer - FbRebaseStarted Tu8 - FbRebase Tu8 - FbIgnoreNoop Tu8 - FbRowid int32 -} - -type SessionApplyCtx1 = TSessionApplyCtx1 - /* Number of prepared UPDATE statements to cache. */ // C documentation @@ -270670,7 +261699,7 @@ func _sessionBindValue(tls *libc.TLS, pStmt uintptr, i int32, pVal uintptr) (r i // ** // ** An SQLite error code is returned if an error occurs. Otherwise, SQLITE_OK. // */ -func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { +func _sessionBindRow(tls *libc.TLS, pIter uintptr, __ccgo_fp_xValue uintptr, nCol int32, abPK uintptr, pStmt uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i, rc int32 @@ -270688,11 +261717,11 @@ func _sessionBindRow(tls *libc.TLS, pIter uintptr, xValue uintptr, nCol int32, a } if !(abPK != 0) || *(*Tu8)(unsafe.Pointer(abPK + uintptr(i))) != 0 { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xValue})))(tls, pIter, i, bp) + (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xValue})))(tls, pIter, i, bp) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { /* The value in the changeset was "undefined". This indicates a ** corrupt changeset blob. */ - rc = _sqlite3CorruptError(tls, int32(232790)) + rc = _sqlite3CorruptError(tls, int32(232817)) } else { rc = _sessionBindValue(tls, pStmt, i+int32(1), *(*uintptr)(unsafe.Pointer(bp))) } @@ -270869,7 +261898,7 @@ func _sessionRebaseAdd(tls *libc.TLS, p uintptr, eType int32, pIter uintptr) (r // ** SQLITE_MISUSE. If the conflict handler returns SQLITE_CHANGESET_OMIT, // ** this function returns SQLITE_OK. // */ -func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { +func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var aBlob uintptr @@ -270893,7 +261922,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt res = SQLITE_CHANGESET_OMIT } else { (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType, pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType, pIter) (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FpConflict = uintptr(0) } *(*int32)(unsafe.Pointer(bp)) = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpSelect) @@ -270908,7 +261937,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt return SQLITE_OK } else { /* No other row with the new.* primary key. */ - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, eType+int32(1), pIter) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, eType+int32(1), pIter) if res == int32(SQLITE_CHANGESET_REPLACE) { *(*int32)(unsafe.Pointer(bp)) = int32(SQLITE_MISUSE) } @@ -270959,7 +261988,7 @@ func _sessionConflictHandler(tls *libc.TLS, eType int32, p uintptr, pIter uintpt // ** returns SQLITE_ABORT. Otherwise, if no error occurs, SQLITE_OK is // ** returned. // */ -func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { +func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, pbReplace uintptr, pbRetry uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var abPK, pNew, pOld, v1 uintptr @@ -270999,10 +262028,10 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp Xsqlite3_step(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpDelete) if rc == SQLITE_OK && Xsqlite3_changes(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).Fdb) == 0 && int32((*TSessionApplyCtx)(unsafe.Pointer(p)).FbIgnoreNoop) == 0 { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -271040,11 +262069,11 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp /* A NOTFOUND or DATA error. Search the table to see if it contains ** a row with a matching primary key. If so, this is a DATA conflict. ** Otherwise, if there is no primary key match, it is a NOTFOUND. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, xConflict, pCtx, pbRetry) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_DATA), p, pIter, __ccgo_fp_xConflict, pCtx, pbRetry) } else { if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { /* This is always a CONSTRAINT conflict. */ - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, uintptr(0)) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, uintptr(0)) } } } else { @@ -271067,7 +262096,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(p)).FpInsert) } if rc&int32(0xff) == int32(SQLITE_CONSTRAINT) { - rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, xConflict, pCtx, pbReplace) + rc = _sessionConflictHandler(tls, int32(SQLITE_CHANGESET_CONFLICT), p, pIter, __ccgo_fp_xConflict, pCtx, pbReplace) } } } @@ -271086,7 +262115,7 @@ func _sessionApplyOneOp(tls *libc.TLS, pIter uintptr, p uintptr, xConflict uintp // ** returns SQLITE_CHANGESET_REPLACE - indicating that the change should be // ** retried in some manner. // */ -func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -271095,7 +262124,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply _ = rc *(*int32)(unsafe.Pointer(bp)) = 0 *(*int32)(unsafe.Pointer(bp + 4)) = 0 - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, bp, bp+4) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, bp, bp+4) if rc == SQLITE_OK { /* If the bRetry flag is set, the change has not been applied due to an ** SQLITE_CHANGESET_DATA problem (i.e. this is an UPDATE or DELETE and @@ -271105,7 +262134,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply ** but pass NULL as the final argument so that sessionApplyOneOp() ignores ** the SQLITE_CHANGESET_DATA problem. */ if *(*int32)(unsafe.Pointer(bp + 4)) != 0 { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } else { if *(*int32)(unsafe.Pointer(bp)) != 0 { rc = Xsqlite3_exec(tls, db, __ccgo_ts+36170, uintptr(0), uintptr(0), uintptr(0)) @@ -271118,7 +262147,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply rc = Xsqlite3_reset(tls, (*TSessionApplyCtx)(unsafe.Pointer(pApply)).FpDelete) } if rc == SQLITE_OK { - rc = _sessionApplyOneOp(tls, pIter, pApply, xConflict, pCtx, uintptr(0), uintptr(0)) + rc = _sessionApplyOneOp(tls, pIter, pApply, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0)) } if rc == SQLITE_OK { rc = Xsqlite3_exec(tls, db, __ccgo_ts+36191, uintptr(0), uintptr(0), uintptr(0)) @@ -271134,7 +262163,7 @@ func _sessionApplyOneWithRetry(tls *libc.TLS, db uintptr, pIter uintptr, pApply // /* // ** Retry the changes accumulated in the pApply->constraints buffer. // */ -func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, xConflict uintptr, pCtx uintptr) (r int32) { +func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab uintptr, pApply uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var cons TSessionBuffer @@ -271161,7 +262190,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u libc.Xmemset(tls, (*Tsqlite3_changeset_iter)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp + 4)))).FapValue, 0, nByte) } for *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) { - *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 4)), pApply, xConflict, pCtx) + *(*int32)(unsafe.Pointer(bp)) = _sessionApplyOneWithRetry(tls, db, *(*uintptr)(unsafe.Pointer(bp + 4)), pApply, __ccgo_fp_xConflict, pCtx) } rc2 = Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp + 4))) if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { @@ -271189,7 +262218,7 @@ func _sessionRetryConstraints(tls *libc.TLS, db uintptr, bPatchset int32, zTab u // ** conflict handler callback is invoked to resolve any conflicts encountered // ** while applying the change. // */ -func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(240) defer tls.Free(240) var bPatchset, i, nMinCol, nTab, rc, rc2, res, schemaMismatch, v2, v3, v4, v6 int32 @@ -271229,7 +262258,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui for rc == SQLITE_OK && int32(SQLITE_ROW) == Xsqlite3changeset_next(tls, pIter) { Xsqlite3changeset_op(tls, pIter, bp+92, bp+84, bp+88, uintptr(0)) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) || Xsqlite3_strnicmp(tls, *(*uintptr)(unsafe.Pointer(bp + 92)), *(*uintptr)(unsafe.Pointer(bp)), nTab+int32(1)) != 0 { - rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, __ccgo_fp_xConflict, pCtx) if rc != SQLITE_OK { break } @@ -271253,7 +262282,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui /* If an xFilter() callback was specified, invoke it now. If the ** xFilter callback returns zero, skip this table. If it returns ** 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)))) + schemaMismatch = libc.BoolInt32(__ccgo_fp_xFilter != 0 && 0 == (*(*func(*libc.TLS, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xFilter})))(tls, pCtx, *(*uintptr)(unsafe.Pointer(bp + 92)))) if schemaMismatch != 0 { *(*uintptr)(unsafe.Pointer(bp)) = Xsqlite3_mprintf(tls, __ccgo_ts+4829, libc.VaList(bp+216, *(*uintptr)(unsafe.Pointer(bp + 92)))) if *(*uintptr)(unsafe.Pointer(bp)) == uintptr(0) { @@ -271329,7 +262358,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui if schemaMismatch != 0 { continue } - rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+4, xConflict, pCtx) + rc = _sessionApplyOneWithRetry(tls, db, pIter, bp+4, __ccgo_fp_xConflict, pCtx) } bPatchset = (*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbPatchset if rc == SQLITE_OK { @@ -271338,7 +262367,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui Xsqlite3changeset_finalize(tls, pIter) } if rc == SQLITE_OK { - rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, xConflict, pCtx) + rc = _sessionRetryConstraints(tls, db, bPatchset, *(*uintptr)(unsafe.Pointer(bp)), bp+4, __ccgo_fp_xConflict, pCtx) } if rc == SQLITE_OK { Xsqlite3_db_status(tls, db, int32(SQLITE_DBSTATUS_DEFERRED_FKS), bp+100, bp+104, 0) @@ -271346,7 +262375,7 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui res = int32(SQLITE_CHANGESET_ABORT) libc.Xmemset(tls, bp+108, 0, uint32(100)) (*(*Tsqlite3_changeset_iter)(unsafe.Pointer(bp + 108))).FnCol = *(*int32)(unsafe.Pointer(bp + 100)) - res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+108) + res = (*(*func(*libc.TLS, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xConflict})))(tls, pCtx, int32(SQLITE_CHANGESET_FOREIGN_KEY), bp+108) if res != SQLITE_CHANGESET_OMIT { rc = int32(SQLITE_CONSTRAINT) } @@ -271385,13 +262414,17 @@ func _sessionChangesetApply(tls *libc.TLS, db uintptr, pIter uintptr, xFilter ui return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* // ** Apply the changeset passed via pChangeset/nChangeset to the main // ** database attached to handle "db". // */ -func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInv, rc int32 @@ -271400,11 +262433,15 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh bInv = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) rc = _sessionChangesetStart(tls, bp, uintptr(0), uintptr(0), nChangeset, pChangeset, bInv, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } +type t__ccgo_fp__Xsqlite3changeset_apply_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -271412,10 +262449,16 @@ func Xsqlite3changeset_apply_v2(tls *libc.TLS, db uintptr, nChangeset int32, pCh // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) +func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChangeset uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2(tls, db, nChangeset, pChangeset, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) } +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_v2_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 + // C documentation // // /* @@ -271423,37 +262466,29 @@ func Xsqlite3changeset_apply(tls *libc.TLS, db uintptr, nChangeset int32, pChang // ** attached to handle "db". Invoke the supplied conflict handler callback // ** to resolve any conflicts encountered while applying the change. // */ -func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { +func Xsqlite3changeset_apply_v2_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr, ppRebase uintptr, pnRebase uintptr, flags int32) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var bInverse, rc int32 var _ /* pIter at bp+0 */ uintptr _, _ = bInverse, rc /* Iterator to skip through changeset */ bInverse = libc.BoolInt32(!!(flags&libc.Int32FromInt32(SQLITE_CHANGESETAPPLY_INVERT) != 0)) - rc = _sessionChangesetStart(tls, bp, xInput, pIn, 0, uintptr(0), bInverse, int32(1)) + rc = _sessionChangesetStart(tls, bp, __ccgo_fp_xInput, pIn, 0, uintptr(0), bInverse, int32(1)) if rc == SQLITE_OK { - rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), xFilter, xConflict, pCtx, ppRebase, pnRebase, flags) + rc = _sessionChangesetApply(tls, db, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, ppRebase, pnRebase, flags) } return rc } -func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, xInput uintptr, pIn uintptr, xFilter uintptr, xConflict uintptr, pCtx uintptr) (r int32) { - return Xsqlite3changeset_apply_v2_strm(tls, db, xInput, pIn, xFilter, xConflict, pCtx, uintptr(0), uintptr(0), 0) -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 -/* -** sqlite3_changegroup handle. - */ -type Tsqlite3_changegroup1 = struct { - Frc int32 - FbPatch int32 - FpList uintptr - Frec TSessionBuffer - Fdb uintptr - FzDb uintptr -} +type t__ccgo_fp__Xsqlite3changeset_apply_strm_3 = func(*libc.TLS, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_apply_strm_4 = func(*libc.TLS, uintptr, int32, uintptr) int32 -type sqlite3_changegroup1 = Tsqlite3_changegroup1 +func Xsqlite3changeset_apply_strm(tls *libc.TLS, db uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xFilter uintptr, __ccgo_fp_xConflict uintptr, pCtx uintptr) (r int32) { + return Xsqlite3changeset_apply_v2_strm(tls, db, __ccgo_fp_xInput, pIn, __ccgo_fp_xFilter, __ccgo_fp_xConflict, pCtx, uintptr(0), uintptr(0), 0) +} // C documentation // @@ -272029,7 +263064,7 @@ func _sessionChangesetToHash(tls *libc.TLS, pIter uintptr, pGrp uintptr, bRebase // ** error code. If an error occurs and xOutput is NULL, (*ppOut) and (*pnOut) // ** are both set to 0 before returning. // */ -func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var i int32 @@ -272064,8 +263099,8 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu _sessionAppendByte(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).Fop, bp) _sessionAppendByte(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).FbIndirect, bp) _sessionAppendBlob(tls, bp+4, (*TSessionChange)(unsafe.Pointer(p)).FaRecord, (*TSessionChange)(unsafe.Pointer(p)).FnRecord, bp) - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { - *(*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) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf >= _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf = 0 } goto _3 @@ -272084,9 +263119,9 @@ func _sessionChangegroupOutput(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOu pTab = (*TSessionTable)(unsafe.Pointer(pTab)).FpNext } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf > 0 { - *(*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) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 4))).FnBuf) } } else { if ppOut != 0 { @@ -272197,18 +263232,20 @@ func Xsqlite3changegroup_output(tls *libc.TLS, pGrp uintptr, pnData uintptr, ppD return _sessionChangegroupOutput(tls, pGrp, uintptr(0), uintptr(0), pnData, ppData) } +type t__ccgo_fp__Xsqlite3changegroup_add_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + // C documentation // // /* // ** Streaming versions of changegroup_add(). // */ -func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, pIn uintptr) (r int32) { +func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xInput uintptr, pIn uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc /* Return code */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { rc = _sessionChangesetToHash(tls, *(*uintptr)(unsafe.Pointer(bp)), pGrp, 0) } @@ -272216,13 +263253,15 @@ func Xsqlite3changegroup_add_strm(tls *libc.TLS, pGrp uintptr, xInput uintptr, p return rc } +type t__ccgo_fp__Xsqlite3changegroup_output_strm_1 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming versions of changegroup_output(). // */ -func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, xOutput uintptr, pOut uintptr) (r int32) { - return _sessionChangegroupOutput(tls, pGrp, xOutput, pOut, uintptr(0), uintptr(0)) +func Xsqlite3changegroup_output_strm(tls *libc.TLS, pGrp uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { + return _sessionChangegroupOutput(tls, pGrp, __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) } // C documentation @@ -272264,12 +263303,18 @@ func Xsqlite3changeset_concat(tls *libc.TLS, nLeft int32, pLeft uintptr, nRight return rc } +type t__ccgo_fp__Xsqlite3changeset_concat_strm_0 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_2 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3changeset_concat_strm_4 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Streaming version of sqlite3changeset_concat(). // */ -func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, xInputB uintptr, pInB uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3changeset_concat_strm(tls *libc.TLS, __ccgo_fp_xInputA uintptr, pInA uintptr, __ccgo_fp_xInputB uintptr, pInB uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -272277,27 +263322,18 @@ func Xsqlite3changeset_concat_strm(tls *libc.TLS, xInputA uintptr, pInA uintptr, _ = rc rc = Xsqlite3changegroup_new(tls, bp) if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputA, pInA) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputA, pInA) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xInputB, pInB) + rc = Xsqlite3changegroup_add_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xInputB, pInB) } if rc == SQLITE_OK { - rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut) + rc = Xsqlite3changegroup_output_strm(tls, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut) } Xsqlite3changegroup_delete(tls, *(*uintptr)(unsafe.Pointer(bp))) return rc } -/* -** Changeset rebaser handle. - */ -type Tsqlite3_rebaser1 = struct { - Fgrp Tsqlite3_changegroup -} - -type sqlite3_rebaser1 = Tsqlite3_rebaser1 - // C documentation // // /* @@ -272452,7 +263488,7 @@ func _sessionAppendPartialUpdate(tls *libc.TLS, pBuf uintptr, pIter uintptr, aRe // ** pnOut are not NULL, then the two output parameters are set to 0 before // ** returning. // */ -func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { +func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr, pnOut uintptr, ppOut uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var bDone, iHash, v2 int32 @@ -272560,8 +263596,8 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO _sessionAppendByte(tls, bp+16, uint8((*Tsqlite3_changeset_iter)(unsafe.Pointer(pIter)).FbIndirect), bp) _sessionAppendBlob(tls, bp+16, *(*uintptr)(unsafe.Pointer(bp + 4)), *(*int32)(unsafe.Pointer(bp + 8)), bp) } - if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > _sessions_strm_chunk_size { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) + if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK && __ccgo_fp_xOutput != 0 && (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > _sessions_strm_chunk_size { + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf = 0 } if *(*int32)(unsafe.Pointer(bp)) != 0 { @@ -272573,9 +263609,9 @@ func _sessionRebase(tls *libc.TLS, p uintptr, pIter uintptr, xOutput uintptr, pO libc.Xmemset(tls, bp+16, 0, uint32(12)) } if *(*int32)(unsafe.Pointer(bp)) == SQLITE_OK { - if xOutput != 0 { + if __ccgo_fp_xOutput != 0 { if (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf > 0 { - *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) + *(*int32)(unsafe.Pointer(bp)) = (*(*func(*libc.TLS, uintptr, uintptr, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xOutput})))(tls, pOut, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FaBuf, (*(*TSessionBuffer)(unsafe.Pointer(bp + 16))).FnBuf) } } else { if ppOut != 0 { @@ -272649,21 +263685,25 @@ func Xsqlite3rebaser_rebase(tls *libc.TLS, p uintptr, nIn int32, pIn uintptr, pn return rc } +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_1 = func(*libc.TLS, uintptr, uintptr, uintptr) int32 + +type t__ccgo_fp__Xsqlite3rebaser_rebase_strm_3 = func(*libc.TLS, uintptr, uintptr, int32) int32 + // C documentation // // /* // ** Rebase a changeset according to current rebaser configuration // */ -func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, xInput uintptr, pIn uintptr, xOutput uintptr, pOut uintptr) (r int32) { +func Xsqlite3rebaser_rebase_strm(tls *libc.TLS, p uintptr, __ccgo_fp_xInput uintptr, pIn uintptr, __ccgo_fp_xOutput uintptr, pOut uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 var _ /* pIter at bp+0 */ uintptr _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) /* Iterator to skip through input */ - rc = Xsqlite3changeset_start_strm(tls, bp, xInput, pIn) + rc = Xsqlite3changeset_start_strm(tls, bp, __ccgo_fp_xInput, pIn) if rc == SQLITE_OK { - rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), xOutput, pOut, uintptr(0), uintptr(0)) + rc = _sessionRebase(tls, p, *(*uintptr)(unsafe.Pointer(bp)), __ccgo_fp_xOutput, pOut, uintptr(0), uintptr(0)) Xsqlite3changeset_finalize(tls, *(*uintptr)(unsafe.Pointer(bp))) } return rc @@ -272822,18 +263862,6 @@ type TFts5Colset = struct { type Fts5Colset = TFts5Colset -/* If a NEAR() clump or phrase may only match a specific set of columns, -** then an object of the following type is used to record the set of columns. -** Each entry in the aiCol[] array is a column that may be matched. -** -** This object is used by fts5_expr.c and fts5_index.c. - */ -type TFts5Colset1 = struct { - FnCol int32 -} - -type Fts5Colset1 = TFts5Colset1 - /* Size (int bytes) of a complete Fts5Colset object with N columns. */ /************************************************************************** @@ -272878,113 +263906,20 @@ type TFts5Config = struct { FpzErrmsg uintptr } -type Fts5Config = TFts5Config - -type TFts5TokenizerConfig = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig = TFts5TokenizerConfig - -type TFts5TokenizerConfig1 = struct { - FpTok uintptr - FpApi2 uintptr - FpApi1 uintptr - FazArg uintptr - FnArg int32 - FePattern int32 - FpLocale uintptr - FnLocale int32 -} - -type Fts5TokenizerConfig1 = TFts5TokenizerConfig1 - -/* -** An instance of the following structure encodes all information that can -** be gleaned from the CREATE VIRTUAL TABLE statement. -** -** And all information loaded from the %_config table. -** -** nAutomerge: -** The minimum number of segments that an auto-merge operation should -** attempt to merge together. A value of 1 sets the object to use the -** compile time default. Zero disables auto-merge altogether. -** -** bContentlessDelete: -** True if the contentless_delete option was present in the CREATE -** VIRTUAL TABLE statement. -** -** zContent: -** -** zContentRowid: -** The value of the content_rowid= option, if one was specified. Or -** the string "rowid" otherwise. This text is not quoted - if it is -** used as part of an SQL statement it needs to be quoted appropriately. -** -** zContentExprlist: -** -** pzErrmsg: -** This exists in order to allow the fts5_index.c module to return a -** decent error message if it encounters a file-format version it does -** not understand. -** -** bColumnsize: -** True if the %_docsize table is created. -** -** bPrefixIndex: -** This is only used for debugging. If set to false, any prefix indexes -** are ignored. This value is configured using: -** -** INSERT INTO tbl(tbl, rank) VALUES('prefix-index', $bPrefixIndex); -** -** bLocale: -** Set to true if locale=1 was specified when the table was created. - */ -type TFts5Config1 = struct { - Fdb uintptr - FpGlobal uintptr - FzDb uintptr - FzName uintptr - FnCol int32 - FazCol uintptr - FabUnindexed uintptr - FnPrefix int32 - FaPrefix uintptr - FeContent int32 - FbContentlessDelete int32 - FbContentlessUnindexed int32 - FzContent uintptr - FzContentRowid uintptr - FbColumnsize int32 - FbTokendata int32 - FbLocale int32 - FeDetail int32 - FzContentExprlist uintptr - Ft TFts5TokenizerConfig - FbLock int32 - FiVersion int32 - FiCookie int32 - Fpgsz int32 - FnAutomerge int32 - FnCrisisMerge int32 - FnUsermerge int32 - FnHashSize int32 - FzRank uintptr - FzRankArgs uintptr - FbSecureDelete int32 - FnDeleteMerge int32 - FbPrefixInsttoken int32 - FpzErrmsg uintptr -} - -type Fts5Config1 = TFts5Config1 +type Fts5Config = TFts5Config + +type TFts5TokenizerConfig = struct { + FpTok uintptr + FpApi2 uintptr + FpApi1 uintptr + FazArg uintptr + FnArg int32 + FePattern int32 + FpLocale uintptr + FnLocale int32 +} + +type Fts5TokenizerConfig = TFts5TokenizerConfig /* ** End of interface to code in fts5_config.c. @@ -273007,14 +263942,6 @@ type TFts5Buffer = struct { type Fts5Buffer = TFts5Buffer -type TFts5Buffer1 = struct { - Fp uintptr - Fn int32 - FnSpace int32 -} - -type Fts5Buffer1 = TFts5Buffer1 - type TFts5PoslistReader = struct { F__ccgo_align [0]uint32 Fa uintptr @@ -273028,19 +263955,6 @@ type TFts5PoslistReader = struct { type Fts5PoslistReader = TFts5PoslistReader -type TFts5PoslistReader1 = struct { - F__ccgo_align [0]uint32 - Fa uintptr - Fn int32 - Fi int32 - FbFlag Tu8 - FbEof Tu8 - F__ccgo_align5 [2]byte - FiPos Ti64 -} - -type Fts5PoslistReader1 = TFts5PoslistReader1 - type TFts5PoslistWriter = struct { F__ccgo_align [0]uint32 FiPrev Ti64 @@ -273048,13 +263962,6 @@ type TFts5PoslistWriter = struct { type Fts5PoslistWriter = TFts5PoslistWriter -type TFts5PoslistWriter1 = struct { - F__ccgo_align [0]uint32 - FiPrev Ti64 -} - -type Fts5PoslistWriter1 = TFts5PoslistWriter1 - // C documentation // // /* Bucket of terms object used by the integrity-check in offsets=0 mode. */ @@ -273116,17 +264023,6 @@ type TFts5IndexIter = struct { type Fts5IndexIter = TFts5IndexIter -type TFts5IndexIter1 = struct { - F__ccgo_align [0]uint32 - FiRowid Ti64 - FpData uintptr - FnData int32 - FbEof Tu8 - F__ccgo_pad4 [7]byte -} - -type Fts5IndexIter1 = TFts5IndexIter1 - /* ** End of interface to code in fts5_varint.c. **************************************************************************/ @@ -273148,14 +264044,6 @@ type TFts5Table = struct { type Fts5Table = TFts5Table -type TFts5Table1 = struct { - Fbase Tsqlite3_vtab - FpConfig uintptr - FpIndex uintptr -} - -type Fts5Table1 = TFts5Table1 - /* ** End of interface to code in fts5.c. **************************************************************************/ @@ -273269,13 +264157,6 @@ type TFts5ExprNearset = struct { type Fts5ExprNearset = TFts5ExprNearset -type TFts5Token1 = struct { - Fp uintptr - Fn int32 -} - -type Fts5Token1 = TFts5Token1 - type TFts5PoslistPopulator = struct { F__ccgo_align [0]uint32 Fwriter TFts5PoslistWriter @@ -273843,14 +264724,6 @@ var _fts5yy_default = [35]uint8{ ** actually contains the reduce action for the second half of the ** SHIFTREDUCE. */ -type Tfts5yyStackEntry1 = struct { - Fstateno uint8 - Fmajor uint8 - Fminor Tfts5YYMINORTYPE -} - -type fts5yyStackEntry1 = Tfts5yyStackEntry1 - type Tfts5yyStackEntry = struct { Fstateno uint8 Fmajor uint8 @@ -273861,16 +264734,6 @@ type fts5yyStackEntry = Tfts5yyStackEntry /* The state of the parser is completely contained in an instance of ** the following structure */ -type Tfts5yyParser1 = struct { - Ffts5yytos uintptr - FpParse uintptr - Ffts5yystackEnd uintptr - Ffts5yystack uintptr - Ffts5yystk0 [100]Tfts5yyStackEntry -} - -type fts5yyParser1 = Tfts5yyParser1 - type Tfts5yyParser = struct { Ffts5yytos uintptr FpParse uintptr @@ -273922,10 +264785,10 @@ func _sqlite3Fts5ParserInit(tls *libc.TLS, fts5yypRawParser uintptr) { // ** A pointer to a parser. This pointer is used in subsequent calls // ** to sqlite3Fts5Parser and sqlite3Fts5ParserFree. // */ -func _sqlite3Fts5ParserAlloc(tls *libc.TLS, mallocProc uintptr) (r uintptr) { +func _sqlite3Fts5ParserAlloc(tls *libc.TLS, __ccgo_fp_mallocProc uintptr) (r uintptr) { var fts5yypParser uintptr _ = fts5yypParser - fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{mallocProc})))(tls, libc.Uint64FromInt64(1216)) + fts5yypParser = (*(*func(*libc.TLS, Tu64) uintptr)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_mallocProc})))(tls, libc.Uint64FromInt64(1216)) if fts5yypParser != 0 { _sqlite3Fts5ParserInit(tls, fts5yypParser) } @@ -274031,12 +264894,12 @@ func _sqlite3Fts5ParserFinalize(tls *libc.TLS, p uintptr) { // ** is defined in a %include section of the input grammar) then it is // ** assumed that the input pointer is never NULL. // */ -func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, freeProc uintptr) { +func _sqlite3Fts5ParserFree(tls *libc.TLS, p uintptr, __ccgo_fp_freeProc uintptr) { if p == uintptr(0) { return } _sqlite3Fts5ParserFinalize(tls, p) - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{freeProc})))(tls, p) + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_freeProc})))(tls, p) } /* @@ -274628,18 +265491,6 @@ type TCInstIter = struct { type CInstIter = TCInstIter -type TCInstIter1 = struct { - FpApi uintptr - FpFts uintptr - FiCol int32 - FiInst int32 - FnInst int32 - FiStart int32 - FiEnd int32 -} - -type CInstIter1 = TCInstIter1 - // C documentation // // /* @@ -274722,22 +265573,6 @@ type THighlightContext = struct { type HighlightContext = THighlightContext -type THighlightContext1 = struct { - FiRangeStart int32 - FiRangeEnd int32 - FzOpen uintptr - FzClose uintptr - FzIn uintptr - FnIn int32 - Fiter TCInstIter - FiPos int32 - FiOff int32 - FbOpen int32 - FzOut uintptr -} - -type HighlightContext1 = THighlightContext1 - // C documentation // // /* @@ -274915,16 +265750,6 @@ type TFts5SFinder = struct { type Fts5SFinder = TFts5SFinder -type TFts5SFinder1 = struct { - FiPos int32 - FnFirstAlloc int32 - FnFirst int32 - FaFirst uintptr - FzDoc uintptr -} - -type Fts5SFinder1 = TFts5SFinder1 - // C documentation // // /* @@ -275294,17 +266119,6 @@ type TFts5Bm25Data = struct { type Fts5Bm25Data = TFts5Bm25Data -type TFts5Bm25Data1 = struct { - F__ccgo_align [0]uint32 - FnPhrase int32 - F__ccgo_align1 [4]byte - Favgdl float64 - FaIDF uintptr - FaFreq uintptr -} - -type Fts5Bm25Data1 = TFts5Bm25Data1 - // C documentation // // /* @@ -276035,21 +266849,6 @@ type TFts5TermsetEntry = struct { type Fts5TermsetEntry = TFts5TermsetEntry -type TFts5TermsetEntry1 = struct { - FpTerm uintptr - FnTerm int32 - FiIdx int32 - FpNext uintptr -} - -type Fts5TermsetEntry1 = TFts5TermsetEntry1 - -type TFts5Termset1 = struct { - FapHash [512]uintptr -} - -type Fts5Termset1 = TFts5Termset1 - func _sqlite3Fts5TermsetNew(tls *libc.TLS, pp uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) @@ -276358,13 +267157,6 @@ func _sqlite3Fts5Dequote(tls *libc.TLS, z uintptr) { } } -type TFts5Enum1 = struct { - FzName uintptr - FeVal int32 -} - -type Fts5Enum1 = TFts5Enum1 - type TFts5Enum = struct { FzName uintptr FeVal int32 @@ -277020,7 +267812,7 @@ func _sqlite3Fts5ConfigDeclareVtab(tls *libc.TLS, pConfig uintptr) (r int32) { // ** because the callback returned another non-zero value, it is assumed // ** to be an SQLite error code and returned to the caller. // */ -func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, xToken uintptr) (r int32) { +func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uintptr, nText int32, pCtx uintptr, __ccgo_fp_xToken uintptr) (r int32) { var rc int32 _ = rc rc = SQLITE_OK @@ -277030,9 +267822,9 @@ func _sqlite3Fts5Tokenize(tls *libc.TLS, pConfig uintptr, flags int32, pText uin } if rc == SQLITE_OK { if (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1 != 0 { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi1)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, __ccgo_fp_xToken) } else { - rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, xToken) + rc = (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*Tfts5_tokenizer_v2)(unsafe.Pointer((*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpApi2)).FxTokenize})))(tls, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpTok, pCtx, flags, pText, nText, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FpLocale, (*TFts5Config)(unsafe.Pointer(pConfig)).Ft.FnLocale, __ccgo_fp_xToken) } } } @@ -277394,117 +268186,6 @@ type TFts5ExprTerm = struct { type Fts5ExprTerm = TFts5ExprTerm -type TFts5Expr1 = struct { - FpIndex uintptr - FpConfig uintptr - FpRoot uintptr - FbDesc int32 - FnPhrase int32 - FapExprPhrase uintptr -} - -type Fts5Expr1 = TFts5Expr1 - -/* -** eType: -** Expression node type. Usually one of: -** -** FTS5_AND (nChild, apChild valid) -** FTS5_OR (nChild, apChild valid) -** FTS5_NOT (nChild, apChild valid) -** FTS5_STRING (pNear valid) -** FTS5_TERM (pNear valid) -** -** An expression node with eType==0 may also exist. It always matches zero -** rows. This is created when a phrase containing no tokens is parsed. -** e.g. "". -** -** iHeight: -** Distance from this node to furthest leaf. This is always 0 for nodes -** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one -** greater than the largest child value. - */ -type TFts5ExprNode1 = struct { - F__ccgo_align [0]uint32 - FeType int32 - FbEof int32 - FbNomatch int32 - FiHeight int32 - FxNext uintptr - F__ccgo_align5 [4]byte - FiRowid Ti64 - FpNear uintptr - FnChild int32 -} - -type Fts5ExprNode1 = TFts5ExprNode1 - -/* Size (in bytes) of an Fts5ExprNode object that holds up to N children */ - -/* -** Invoke the xNext method of an Fts5ExprNode object. This macro should be -** used as if it has the same signature as the xNext() methods themselves. - */ - -/* -** An instance of the following structure represents a single search term -** or term prefix. - */ -type TFts5ExprTerm1 = struct { - FbPrefix Tu8 - FbFirst Tu8 - FpTerm uintptr - FnQueryTerm int32 - FnFullTerm int32 - FpIter uintptr - FpSynonym uintptr -} - -type Fts5ExprTerm1 = TFts5ExprTerm1 - -/* -** A phrase. One or more terms that must appear in a contiguous sequence -** within a document for it to match. - */ -type TFts5ExprPhrase1 = struct { - FpNode uintptr - Fposlist TFts5Buffer - FnTerm int32 -} - -type Fts5ExprPhrase1 = TFts5ExprPhrase1 - -/* Size (in bytes) of an Fts5ExprPhrase object that holds up to N terms */ - -/* -** One or more phrases that must appear within a certain token distance of -** each other within each matching document. - */ -type TFts5ExprNearset1 = struct { - FnNear int32 - FpColset uintptr - FnPhrase int32 -} - -type Fts5ExprNearset1 = TFts5ExprNearset1 - -/* Size (in bytes) of an Fts5ExprNearset object covering up to N phrases */ - -/* -** Parse context. - */ -type TFts5Parse1 = struct { - FpConfig uintptr - FzErr uintptr - Frc int32 - FnPhrase int32 - FapPhrase uintptr - FpExpr uintptr - FbPhraseToAnd int32 -} - -type Fts5Parse1 = TFts5Parse1 - /* ** Check that the Fts5ExprNode.iHeight variables are set correctly in ** the expression tree passed as the only argument. @@ -278191,18 +268872,6 @@ type TFts5LookaheadReader = struct { type Fts5LookaheadReader = TFts5LookaheadReader -type TFts5LookaheadReader1 = struct { - F__ccgo_align [0]uint32 - Fa uintptr - Fn int32 - Fi int32 - F__ccgo_align3 [4]byte - FiPos Ti64 - FiLookahead Ti64 -} - -type Fts5LookaheadReader1 = TFts5LookaheadReader1 - func _fts5LookaheadReaderNext(tls *libc.TLS, p uintptr) (r int32) { (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiPos = (*TFts5LookaheadReader)(unsafe.Pointer(p)).FiLookahead if _sqlite3Fts5PoslistNext64(tls, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fa, (*TFts5LookaheadReader)(unsafe.Pointer(p)).Fn, p+8, p+24) != 0 { @@ -278229,16 +268898,6 @@ type TFts5NearTrimmer = struct { type Fts5NearTrimmer = TFts5NearTrimmer -type TFts5NearTrimmer1 = struct { - F__ccgo_align [0]uint32 - Freader TFts5LookaheadReader - Fwriter TFts5PoslistWriter - FpOut uintptr - F__ccgo_pad3 [4]byte -} - -type Fts5NearTrimmer1 = TFts5NearTrimmer1 - // C documentation // // /* @@ -279359,14 +270018,6 @@ type TTokenCtx = struct { type TokenCtx = TTokenCtx -type TTokenCtx1 = struct { - FpPhrase uintptr - FpConfig uintptr - Frc int32 -} - -type TokenCtx1 = TTokenCtx1 - // C documentation // // /* @@ -280307,15 +270958,6 @@ func _sqlite3Fts5ExprPoslist(tls *libc.TLS, pExpr uintptr, iPhrase int32, pa uin return nRet } -type TFts5PoslistPopulator1 = struct { - F__ccgo_align [0]uint32 - Fwriter TFts5PoslistWriter - FbOk int32 - FbMiss int32 -} - -type Fts5PoslistPopulator1 = TFts5PoslistPopulator1 - // C documentation // // /* @@ -280355,15 +270997,6 @@ func _sqlite3Fts5ExprClearPoslists(tls *libc.TLS, pExpr uintptr, bLive int32) (r return pRet } -type TFts5ExprCtx1 = struct { - F__ccgo_align [0]uint32 - FpExpr uintptr - FaPopulator uintptr - FiOff Ti64 -} - -type Fts5ExprCtx1 = TFts5ExprCtx1 - type TFts5ExprCtx = struct { F__ccgo_align [0]uint32 FpExpr uintptr @@ -280729,67 +271362,6 @@ type TFts5HashEntry = struct { type Fts5HashEntry = TFts5HashEntry -/* -** This file contains the implementation of an in-memory hash table used -** to accumulate "term -> doclist" content before it is flushed to a level-0 -** segment. - */ - -type TFts5Hash1 = struct { - FeDetail int32 - FpnByte uintptr - FnEntry int32 - FnSlot int32 - FpScan uintptr - FaSlot uintptr -} - -type Fts5Hash1 = TFts5Hash1 - -/* -** Each entry in the hash table is represented by an object of the -** following type. Each object, its key, and its current data are stored -** in a single memory allocation. The key immediately follows the object -** in memory. The position list data immediately follows the key data -** in memory. -** -** The key is Fts5HashEntry.nKey bytes in size. It consists of a single -** byte identifying the index (either the main term index or a prefix-index), -** followed by the term data. For example: "0token". There is no -** nul-terminator - in this case nKey=6. -** -** The data that follows the key is in a similar, but not identical format -** to the doclist data stored in the database. It is: -** -** * Rowid, as a varint -** * Position list, without 0x00 terminator. -** * Size of previous position list and rowid, as a 4 byte -** big-endian integer. -** -** iRowidOff: -** Offset of last rowid written to data area. Relative to first byte of -** structure. -** -** nData: -** Bytes of data written since iRowidOff. - */ -type TFts5HashEntry1 = struct { - F__ccgo_align [0]uint32 - FpHashNext uintptr - FpScanNext uintptr - FnAlloc int32 - FiSzPoslist int32 - FnData int32 - FnKey int32 - FbDel Tu8 - FbContent Tu8 - FiCol Ti16 - FiPos int32 - FiRowid Ti64 -} - -type Fts5HashEntry1 = TFts5HashEntry1 - /* ** Equivalent to: ** @@ -281860,159 +272432,6 @@ type TFts5TombstoneArray = struct { type Fts5TombstoneArray = TFts5TombstoneArray -type TFts5Data1 = struct { - Fp uintptr - Fnn int32 - FszLeaf int32 -} - -type Fts5Data1 = TFts5Data1 - -/* -** One object per %_data table. -** -** nContentlessDelete: -** The number of contentless delete operations since the most recent -** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked -** so that extra auto-merge work can be done by fts5IndexFlush() to -** account for the delete operations. - */ -type TFts5Index1 = struct { - F__ccgo_align [0]uint32 - FpConfig uintptr - FzDataTbl uintptr - FnWorkUnit int32 - FpHash uintptr - FnPendingData int32 - F__ccgo_align5 [4]byte - FiWriteRowid Ti64 - FbDelete int32 - FnContentlessDelete int32 - FnPendingRow int32 - Frc int32 - FflushRc int32 - FpReader uintptr - FpWriter uintptr - FpDeleter uintptr - FpIdxWriter uintptr - FpIdxDeleter uintptr - FpIdxSelect uintptr - FpIdxNextSelect uintptr - FnRead int32 - FpDeleteFromIdx uintptr - FpDataVersion uintptr - F__ccgo_align21 [4]byte - FiStructVersion Ti64 - FpStruct uintptr - F__ccgo_pad23 [4]byte -} - -type Fts5Index1 = TFts5Index1 - -type TFts5DoclistIter1 = struct { - F__ccgo_align [0]uint32 - FaEof uintptr - F__ccgo_align1 [4]byte - FiRowid Ti64 - FaPoslist uintptr - FnPoslist int32 - FnSize int32 - F__ccgo_pad5 [4]byte -} - -type Fts5DoclistIter1 = TFts5DoclistIter1 - -/* -** The contents of the "structure" record for each index are represented -** using an Fts5Structure record in memory. Which uses instances of the -** other Fts5StructureXXX types as components. -** -** nOriginCntr: -** This value is set to non-zero for structure records created for -** contentlessdelete=1 tables only. In that case it represents the -** origin value to apply to the next top-level segment created. - */ -type TFts5StructureSegment1 = struct { - F__ccgo_align [0]uint32 - FiSegid int32 - FpgnoFirst int32 - FpgnoLast int32 - F__ccgo_align3 [4]byte - FiOrigin1 Tu64 - FiOrigin2 Tu64 - FnPgTombstone int32 - F__ccgo_align6 [4]byte - FnEntryTombstone Tu64 - FnEntry Tu64 -} - -type Fts5StructureSegment1 = TFts5StructureSegment1 - -type TFts5StructureLevel1 = struct { - FnMerge int32 - FnSeg int32 - FaSeg uintptr -} - -type Fts5StructureLevel1 = TFts5StructureLevel1 - -type TFts5Structure1 = struct { - F__ccgo_align [0]uint32 - FnRef int32 - F__ccgo_align1 [4]byte - FnWriteCounter Tu64 - FnOriginCntr Tu64 - FnSegment int32 - FnLevel int32 -} - -type Fts5Structure1 = TFts5Structure1 - -/* Size (in bytes) of an Fts5Structure object holding up to N levels */ - -/* -** An object of type Fts5SegWriter is used to write to segments. - */ -type TFts5PageWriter1 = struct { - Fpgno int32 - FiPrevPgidx int32 - Fbuf TFts5Buffer - Fpgidx TFts5Buffer - Fterm TFts5Buffer -} - -type Fts5PageWriter1 = TFts5PageWriter1 - -type TFts5DlidxWriter1 = struct { - F__ccgo_align [0]uint32 - Fpgno int32 - FbPrevValid int32 - FiPrev Ti64 - Fbuf TFts5Buffer - F__ccgo_pad4 [4]byte -} - -type Fts5DlidxWriter1 = TFts5DlidxWriter1 - -type TFts5SegWriter1 = struct { - F__ccgo_align [0]uint32 - FiSegid int32 - Fwriter TFts5PageWriter - FiPrevRowid Ti64 - FbFirstRowidInDoclist Tu8 - FbFirstRowidInPage Tu8 - FbFirstTermInPage Tu8 - FnLeafWritten int32 - FnEmpty int32 - FnDlidx int32 - FaDlidx uintptr - Fbtterm TFts5Buffer - FiBtPage int32 - F__ccgo_pad12 [4]byte -} - -type Fts5SegWriter1 = TFts5SegWriter1 - type TFts5CResult = struct { FiFirst Tu16 FbTermEq Tu8 @@ -282020,199 +272439,6 @@ type TFts5CResult = struct { type Fts5CResult = TFts5CResult -type TFts5CResult1 = struct { - FiFirst Tu16 - FbTermEq Tu8 -} - -type Fts5CResult1 = TFts5CResult1 - -/* -** Object for iterating through a single segment, visiting each term/rowid -** pair in the segment. -** -** pSeg: -** The segment to iterate through. -** -** iLeafPgno: -** Current leaf page number within segment. -** -** iLeafOffset: -** Byte offset within the current leaf that is the first byte of the -** position list data (one byte passed the position-list size field). -** -** pLeaf: -** Buffer containing current leaf page data. Set to NULL at EOF. -** -** iTermLeafPgno, iTermLeafOffset: -** Leaf page number containing the last term read from the segment. And -** the offset immediately following the term data. -** -** flags: -** Mask of FTS5_SEGITER_XXX values. Interpreted as follows: -** -** FTS5_SEGITER_ONETERM: -** If set, set the iterator to point to EOF after the current doclist -** has been exhausted. Do not proceed to the next term in the segment. -** -** FTS5_SEGITER_REVERSE: -** This flag is only ever set if FTS5_SEGITER_ONETERM is also set. If -** it is set, iterate through rowid in descending order instead of the -** default ascending order. -** -** iRowidOffset/nRowidOffset/aRowidOffset: -** These are used if the FTS5_SEGITER_REVERSE flag is set. -** -** For each rowid on the page corresponding to the current term, the -** corresponding aRowidOffset[] entry is set to the byte offset of the -** start of the "position-list-size" field within the page. -** -** iTermIdx: -** Index of current term on iTermLeafPgno. -** -** apTombstone/nTombstone: -** These are used for contentless_delete=1 tables only. When the cursor -** is first allocated, the apTombstone[] array is allocated so that it -** is large enough for all tombstones hash pages associated with the -** segment. The pages themselves are loaded lazily from the database as -** they are required. - */ -type TFts5SegIter1 = struct { - F__ccgo_align [0]uint32 - FpSeg uintptr - Fflags int32 - FiLeafPgno int32 - FpLeaf uintptr - FpNextLeaf uintptr - F__ccgo_align5 [4]byte - FiLeafOffset Ti64 - FpTombArray uintptr - FxNext uintptr - FiTermLeafPgno int32 - FiTermLeafOffset int32 - FiPgidxOff int32 - FiEndofDoclist int32 - FiRowidOffset int32 - FnRowidOffset int32 - FaRowidOffset uintptr - FpDlidx uintptr - Fterm TFts5Buffer - F__ccgo_align17 [4]byte - FiRowid Ti64 - FnPos int32 - FbDel Tu8 - F__ccgo_pad20 [3]byte -} - -type Fts5SegIter1 = TFts5SegIter1 - -/* -** Array of tombstone pages. Reference counted. - */ -type TFts5TombstoneArray1 = struct { - FnRef int32 - FnTombstone int32 -} - -type Fts5TombstoneArray1 = TFts5TombstoneArray1 - -/* Size (in bytes) of an Fts5TombstoneArray holding up to N tombstones */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a -** leaf page. - */ - -/* -** Argument is a pointer to an Fts5Data structure that contains a leaf -** page. This macro evaluates to true if the leaf contains no terms, or -** false if it contains at least one term. - */ - -/* -** Object for iterating through the merged results of one or more segments, -** visiting each term/rowid pair in the merged data. -** -** nSeg is always a power of two greater than or equal to the number of -** segments that this object is merging data from. Both the aSeg[] and -** aFirst[] arrays are sized at nSeg entries. The aSeg[] array is padded -** with zeroed objects - these are handled as if they were iterators opened -** on empty segments. -** -** The results of comparing segments aSeg[N] and aSeg[N+1], where N is an -** even number, is stored in aFirst[(nSeg+N)/2]. The "result" of the -** comparison in this context is the index of the iterator that currently -** points to the smaller term/rowid combination. Iterators at EOF are -** considered to be greater than all other iterators. -** -** aFirst[1] contains the index in aSeg[] of the iterator that points to -** the smallest key overall. aFirst[0] is unused. -** -** poslist: -** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. -** There is no way to tell if this is populated or not. -** -** pColset: -** If not NULL, points to an object containing a set of column indices. -** Only matches that occur in one of these columns will be returned. -** The Fts5Iter does not own the Fts5Colset object, and so it is not -** freed when the iterator is closed - it is owned by the upper layer. - */ -type TFts5Iter1 = struct { - F__ccgo_align [0]uint32 - Fbase TFts5IndexIter - FpTokenDataIter uintptr - FpIndex uintptr - Fposlist TFts5Buffer - FpColset uintptr - FxSetOutputs uintptr - FnSeg int32 - FbRev int32 - FbSkipEmpty Tu8 - F__ccgo_align9 [3]byte - FiSwitchRowid Ti64 - FaFirst uintptr - F__ccgo_pad12 [4]byte -} - -type Fts5Iter1 = TFts5Iter1 - -/* Size (in bytes) of an Fts5Iter object holding up to N segment iterators */ - -/* -** An instance of the following type is used to iterate through the contents -** of a doclist-index record. -** -** pData: -** Record containing the doclist-index data. -** -** bEof: -** Set to true once iterator has reached EOF. -** -** iOff: -** Set to the current offset within record pData. - */ -type TFts5DlidxLvl1 = struct { - F__ccgo_align [0]uint32 - FpData uintptr - FiOff int32 - FbEof int32 - FiFirstOff int32 - FiLeafPgno int32 - F__ccgo_align5 [4]byte - FiRowid Ti64 -} - -type Fts5DlidxLvl1 = TFts5DlidxLvl1 - -type TFts5DlidxIter1 = struct { - F__ccgo_align [0]uint32 - FnLvl int32 - FiSegid int32 -} - -type Fts5DlidxIter1 = TFts5DlidxIter1 - /* Size (in bytes) of an Fts5DlidxIter object with up to N levels */ func _fts5PutU16(tls *libc.TLS, aOut uintptr, iVal Tu16) { @@ -285144,14 +275370,6 @@ type TPoslistCallbackCtx = struct { type PoslistCallbackCtx = TPoslistCallbackCtx -type TPoslistCallbackCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FeState int32 -} - -type PoslistCallbackCtx1 = TPoslistCallbackCtx1 - type TPoslistOffsetsCtx = struct { FpBuf uintptr FpColset uintptr @@ -285161,15 +275379,6 @@ type TPoslistOffsetsCtx = struct { type PoslistOffsetsCtx = TPoslistOffsetsCtx -type TPoslistOffsetsCtx1 = struct { - FpBuf uintptr - FpColset uintptr - FiRead int32 - FiWrite int32 -} - -type PoslistOffsetsCtx1 = TPoslistOffsetsCtx1 - // C documentation // // /* @@ -285283,7 +275492,7 @@ func _fts5PoslistFilterCallback(tls *libc.TLS, pUnused uintptr, pContext uintptr } } -func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xChunk uintptr) { +func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, __ccgo_fp_xChunk uintptr) { var nChunk, nRem, pgno, pgnoSave, v2 int32 var pChunk, pData uintptr var v1 int64 @@ -285304,7 +275513,7 @@ func _fts5ChunkIterate(tls *libc.TLS, p uintptr, pSeg uintptr, pCtx uintptr, xCh pgnoSave = pgno + int32(1) } for int32(1) != 0 { - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xChunk})))(tls, p, pCtx, pChunk, nChunk) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xChunk})))(tls, p, pCtx, pChunk, nChunk) nRem -= nChunk _fts5DataRelease(tls, pData) if nRem <= 0 { @@ -286898,15 +277107,6 @@ type TFts5FlushCtx = struct { type Fts5FlushCtx = TFts5FlushCtx -type TFts5FlushCtx1 = struct { - F__ccgo_align [0]uint32 - FpIdx uintptr - F__ccgo_align1 [4]byte - Fwriter TFts5SegWriter -} - -type Fts5FlushCtx1 = TFts5FlushCtx1 - // C documentation // // /* @@ -288029,18 +278229,6 @@ type TPrefixMerger = struct { type PrefixMerger = TPrefixMerger -type TPrefixMerger1 = struct { - F__ccgo_align [0]uint32 - Fiter TFts5DoclistIter - FiPos Ti64 - FiOff int32 - FaPos uintptr - FpNext uintptr - F__ccgo_pad5 [4]byte -} - -type PrefixMerger1 = TPrefixMerger1 - func _fts5PrefixMergerInsertByRowid(tls *libc.TLS, ppHead uintptr, p uintptr) { var pp uintptr _ = pp @@ -288258,7 +278446,7 @@ func _fts5MergePrefixLists(tls *libc.TLS, p uintptr, p1 uintptr, nBuf int32, aBu // ** If parameter pColset is not NULL, then it is used to filter entries before // ** the callback is invoked. // */ -func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, xVisit uintptr, pCtx uintptr) (r int32) { +func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr, nToken int32, bPrefix int32, __ccgo_fp_xVisit uintptr, pCtx uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var flags, nNew, v1 int32 @@ -288295,7 +278483,7 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr break } } - (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) + (*(*func(*libc.TLS, uintptr, uintptr, uintptr, uintptr, int32))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xVisit})))(tls, p, pCtx, *(*uintptr)(unsafe.Pointer(bp)), pNew, nNew) goto _2 _2: ; @@ -288306,71 +278494,6 @@ func _fts5VisitEntries(tls *libc.TLS, p uintptr, pColset uintptr, pToken uintptr return (*TFts5Index)(unsafe.Pointer(p)).Frc } -/* -** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an -** array of these for each row it visits (so all iRowid fields are the same). -** Or, for an iterator used by an "ORDER BY rank" query, it accumulates an -** array of these for the entire query (in which case iRowid fields may take -** a variety of values). -** -** Each instance in the array indicates the iterator (and therefore term) -** associated with position iPos of rowid iRowid. This is used by the -** xInstToken() API. -** -** iRowid: -** Rowid for the current entry. -** -** iPos: -** Position of current entry within row. In the usual ((iCol<<32)+iOff) -** format (e.g. see macros FTS5_POS2COLUMN() and FTS5_POS2OFFSET()). -** -** iIter: -** If the Fts5TokenDataIter iterator that the entry is part of is -** actually an iterator (i.e. with nIter>0, not just a container for -** Fts5TokenDataMap structures), then this variable is an index into -** the apIter[] array. The corresponding term is that which the iterator -** at apIter[iIter] currently points to. -** -** Or, if the Fts5TokenDataIter iterator is just a container object -** (nIter==0), then iIter is an index into the term.p[] buffer where -** the term is stored. -** -** nByte: -** In the case where iIter is an index into term.p[], this variable -** is the size of the term in bytes. If iIter is an index into apIter[], -** this variable is unused. - */ -type TFts5TokenDataMap1 = struct { - F__ccgo_align [0]uint32 - FiRowid Ti64 - FiPos Ti64 - FiIter int32 - FnByte int32 -} - -type Fts5TokenDataMap1 = TFts5TokenDataMap1 - -/* -** An object used to supplement Fts5Iter for tokendata=1 iterators. -** -** This object serves two purposes. The first is as a container for an array -** of Fts5TokenDataMap structures, which are used to find the token required -** when the xInstToken() API is used. This is done by the nMapAlloc, nMap and -** aMap[] variables. - */ -type TFts5TokenDataIter1 = struct { - FnMapAlloc int32 - FnMap int32 - FaMap uintptr - Fterms TFts5Buffer - FnIter int32 - FnIterAlloc int32 - FaPoslistReader uintptr - FaPoslistToIter uintptr -} - -type Fts5TokenDataIter1 = TFts5TokenDataIter1 - /* Size in bytes of an Fts5TokenDataIter object holding up to N iterators */ // C documentation @@ -288539,14 +278662,6 @@ type TTokendataSetupCtx = struct { type TokendataSetupCtx = TTokendataSetupCtx -type TTokendataSetupCtx1 = struct { - FpT uintptr - FiTermOff int32 - FnTermByte int32 -} - -type TokendataSetupCtx1 = TTokendataSetupCtx1 - // C documentation // // /* @@ -288595,21 +278710,6 @@ type TPrefixSetupCtx = struct { type PrefixSetupCtx = TPrefixSetupCtx -type TPrefixSetupCtx1 = struct { - F__ccgo_align [0]uint32 - FxMerge uintptr - FxAppend uintptr - FiLastRowid Ti64 - FnMerge int32 - FaBuf uintptr - FnBuf int32 - Fdoclist TFts5Buffer - FpTokendata uintptr - F__ccgo_pad8 [4]byte -} - -type PrefixSetupCtx1 = TPrefixSetupCtx1 - // C documentation // // /* @@ -290929,89 +281029,6 @@ type TFts5TransactionState = struct { type Fts5TransactionState = TFts5TransactionState -/* -** A single object of this type is allocated when the FTS5 module is -** registered with a database handle. It is used to store pointers to -** all registered FTS5 extensions - tokenizers and auxiliary functions. - */ -type TFts5Global1 = struct { - F__ccgo_align [0]uint32 - Fapi Tfts5_api - Fdb uintptr - F__ccgo_align2 [4]byte - FiNextId Ti64 - FpAux uintptr - FpTok uintptr - FpDfltTok uintptr - FpCsr uintptr - FaLocaleHdr [4]Tu32 -} - -type Fts5Global1 = TFts5Global1 - -/* -** Size of header on fts5_locale() values. And macro to access a buffer -** containing a copy of the header from an Fts5Config pointer. - */ - -/* -** Each auxiliary function registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pAux list. - */ -type TFts5Auxiliary1 = struct { - FpGlobal uintptr - FzFunc uintptr - FpUserData uintptr - FxFunc Tfts5_extension_function - FxDestroy uintptr - FpNext uintptr -} - -type Fts5Auxiliary1 = TFts5Auxiliary1 - -/* -** Each tokenizer module registered with the FTS5 module is represented -** by an object of the following type. All such objects are stored as part -** of the Fts5Global.pTok list. -** -** bV2Native: -** True if the tokenizer was registered using xCreateTokenizer_v2(), false -** for xCreateTokenizer(). If this variable is true, then x2 is populated -** with the routines as supplied by the caller and x1 contains synthesized -** wrapper routines. In this case the user-data pointer passed to -** x1.xCreate should be a pointer to the Fts5TokenizerModule structure, -** not a copy of pUserData. -** -** Of course, if bV2Native is false, then x1 contains the real routines and -** x2 the synthesized ones. In this case a pointer to the Fts5TokenizerModule -** object should be passed to x2.xCreate. -** -** The synthesized wrapper routines are necessary for xFindTokenizer(_v2) -** calls. - */ -type TFts5TokenizerModule1 = struct { - FzName uintptr - FpUserData uintptr - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FxDestroy uintptr - FpNext uintptr -} - -type Fts5TokenizerModule1 = TFts5TokenizerModule1 - -type TFts5FullTable1 = struct { - Fp TFts5Table - FpStorage uintptr - FpGlobal uintptr - FpSortCsr uintptr - FiSavepoint int32 -} - -type Fts5FullTable1 = TFts5FullTable1 - type TFts5MatchPhrase = struct { FpPoslist uintptr FnTerm int32 @@ -291019,101 +281036,6 @@ type TFts5MatchPhrase = struct { type Fts5MatchPhrase = TFts5MatchPhrase -/* -** pStmt: -** SELECT rowid, FROM ORDER BY +rank; -** -** aIdx[]: -** There is one entry in the aIdx[] array for each phrase in the query, -** the value of which is the offset within aPoslist[] following the last -** byte of the position list for the corresponding phrase. - */ -type TFts5Sorter1 = struct { - F__ccgo_align [0]uint32 - FpStmt uintptr - F__ccgo_align1 [4]byte - FiRowid Ti64 - FaPoslist uintptr - FnIdx int32 -} - -type Fts5Sorter1 = TFts5Sorter1 - -/* Size (int bytes) of an Fts5Sorter object with N indexes */ - -/* -** Virtual-table cursor object. -** -** iSpecial: -** If this is a 'special' query (refer to function fts5SpecialMatch()), -** then this variable contains the result of the query. -** -** iFirstRowid, iLastRowid: -** These variables are only used for FTS5_PLAN_MATCH cursors. Assuming the -** cursor iterates in ascending order of rowids, iFirstRowid is the lower -** limit of rowids to return, and iLastRowid the upper. In other words, the -** WHERE clause in the user's query might have been: -** -** MATCH AND rowid BETWEEN $iFirstRowid AND $iLastRowid -** -** If the cursor iterates in descending order of rowid, iFirstRowid -** is the upper limit (i.e. the "first" rowid visited) and iLastRowid -** the lower. - */ -type TFts5Cursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FpNext uintptr - FaColumnSize uintptr - F__ccgo_align3 [4]byte - FiCsrId Ti64 - FePlan int32 - FbDesc int32 - FiFirstRowid Ti64 - FiLastRowid Ti64 - FpStmt uintptr - FpExpr uintptr - FpSorter uintptr - Fcsrflags int32 - FiSpecial Ti64 - FzRank uintptr - FzRankArgs uintptr - FpRank uintptr - FnRankArg int32 - FapRankArg uintptr - FpRankArgStmt uintptr - FpAux uintptr - FpAuxdata uintptr - FaInstIter uintptr - FnInstAlloc int32 - FnInstCount int32 - FaInst uintptr -} - -type Fts5Cursor1 = TFts5Cursor1 - -/* -** Bits that make up the "idxNum" parameter passed indirectly by -** xBestIndex() to xFilter(). - */ - -/* -** Values for Fts5Cursor.csrflags - */ - -/* -** Macros to Set(), Clear() and Test() cursor flags. - */ - -type TFts5Auxdata1 = struct { - FpAux uintptr - FpPtr uintptr - FxDelete uintptr - FpNext uintptr -} - -type Fts5Auxdata1 = TFts5Auxdata1 - // C documentation // // /* @@ -293081,7 +283003,7 @@ func _fts5ApiRowCount(tls *libc.TLS, pCtx uintptr, pnRow uintptr) (r int32) { // /* // ** Implementation of xTokenize_v2() API. // */ -func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, xToken uintptr) (r int32) { +func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pLoc uintptr, nLoc int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { var pCsr, pTab uintptr var rc int32 _, _, _ = pCsr, pTab, rc @@ -293089,7 +283011,7 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 pTab = (*TFts5Cursor)(unsafe.Pointer(pCsr)).Fbase.FpVtab rc = SQLITE_OK _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, pLoc, nLoc) - rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, xToken) + rc = _sqlite3Fts5Tokenize(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, int32(FTS5_TOKENIZE_AUX), pText, nText, pUserData, __ccgo_fp_xToken) _sqlite3Fts5SetLocale(tls, (*TFts5Table)(unsafe.Pointer(pTab)).FpConfig, uintptr(0), 0) return rc } @@ -293100,8 +283022,8 @@ func _fts5ApiTokenize_v2(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32 // ** Implementation of xTokenize() API. This is just xTokenize_v2() with NULL/0 // ** passed as the locale. // */ -func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, xToken uintptr) (r int32) { - return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, xToken) +func _fts5ApiTokenize(tls *libc.TLS, pCtx uintptr, pText uintptr, nText int32, pUserData uintptr, __ccgo_fp_xToken uintptr) (r int32) { + return _fts5ApiTokenize_v2(tls, pCtx, pText, nText, uintptr(0), 0, pUserData, __ccgo_fp_xToken) } func _fts5ApiPhraseCount(tls *libc.TLS, pCtx uintptr) (r int32) { @@ -293509,7 +283431,7 @@ func _fts5ApiColumnSize(tls *libc.TLS, pCtx uintptr, iCol int32, pnToken uintptr // /* // ** Implementation of the xSetAuxdata() method. // */ -func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintptr) (r int32) { +func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, __ccgo_fp_xDelete uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pData uintptr @@ -293539,8 +283461,8 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp *(*int32)(unsafe.Pointer(bp)) = SQLITE_OK pData = _sqlite3Fts5MallocZero(tls, bp, int64(16)) if pData == uintptr(0) { - if xDelete != 0 { - (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{xDelete})))(tls, pPtr) + if __ccgo_fp_xDelete != 0 { + (*(*func(*libc.TLS, uintptr))(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xDelete})))(tls, pPtr) } return *(*int32)(unsafe.Pointer(bp)) } @@ -293548,7 +283470,7 @@ func _fts5ApiSetAuxdata(tls *libc.TLS, pCtx uintptr, pPtr uintptr, xDelete uintp (*TFts5Auxdata)(unsafe.Pointer(pData)).FpNext = (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata (*TFts5Cursor)(unsafe.Pointer(pCsr)).FpAuxdata = pData } - (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = xDelete + (*TFts5Auxdata)(unsafe.Pointer(pData)).FxDelete = __ccgo_fp_xDelete (*TFts5Auxdata)(unsafe.Pointer(pData)).FpPtr = pPtr return SQLITE_OK } @@ -293840,7 +283762,7 @@ func init() { // /* // ** Implementation of API function xQueryPhrase(). // */ -func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, xCallback uintptr) (r int32) { +func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData uintptr, __ccgo_fp_xCallback uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pCsr, pTab uintptr @@ -293864,7 +283786,7 @@ func _fts5ApiQueryPhrase(tls *libc.TLS, pCtx uintptr, iPhrase int32, pUserData u if !(rc == SQLITE_OK && (*TFts5Cursor)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fcsrflags&int32(FTS5CSR_EOF) == 0) { break } - rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) + rc = (*(*func(*libc.TLS, uintptr, uintptr, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xCallback})))(tls, uintptr(unsafe.Pointer(&_sFts5Api)), *(*uintptr)(unsafe.Pointer(bp)), pUserData) if rc != SQLITE_OK { if rc == int32(SQLITE_DONE) { rc = SQLITE_OK @@ -294151,14 +284073,14 @@ func _fts5ColumnMethod(tls *libc.TLS, pCursor uintptr, pCtx uintptr, iCol int32) // ** This routine implements the xFindFunction method for the FTS3 // ** virtual table. // */ -func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, pxFunc uintptr, ppArg uintptr) (r int32) { +func _fts5FindFunctionMethod(tls *libc.TLS, pVtab uintptr, nUnused int32, zName uintptr, __ccgo_fp_pxFunc uintptr, ppArg uintptr) (r int32) { var pAux, pTab uintptr _, _ = pAux, pTab pTab = pVtab _ = nUnused pAux = _fts5FindAuxiliary(tls, pTab, zName) if pAux != 0 { - *(*uintptr)(unsafe.Pointer(pxFunc)) = __ccgo_fp(_fts5ApiCallback) + *(*uintptr)(unsafe.Pointer(__ccgo_fp_pxFunc)) = __ccgo_fp(_fts5ApiCallback) *(*uintptr)(unsafe.Pointer(ppArg)) = pAux return int32(1) } @@ -294253,7 +284175,7 @@ func _fts5RollbackToMethod(tls *libc.TLS, pVtab uintptr, iSavepoint int32) (r in // /* // ** Register a new auxiliary function with global context pGlobal. // */ -func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, xFunc Tfts5_extension_function, xDestroy uintptr) (r int32) { +func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xFunc Tfts5_extension_function, __ccgo_fp_xDestroy uintptr) (r int32) { var nByte, nName Tsqlite3_int64 var pAux, pGlobal uintptr var rc int32 @@ -294270,8 +284192,8 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt libc.Xmemcpy(tls, (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FzFunc, zName, uint32(nName)) (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpGlobal = pGlobal (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpUserData = pUserData - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = xFunc - (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = xDestroy + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxFunc = __ccgo_fp_xFunc + (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FxDestroy = __ccgo_fp_xDestroy (*TFts5Auxiliary)(unsafe.Pointer(pAux)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux (*TFts5Global)(unsafe.Pointer(pGlobal)).FpAux = pAux } else { @@ -294298,7 +284220,7 @@ func _fts5CreateAux(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintpt // ** If an error occurs, an SQLite error code is returned and the final value // ** of (*ppNew) undefined. // */ -func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, xDestroy uintptr, ppNew uintptr) (r int32) { +func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUserData uintptr, __ccgo_fp_xDestroy uintptr, ppNew uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var nByte, nName Tsqlite3_int64 @@ -294315,7 +284237,7 @@ func _fts5NewTokenizerModule(tls *libc.TLS, pGlobal uintptr, zName uintptr, pUse (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName = pNew + 1*48 libc.Xmemcpy(tls, (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FzName, zName, uint32(nName)) (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpUserData = pUserData - (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = xDestroy + (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FxDestroy = __ccgo_fp_xDestroy (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext = (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok (*TFts5Global)(unsafe.Pointer(pGlobal)).FpTok = pNew if (*TFts5TokenizerModule)(unsafe.Pointer(pNew)).FpNext == uintptr(0) { @@ -294342,15 +284264,6 @@ type TFts5VtoVTokenizer = struct { type Fts5VtoVTokenizer = TFts5VtoVTokenizer -type TFts5VtoVTokenizer1 = struct { - FbV2Native int32 - Fx1 Tfts5_tokenizer - Fx2 Tfts5_tokenizer_v2 - FpReal uintptr -} - -type Fts5VtoVTokenizer1 = TFts5VtoVTokenizer1 - // C documentation // // /* @@ -294410,11 +284323,11 @@ func _fts5VtoVDelete(tls *libc.TLS, pTok uintptr) { // ** xTokenizer method for a wrapper tokenizer that offers the v1 interface // ** (no support for locales). // */ -func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx2.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, uintptr(0), 0, __ccgo_fp_xToken) } // C documentation @@ -294423,13 +284336,13 @@ func _fts5V1toV2Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** xTokenizer method for a wrapper tokenizer that offers the v2 interface // ** (with locale support). // */ -func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, xToken uintptr) (r int32) { +func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLocale uintptr, nLocale int32, __ccgo_fp_xToken uintptr) (r int32) { var p uintptr _ = p p = pTok _ = pLocale _ = nLocale - return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, xToken) + return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TFts5VtoVTokenizer)(unsafe.Pointer(p)).Fx1.FxTokenize})))(tls, (*TFts5VtoVTokenizer)(unsafe.Pointer(p)).FpReal, pCtx, flags, pText, nText, __ccgo_fp_xToken) } // C documentation @@ -294438,7 +284351,7 @@ func _fts5V2toV1Tokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, flags int32, // ** Register a new tokenizer. This is the implementation of the // ** fts5_api.xCreateTokenizer_v2() method. // */ -func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var pGlobal uintptr @@ -294451,7 +284364,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa rc = int32(SQLITE_ERROR) } else { *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) - rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pGlobal, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2 = *(*Tfts5_tokenizer_v2)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).FbV2Native = int32(1) @@ -294468,7 +284381,7 @@ func _fts5CreateTokenizer_v2(tls *libc.TLS, pApi uintptr, zName uintptr, pUserDa // /* // ** The fts5_api.xCreateTokenizer() method. // */ -func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, xDestroy uintptr) (r int32) { +func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData uintptr, pTokenizer uintptr, __ccgo_fp_xDestroy uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var rc int32 @@ -294476,7 +284389,7 @@ func _fts5CreateTokenizer(tls *libc.TLS, pApi uintptr, zName uintptr, pUserData _ = rc *(*uintptr)(unsafe.Pointer(bp)) = uintptr(0) rc = SQLITE_OK - rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, xDestroy, bp) + rc = _fts5NewTokenizerModule(tls, pApi, zName, pUserData, __ccgo_fp_xDestroy, bp) if *(*uintptr)(unsafe.Pointer(bp)) != 0 { (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx1 = *(*Tfts5_tokenizer)(unsafe.Pointer(pTokenizer)) (*TFts5TokenizerModule)(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(bp)))).Fx2.FxCreate = __ccgo_fp(_fts5VtoVCreate) @@ -294948,62 +284861,6 @@ func _sqlite3Fts5Init(tls *libc.TLS, db uintptr) (r int32) { return _fts5Init(tls, db) } -/* -** 2014 May 31 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** - */ - -/* #include "fts5Int.h" */ - -/* -** pSavedRow: -** SQL statement FTS5_STMT_LOOKUP2 is a copy of FTS5_STMT_LOOKUP, it -** does a by-rowid lookup to retrieve a single row from the %_content -** table or equivalent external-content table/view. -** -** However, FTS5_STMT_LOOKUP2 is only used when retrieving the original -** values for a row being UPDATEd. In that case, the SQL statement is -** not reset and pSavedRow is set to point at it. This is so that the -** insert operation that follows the delete may access the original -** row values for any new values for which sqlite3_value_nochange() returns -** true. i.e. if the user executes: -** -** CREATE VIRTUAL TABLE ft USING fts5(a, b, c, locale=1); -** ... -** UPDATE fts SET a=?, b=? WHERE rowid=?; -** -** then the value passed to the xUpdate() method of this table as the -** new.c value is an sqlite3_value_nochange() value. So in this case it -** must be read from the saved row stored in Fts5Storage.pSavedRow. -** -** This is necessary - using sqlite3_value_nochange() instead of just having -** SQLite pass the original value back via xUpdate() - so as not to discard -** any locale information associated with such values. -** - */ -type TFts5Storage1 = struct { - F__ccgo_align [0]uint32 - FpConfig uintptr - FpIndex uintptr - FbTotalsValid int32 - F__ccgo_align3 [4]byte - FnTotalRow Ti64 - FaTotalSize uintptr - FpSavedRow uintptr - FaStmt [12]uintptr -} - -type Fts5Storage1 = TFts5Storage1 - // C documentation // // /* @@ -295360,14 +285217,6 @@ type TFts5InsertCtx = struct { type Fts5InsertCtx = TFts5InsertCtx -type TFts5InsertCtx1 = struct { - FpStorage uintptr - FiCol int32 - FszCol int32 -} - -type Fts5InsertCtx1 = TFts5InsertCtx1 - // C documentation // // /* @@ -296099,18 +285948,6 @@ type TFts5IntegrityCtx = struct { type Fts5IntegrityCtx = TFts5IntegrityCtx -type TFts5IntegrityCtx1 = struct { - F__ccgo_align [0]uint32 - FiRowid Ti64 - FiCol int32 - FszCol int32 - Fcksum Tu64 - FpTermset uintptr - FpConfig uintptr -} - -type Fts5IntegrityCtx1 = TFts5IntegrityCtx1 - // C documentation // // /* @@ -296615,12 +286452,6 @@ type TAsciiTokenizer = struct { type AsciiTokenizer = TAsciiTokenizer -type TAsciiTokenizer1 = struct { - FaTokenChar [128]uint8 -} - -type AsciiTokenizer1 = TAsciiTokenizer1 - func _fts5AsciiAddExceptions(tls *libc.TLS, p uintptr, zArg uintptr, bTokenChars int32) { var i int32 _ = i @@ -296725,7 +286556,7 @@ func _asciiFold(tls *libc.TLS, aOut uintptr, aIn uintptr, nByte int32) { // /* // ** Tokenize some text using the ascii tokenizer. // */ -func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(64) defer tls.Free(64) var a, p, pFold uintptr @@ -296767,7 +286598,7 @@ func _fts5AsciiTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused } _asciiFold(tls, pFold, pText+uintptr(is), nByte) /* Invoke the token callback */ - rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, pFold, nByte, is, ie) is = ie + int32(1) } if pFold != bp { @@ -296801,18 +286632,6 @@ type TUnicode61Tokenizer = struct { type Unicode61Tokenizer = TUnicode61Tokenizer -type TUnicode61Tokenizer1 = struct { - FaTokenChar [128]uint8 - FaFold uintptr - FnFold int32 - FeRemoveDiacritic int32 - FnException int32 - FaiException uintptr - FaCategory [32]uint8 -} - -type Unicode61Tokenizer1 = TUnicode61Tokenizer1 - /* Values for eRemoveDiacritic (must match internals of fts5_unicode2.c) */ func _fts5UnicodeAddExceptions(tls *libc.TLS, p uintptr, z uintptr, bTokenChars int32) (r int32) { @@ -297038,7 +286857,7 @@ func _fts5UnicodeIsAlnum(tls *libc.TLS, p uintptr, iCode int32) (r int32) { return int32(*(*uint8)(unsafe.Pointer(p + 148 + uintptr(_sqlite3Fts5UnicodeCategory(tls, 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) { +func _fts5UnicodeTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, iUnused int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { var a, aFold, p, pEnd, zCsr, zOut, zTerm, v10, v11, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v26, v27, v3, v4 uintptr var iCode Tu32 var ie, is, nFold, rc, v7 int32 @@ -297225,7 +287044,7 @@ _9: _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(zOut)-int32(aFold), is, ie) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, aFold, int32(zOut)-int32(aFold), is, ie) goto _2 _1: ; @@ -297253,14 +287072,6 @@ type TPorterTokenizer = struct { type PorterTokenizer = TPorterTokenizer -type TPorterTokenizer1 = struct { - Ftokenizer_v2 Tfts5_tokenizer_v2 - FpTokenizer uintptr - FaBuf [128]int8 -} - -type PorterTokenizer1 = TPorterTokenizer1 - // C documentation // // /* @@ -297338,14 +287149,6 @@ type TPorterContext = struct { type PorterContext = TPorterContext -type TPorterContext1 = struct { - FpCtx uintptr - FxToken uintptr - FaBuf uintptr -} - -type PorterContext1 = TPorterContext1 - type TPorterRule = struct { FzSuffix uintptr FnSuffix int32 @@ -297356,16 +287159,6 @@ type TPorterRule = struct { type PorterRule = TPorterRule -type TPorterRule1 = struct { - FzSuffix uintptr - FnSuffix int32 - FxCond uintptr - FzOutput uintptr - FnOutput int32 -} - -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')) } @@ -297991,14 +287784,14 @@ pass_through: // /* // ** Tokenize using the porter tokenizer. // */ -func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, xToken uintptr) (r int32) { +func _fts5PorterTokenize(tls *libc.TLS, pTokenizer uintptr, pCtx uintptr, flags int32, pText uintptr, nText int32, pLoc uintptr, nLoc int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(16) defer tls.Free(16) var p uintptr var _ /* sCtx at bp+0 */ TPorterContext _ = p p = pTokenizer - (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = xToken + (*(*TPorterContext)(unsafe.Pointer(bp))).FxToken = __ccgo_fp_xToken (*(*TPorterContext)(unsafe.Pointer(bp))).FpCtx = pCtx (*(*TPorterContext)(unsafe.Pointer(bp))).FaBuf = p + 20 return (*(*func(*libc.TLS, uintptr, uintptr, int32, uintptr, int32, uintptr, int32, uintptr) int32)(unsafe.Pointer(&struct{ uintptr }{(*TPorterTokenizer)(unsafe.Pointer(p)).Ftokenizer_v2.FxTokenize})))(tls, (*TPorterTokenizer)(unsafe.Pointer(p)).FpTokenizer, bp, flags, pText, nText, pLoc, nLoc, __ccgo_fp(_fts5PorterCb)) @@ -298016,13 +287809,6 @@ type TTrigramTokenizer = struct { type TrigramTokenizer = TTrigramTokenizer -type TTrigramTokenizer1 = struct { - FbFold int32 - FiFoldParam int32 -} - -type TrigramTokenizer1 = TTrigramTokenizer1 - // C documentation // // /* @@ -298104,7 +287890,7 @@ func _fts5TriCreate(tls *libc.TLS, pUnused uintptr, azArg uintptr, nArg int32, p // /* // ** Trigram tokenizer tokenize routine. // */ -func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, xToken uintptr) (r int32) { +func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int32, pText uintptr, nText int32, __ccgo_fp_xToken uintptr) (r int32) { bp := tls.Alloc(32) defer tls.Free(32) var aStart [3]int32 @@ -298232,7 +288018,7 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int } } /* 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(zOut)-t__predefined_ptrdiff_t(bp), aStart[0], iNext) + rc = (*(*func(*libc.TLS, uintptr, int32, uintptr, int32, int32, int32) int32)(unsafe.Pointer(&struct{ uintptr }{__ccgo_fp_xToken})))(tls, pCtx, 0, bp, int32(zOut)-t__predefined_ptrdiff_t(bp), aStart[0], iNext) if iCode == uint32(0) || rc != SQLITE_OK { break } @@ -298308,11 +288094,11 @@ func _fts5TriTokenize(tls *libc.TLS, pTok uintptr, pCtx uintptr, unusedFlags int // ** "trigram" tokenizer, case_sensitive=0 (the default) - FTS5_PATTERN_LIKE // ** all other tokenizers - FTS5_PATTERN_NONE // */ -func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, xCreate uintptr, pTok uintptr) (r int32) { +func _sqlite3Fts5TokenizerPattern(tls *libc.TLS, __ccgo_fp_xCreate uintptr, pTok uintptr) (r int32) { var p uintptr var v1 int32 _, _ = p, v1 - if xCreate == __ccgo_fp(_fts5TriCreate) { + if __ccgo_fp_xCreate == __ccgo_fp(_fts5TriCreate) { p = pTok if (*TTrigramTokenizer)(unsafe.Pointer(p)).FiFoldParam == 0 { if (*TTrigramTokenizer)(unsafe.Pointer(p)).FbFold != 0 { @@ -303870,42 +293656,6 @@ type TFts5VocabCursor = struct { type Fts5VocabCursor = TFts5VocabCursor -type TFts5VocabTable1 = struct { - Fbase Tsqlite3_vtab - FzFts5Tbl uintptr - FzFts5Db uintptr - Fdb uintptr - FpGlobal uintptr - FeType int32 - FbBusy uint32 -} - -type Fts5VocabTable1 = TFts5VocabTable1 - -type TFts5VocabCursor1 = struct { - F__ccgo_align [0]uint32 - Fbase Tsqlite3_vtab_cursor - FpStmt uintptr - FpFts5 uintptr - FbEof int32 - FpIter uintptr - FpStruct uintptr - FnLeTerm int32 - FzLeTerm uintptr - FcolUsed int32 - FiCol int32 - FaCnt uintptr - FaDoc uintptr - Frowid Ti64 - Fterm TFts5Buffer - F__ccgo_align14 [4]byte - FiInstPos Ti64 - FiInstOff int32 - F__ccgo_pad16 [4]byte -} - -type Fts5VocabCursor1 = TFts5VocabCursor1 - /* ** Bits for the mask used as the idxNum value by xBestIndex/xFilter. */ @@ -305145,11 +294895,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', '.', '5', '0', '.', '3'} +var Xsqlite3_version = [7]int8{'3', '.', '5', '0', '.', '4'} 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=1000\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\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00CreateEvent\x00CancelIo\x00GetModuleHandleW\x00getenv\x00getcwd\x00readlink\x00lstat\x00__errno\x00cygwin_conv_path\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\x00%s-shm\x00readonly_shm\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-17 13:25:10 3ce993b8657d6d9deda380a93cdd6404a8c8ba1b185b2bc423703e41ae5f2543\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=1000\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\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)\x00unistr('\x000123456789abcdef\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\x00IfPos\x00IsNull\x00NotNull\x00Ne\x00Eq\x00Gt\x00Le\x00Lt\x00Ge\x00ElseEq\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\x00OpenRead\x00BitAnd\x00BitOr\x00ShiftLeft\x00ShiftRight\x00Add\x00Subtract\x00Multiply\x00Divide\x00Remainder\x00Concat\x00OpenWrite\x00OpenDup\x00BitNot\x00OpenAutoindex\x00OpenEphemeral\x00String8\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\x00DropTrigger\x00Real\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\x00CreateEvent\x00CancelIo\x00GetModuleHandleW\x00getenv\x00getcwd\x00readlink\x00lstat\x00__errno\x00cygwin_conv_path\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\x00%s-shm\x00readonly_shm\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\x00subrtnsig:%d,%s\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: %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 table with generated columns: %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\x00more than %d aggregate terms\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%Q\x00invalid Unicode escape\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\x00unistr\x00quote\x00unistr_quote\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\x00if\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\x00builtin\x00enc\x00narg\x00flags\x00schema\x00ncol\x00wr\x00strict\x00seqno\x00desc\x00coll\x00key\x00unique\x00origin\x00partial\x00wdth\x00hght\x00flgs\x00rowid\x00fkid\x00busy\x00checkpointed\x00file\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()\x00CREATE BLOOM FILTER\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\x00vacuum_%016llx\x00ATTACH %Q AS %s\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 %s.'||quote(name)||' SELECT*FROM\"%w\".'||quote(name)FROM %s.sqlite_schema WHERE type='table'AND coalesce(rootpage,1)>0\x00INSERT INTO %s.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 \x000x%x:%s\x00%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\x00internal query planner error\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\x00near \"%T\": syntax error\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\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\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.\"\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, %lld), (%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, 0 UNION ALL SELECT 1, 'idx', '', 0, '', 2, 0 UNION ALL SELECT 2, 'stat', '', 0, '', 0, 0\x00PRAGMA '%q'.table_xinfo('%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)\x00SELECT * FROM %Q.sqlite_schema\x00no such table: %s.%s\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()\x00wrong number of arguments to function fts5_get_locale()\x00non-integer argument passed to function fts5_get_locale()\x00snippet\x00highlight\x00bm25\x00fts5_get_locale\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\x00contentless_unindexed\x00content_rowid\x00multiple content_rowid=... directives\x00columnsize\x00malformed columnsize=... directive\x00locale\x00malformed locale=... 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\x00, NULL\x00, T.l%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\x00contentless_unindexed=1 requires a contentless table\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\x00insttoken\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)\x00REPLACE INTO %Q.'%q_config' VALUES ('version', %d)\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\x00%s: table does not support scanning\x00fts5: missing row %lld from content table %s\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%s a subset of columns on fts5 contentless-delete table: %s\x00%s contentless fts5 table: %s\x00cannot UPDATE\x00'delete' may not be used with a contentless_delete=1 table\x00cannot DELETE from contentless fts5 table: %s\x00fts5_locale() requires locale=1\x00no such cursor: %lld\x00no such tokenizer: %s\x00error in tokenizer constructor\x00fts5_api_ptr\x00fts5: 2025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\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\x00fts5_locale\x00fts5_insttoken\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%z%s?%d\x00%z,?%d\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\x00, l%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';\x00DELETE FROM %Q.'%q_content';\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\x00trigram\x00ascii\x00porter\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\x002025-07-30 19:33:53 4d8adfb30e03f9cf27f800a2c1ba3c48fb4ca1b08b0f5ed59a4d5ecbf45e20a3\x00" type Sqlite3_int64 = sqlite3_int64 type Sqlite3_mutex_methods = sqlite3_mutex_methods diff --git a/vendor/modules.txt b/vendor/modules.txt index 3f8477520..19b2ef773 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -336,8 +336,11 @@ github.com/boombuler/barcode/utils ## explicit; go 1.14 github.com/buckket/go-blurhash github.com/buckket/go-blurhash/base83 -# github.com/bytedance/sonic v1.13.3 -## explicit; go 1.17 +# github.com/bytedance/gopkg v0.1.3 +## explicit; go 1.18 +github.com/bytedance/gopkg/lang/dirtmake +# github.com/bytedance/sonic v1.14.1 +## explicit; go 1.18 github.com/bytedance/sonic github.com/bytedance/sonic/ast github.com/bytedance/sonic/decoder @@ -353,6 +356,7 @@ github.com/bytedance/sonic/internal/decoder/optdec github.com/bytedance/sonic/internal/encoder github.com/bytedance/sonic/internal/encoder/alg github.com/bytedance/sonic/internal/encoder/ir +github.com/bytedance/sonic/internal/encoder/prim github.com/bytedance/sonic/internal/encoder/vars github.com/bytedance/sonic/internal/encoder/vm github.com/bytedance/sonic/internal/encoder/x86 @@ -370,7 +374,7 @@ github.com/bytedance/sonic/internal/utils github.com/bytedance/sonic/option github.com/bytedance/sonic/unquote github.com/bytedance/sonic/utf8 -# github.com/bytedance/sonic/loader v0.2.4 +# github.com/bytedance/sonic/loader v0.3.0 ## explicit; go 1.16 github.com/bytedance/sonic/loader github.com/bytedance/sonic/loader/internal/abi @@ -383,15 +387,15 @@ github.com/cenkalti/backoff/v5 # github.com/cespare/xxhash/v2 v2.3.0 ## explicit; go 1.11 github.com/cespare/xxhash/v2 -# github.com/cloudwego/base64x v0.1.5 -## explicit; go 1.16 +# github.com/cloudwego/base64x v0.1.6 +## explicit; go 1.17 github.com/cloudwego/base64x github.com/cloudwego/base64x/internal/native github.com/cloudwego/base64x/internal/native/avx2 github.com/cloudwego/base64x/internal/native/sse github.com/cloudwego/base64x/internal/rt -# github.com/coreos/go-oidc/v3 v3.15.0 -## explicit; go 1.23.0 +# github.com/coreos/go-oidc/v3 v3.16.0 +## explicit; go 1.24.0 github.com/coreos/go-oidc/v3/oidc # github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ## explicit @@ -424,12 +428,15 @@ github.com/felixge/httpsnoop ## explicit; go 1.17 github.com/fsnotify/fsnotify github.com/fsnotify/fsnotify/internal -# github.com/gabriel-vasile/mimetype v1.4.9 -## explicit; go 1.23.0 +# github.com/gabriel-vasile/mimetype v1.4.10 +## explicit; go 1.21 github.com/gabriel-vasile/mimetype github.com/gabriel-vasile/mimetype/internal/charset +github.com/gabriel-vasile/mimetype/internal/csv github.com/gabriel-vasile/mimetype/internal/json github.com/gabriel-vasile/mimetype/internal/magic +github.com/gabriel-vasile/mimetype/internal/markup +github.com/gabriel-vasile/mimetype/internal/scan # github.com/gin-contrib/cors v1.7.6 ## explicit; go 1.23.0 github.com/gin-contrib/cors @@ -456,8 +463,8 @@ github.com/go-errors/errors # github.com/go-ini/ini v1.67.0 ## explicit github.com/go-ini/ini -# github.com/go-jose/go-jose/v4 v4.1.1 -## explicit; go 1.23.0 +# github.com/go-jose/go-jose/v4 v4.1.3 +## explicit; go 1.24.0 github.com/go-jose/go-jose/v4 github.com/go-jose/go-jose/v4/cipher github.com/go-jose/go-jose/v4/json @@ -515,8 +522,8 @@ github.com/go-openapi/swag # github.com/go-openapi/validate v0.24.0 ## explicit; go 1.20 github.com/go-openapi/validate -# github.com/go-playground/form/v4 v4.2.1 -## explicit; go 1.13 +# github.com/go-playground/form/v4 v4.3.0 +## explicit; go 1.21 github.com/go-playground/form/v4 # github.com/go-playground/locales v0.14.1 ## explicit; go 1.17 @@ -525,10 +532,10 @@ github.com/go-playground/locales/currency # github.com/go-playground/universal-translator v0.18.1 ## explicit; go 1.18 github.com/go-playground/universal-translator -# github.com/go-playground/validator/v10 v10.26.0 -## explicit; go 1.20 +# github.com/go-playground/validator/v10 v10.28.0 +## explicit; go 1.24.0 github.com/go-playground/validator/v10 -# github.com/go-swagger/go-swagger v0.32.3 => codeberg.org/superseriousbusiness/go-swagger v0.32.3-gts-go1.23-fix +# github.com/go-swagger/go-swagger v0.33.1 => codeberg.org/superseriousbusiness/go-swagger v0.32.3-gts-go1.23-fix ## explicit; go 1.21 github.com/go-swagger/go-swagger/cmd/swagger github.com/go-swagger/go-swagger/cmd/swagger/commands @@ -657,7 +664,7 @@ github.com/k3a/html2text github.com/klauspost/compress/internal/le github.com/klauspost/compress/internal/race github.com/klauspost/compress/s2 -# github.com/klauspost/cpuid/v2 v2.2.11 +# github.com/klauspost/cpuid/v2 v2.3.0 ## explicit; go 1.22 github.com/klauspost/cpuid/v2 # github.com/kr/pretty v0.3.1 @@ -1153,10 +1160,10 @@ go.uber.org/automaxprocs/maxprocs # go.yaml.in/yaml/v3 v3.0.4 ## explicit; go 1.16 go.yaml.in/yaml/v3 -# golang.org/x/arch v0.18.0 -## explicit; go 1.23.0 +# golang.org/x/arch v0.22.0 +## explicit; go 1.24.0 golang.org/x/arch/x86/x86asm -# golang.org/x/crypto v0.42.0 +# golang.org/x/crypto v0.43.0 ## explicit; go 1.24.0 golang.org/x/crypto/acme golang.org/x/crypto/acme/autocert @@ -1180,18 +1187,18 @@ golang.org/x/crypto/ssh/internal/bcrypt_pbkdf # golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b ## explicit; go 1.23.0 golang.org/x/exp/constraints -# golang.org/x/image v0.31.0 +# golang.org/x/image v0.32.0 ## explicit; go 1.24.0 golang.org/x/image/riff golang.org/x/image/vp8 golang.org/x/image/vp8l golang.org/x/image/webp -# golang.org/x/mod v0.27.0 -## explicit; go 1.23.0 +# golang.org/x/mod v0.29.0 +## explicit; go 1.24.0 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.44.0 +# golang.org/x/net v0.46.0 ## explicit; go 1.24.0 golang.org/x/net/bpf golang.org/x/net/context @@ -1210,7 +1217,7 @@ golang.org/x/net/ipv4 golang.org/x/net/ipv6 golang.org/x/net/publicsuffix golang.org/x/net/trace -# golang.org/x/oauth2 v0.31.0 +# golang.org/x/oauth2 v0.32.0 ## explicit; go 1.24.0 golang.org/x/oauth2 golang.org/x/oauth2/internal @@ -1218,13 +1225,13 @@ golang.org/x/oauth2/internal ## explicit; go 1.24.0 golang.org/x/sync/errgroup golang.org/x/sync/semaphore -# golang.org/x/sys v0.36.0 +# golang.org/x/sys v0.37.0 ## explicit; go 1.24.0 golang.org/x/sys/cpu golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# golang.org/x/text v0.29.0 +# golang.org/x/text v0.30.0 ## explicit; go 1.24.0 golang.org/x/text/cases golang.org/x/text/encoding @@ -1246,9 +1253,11 @@ golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm golang.org/x/text/width -# golang.org/x/tools v0.36.0 -## explicit; go 1.23.0 +# golang.org/x/tools v0.38.0 +## explicit; go 1.24.0 golang.org/x/tools/go/ast/astutil +golang.org/x/tools/go/ast/edge +golang.org/x/tools/go/ast/inspector golang.org/x/tools/go/gcexportdata golang.org/x/tools/go/packages golang.org/x/tools/go/types/objectpath @@ -1341,7 +1350,7 @@ google.golang.org/grpc/serviceconfig google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap -# google.golang.org/protobuf v1.36.8 +# google.golang.org/protobuf v1.36.10 ## explicit; go 1.23 google.golang.org/protobuf/encoding/protodelim google.golang.org/protobuf/encoding/protojson @@ -1393,7 +1402,7 @@ gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 -# modernc.org/libc v1.66.3 +# modernc.org/libc v1.66.10 ## explicit; go 1.23.0 modernc.org/libc modernc.org/libc/errno @@ -1427,12 +1436,12 @@ modernc.org/mathutil # modernc.org/memory v1.11.0 ## explicit; go 1.23.0 modernc.org/memory -# modernc.org/sqlite v1.39.0 => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.0-concurrency-workaround -## explicit; go 1.23.0 +# modernc.org/sqlite v1.39.1 => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.1-concurrency-workaround +## explicit; go 1.24.0 modernc.org/sqlite modernc.org/sqlite/lib # mvdan.cc/xurls/v2 v2.6.0 ## explicit; go 1.22.0 mvdan.cc/xurls/v2 # github.com/go-swagger/go-swagger => codeberg.org/superseriousbusiness/go-swagger v0.32.3-gts-go1.23-fix -# modernc.org/sqlite => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.0-concurrency-workaround +# modernc.org/sqlite => gitlab.com/NyaaaWhatsUpDoc/sqlite v1.39.1-concurrency-workaround -- cgit v1.3